2 # Process this file with autoconf to produce a configure script.
5 AC_INIT([calf],[0.0.19],[wdev@foltman.com])
6 AC_CONFIG_SRCDIR([config.h.in])
7 AC_CONFIG_HEADER([config.h])
13 if test "x$prefix" = "xNONE"; then
14 prefix=$ac_default_prefix
17 # Checks for programs.
20 ############################################################################################
21 # Set initial values of shell variables
29 ############################################################################################
30 # Create configure substitutions for dependencies
32 AC_SUBST(GLIB_DEPS_CFLAGS)
33 AC_SUBST(GLIB_DEPS_LIBS)
34 AC_SUBST(GUI_DEPS_CFLAGS)
35 AC_SUBST(GUI_DEPS_LIBS)
36 AC_SUBST(JACK_DEPS_CFLAGS)
37 AC_SUBST(JACK_DEPS_LIBS)
38 AC_SUBST(FLUIDSYNTH_DEPS_CFLAGS)
39 AC_SUBST(FLUIDSYNTH_DEPS_LIBS)
41 ############################################################################################
44 # Checks for libraries.
47 # Checks for header files.
49 AC_CHECK_HEADERS([memory.h stdint.h stdlib.h string.h time.h math.h])
51 AC_CHECK_HEADER(expat.h, true, AC_MSG_ERROR([Expat XML library not found]))
52 AC_CHECK_LIB(expat, XML_Parse, true, AC_MSG_ERROR([Expat XML library not found]))
53 AC_CHECK_HEADER(rfftw.h, true, AC_MSG_ERROR([FFTW2 header (rfftw.h) not found]))
54 AC_CHECK_LIB(rfftw, true, AC_MSG_ERROR([FFTW2 library (librfftw) not found]))
57 AC_CHECK_HEADERS([jack/jack.h], have_jack_header=yes, have_jack_header=no)
60 PKG_CHECK_MODULES(GLIB_DEPS, glib-2.0 >= 2.0.0, true, AC_MSG_ERROR([glib-2.0 library not found]))
63 PKG_CHECK_MODULES(FLUIDSYNTH_DEPS, fluidsynth >= 1.0.7, true, AC_MSG_ERROR([fluidsynth library not found]))
65 if test "$have_jack_header" = "yes"; then
66 PKG_CHECK_MODULES(JACK_DEPS, jack >= 0.103.0,
67 AC_CHECK_LIB([jack], [jack_port_register], JACK_FOUND="yes", ),)
70 if test "$JACK_FOUND" = "yes"; then
71 PKG_CHECK_MODULES(JACK_MIDI_DEPS, jack >= 0.105.0, OLD_JACK="no", OLD_JACK="yes")
74 PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 1, LV2_FOUND="yes", LV2_FOUND="no")
76 PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.6.0,
77 AC_CHECK_LIB([lash], [lash_client_is_being_restored], LASH_0_6_FOUND="yes", LASH_0_6_FOUND="no"),
79 if test "$LASH_0_6_FOUND" = "yes"; then
82 PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.5.2, LASH_FOUND="yes", LASH_FOUND="no")
84 PKG_CHECK_MODULES(SLV2_HACK, slv2 <= 0.6.1, SLV2_UNSUPPORTED="yes", SLV2_UNSUPPORTED="no")
86 ############################################################################################
87 # Assign initial values to feature control variables
89 LV2_ENABLED=$LV2_FOUND
90 LASH_ENABLED=$LASH_FOUND
92 if test "$JACK_FOUND" = "yes" -o "$LV2_FOUND" = "yes"; then
93 PKG_CHECK_MODULES(GUI_DEPS, gtk+-2.0 >= 2.12.0 cairo >= 1.2.0,
95 GUI_ENABLED="no (GTK+ 2.12 and cairo 1.2 or newer required)"
99 ############################################################################################
100 # Look for settings and installed libraries to determine what to compile/install/use
101 if test "$LV2_FOUND" = "yes"; then
102 AC_MSG_CHECKING([whether to allow LV2])
104 AC_HELP_STRING([--without-lv2],[disable LV2 interface]),
105 [if test "$withval" = "no"; then LV2_ENABLED="no"; fi],[])
106 AC_MSG_RESULT($LV2_ENABLED)
109 if test "$LASH_FOUND" = "yes"; then
110 AC_MSG_CHECKING([whether to allow LASH])
112 AC_HELP_STRING([--without-lash],[disable LASH compatibility (GPL)]),
113 [if test "$withval" = "no"; then LASH_ENABLED="no"; fi],[])
114 AC_MSG_RESULT($LASH_ENABLED)
117 AC_MSG_CHECKING([whether to enable experimental/unfinished features])
118 AC_ARG_ENABLE(experimental,
119 AC_HELP_STRING([--enable-experimental],[enable unfinished features - not recommended!]),
120 [set_enable_experimental="$enableval"],
121 [set_enable_experimental="no"])
122 AC_MSG_RESULT($set_enable_experimental)
124 AC_MSG_CHECKING([whether to enable debugging mode])
126 AC_HELP_STRING([--enable-debug],[enable debug mode - slow!]),
127 [set_enable_debug="$enableval"],
128 [set_enable_debug="no"])
129 AC_MSG_RESULT($set_enable_debug)
131 ############################################################################################
132 # Compute status shell variables
134 if test "$GUI_ENABLED" = "yes" -a "$JACK_FOUND" = "yes"; then
138 if test "$GUI_ENABLED" = "yes" -a "$LV2_ENABLED" = "yes"; then
139 LV2_GUI_ENABLED="yes"
142 if test "$set_enable_debug" = "yes"; then
143 CXXFLAGS="$CXXFLAGS -O0 -g -Wall"
145 CXXFLAGS="$CXXFLAGS -O3 -finline-functions -finline-functions-called-once -Wall"
148 ############################################################################################
149 # Create automake conditional symbols
150 AM_CONDITIONAL(USE_JACK, test "$JACK_ENABLED" = "yes")
151 AM_CONDITIONAL(USE_LV2, test "$LV2_ENABLED" = "yes")
152 AM_CONDITIONAL(USE_GUI, test "$GUI_ENABLED" = "yes")
153 AM_CONDITIONAL(USE_LV2_GUI, test "$LV2_GUI_ENABLED" = "yes")
154 AM_CONDITIONAL(USE_LASH, test "$LASH_ENABLED" = "yes")
155 AM_CONDITIONAL(USE_LASH_0_6, test "$LASH_0_6_ENABLED" = "yes")
156 AM_CONDITIONAL(USE_DEBUG, test "$set_enable_debug" = "yes")
158 ############################################################################################
159 # Create autoconf symbols for config.h
160 if test "$LV2_ENABLED" = "yes"; then
161 AC_DEFINE(USE_LV2, 1, [LV2 wrapper will be built])
163 if test "$JACK_ENABLED" = "yes"; then
164 AC_DEFINE(USE_JACK, 1, [JACK I/O will be used])
166 if test "$OLD_JACK" = "yes"; then
167 AC_DEFINE(OLD_JACK, 1, [Old JACK version (with extra nframes argument) is to be used])
169 if test "$LASH_ENABLED" = "yes"; then
170 AC_DEFINE(USE_LASH, 1, "LASH Audio Session Handler client functionality is enabled")
171 if test "$LASH_0_6_FOUND" = "yes"; then
172 AC_DEFINE(USE_LASH_0_6, 1, "Unstable LASH API is enabled")
175 if test "$LV2_GUI_ENABLED" = "yes"; then
176 AC_DEFINE(USE_LV2_GUI, 1, [GTK+ GUI executable will be used for LV2])
178 if test "$set_enable_experimental" = "yes"; then
179 AC_DEFINE([ENABLE_EXPERIMENTAL], [1], "Experimental features are enabled")
182 ############################################################################################
184 if test "$LV2_ENABLED" == "yes"; then
185 AC_MSG_CHECKING(where to install LV2 plugins)
187 AC_HELP_STRING([--with-lv2-dir],[install LV2 calf.lv2 bundle to DIR (default=$prefix/lib/lv2/)]),
189 [with_lv2_dir="$prefix/lib/lv2/"])
190 AC_MSG_RESULT($with_lv2_dir)
191 AC_SUBST(with_lv2_dir)
194 ############################################################################################
196 AC_DEFINE_UNQUOTED(PKGLIBDIR,"$prefix/share/calf/",[Calf shared data directory (bitmaps, GUI XML etc.)])
198 ############################################################################################
199 # Output files for configure step
200 AC_CONFIG_FILES([Makefile
208 ############################################################################################
209 # Configuration message
213 Debug mode: $set_enable_debug
214 Experimental plugins: $set_enable_experimental
215 Common GUI code: $GUI_ENABLED
216 LV2 enabled: $LV2_ENABLED
217 LV2 GTK+ GUI enabled: $LV2_GUI_ENABLED
218 JACK host enabled: $JACK_ENABLED
219 LASH enabled: $LASH_ENABLED])
220 if test "$LASH_ENABLED" = "yes"; then
221 AC_MSG_RESULT([ Unstable LASH API: $LASH_0_6_FOUND])
223 AC_MSG_RESULT([ Old-style JACK MIDI: $OLD_JACK
225 Installation prefix: $prefix
227 Note: due to usage of GPL-licensed libraries (FFTW) in this version,
228 the linked binary will be covered by GPL, even though the source is
229 LGPL-licensed. The only way to get an LGPL binary is by removing
230 or reimplementing parts that depend on FFTW.
233 if test "$SLV2_UNSUPPORTED" == "yes" -a "$LV2_ENABLED" == "yes"; then
236 An incompatible version of slv2 library has been found on this system.
238 Some features of Calf LV2 plugins (and other LV2 plugins) may not work
239 as expected in hosts that use currently installed version of libslv2.
241 Please upgrade to slv2 0.6.2 or newer version.