+ Framework: try to sort out the srate variable nonsense
[calf.git] / configure.ac
blob074dd3d08fafde54e737cda7a3a9f6c9394c7b79
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 AC_PREREQ(2.61)
5 AC_INIT([calf],[0.0.19],[wdev@foltman.com])
6 AC_CONFIG_SRCDIR([config.h.in])
7 AC_CONFIG_HEADER([config.h])
9 AM_INIT_AUTOMAKE(1.8)
11 if test "x$prefix" = "xNONE"; then 
12   prefix=$ac_default_prefix
15 # Checks for programs.
16 AC_PROG_CXX
17 AC_PROG_CC
18 AC_PROG_CPP
19 AC_PROG_INSTALL
20 AC_PROG_LIBTOOL
22 # Checks for libraries.
23 PKG_PROG_PKG_CONFIG
25 # Checks for header files.
26 AC_HEADER_STDC
27 AC_CHECK_HEADERS([memory.h stdint.h stdlib.h time.h math.h])
29 AC_CHECK_HEADER(ladspa.h, LADSPA_FOUND="yes", LADSPA_FOUND="no")
31 AC_CHECK_HEADER(dssi.h, DSSI_FOUND="yes", DSSI_FOUND="no")
33 AC_CHECK_HEADER(expat.h, true, AC_MSG_ERROR([Expat XML library not found]))
34 AC_CHECK_LIB(expat, XML_Parse, true, AC_MSG_ERROR([Expat XML library not found]))
36 AC_CHECK_HEADERS([jack/jack.h], have_jack_header=yes, have_jack_header=no)
38 PKG_CHECK_MODULES(GLIB_DEPS, glib-2.0 >= 2.0.0, true, AC_MSG_ERROR([glib-2.0 library not found]))
39 PKG_CHECK_MODULES(FLUIDSYNTH_DEPS, fluidsynth >= 1.0.7, true, AC_MSG_ERROR([fluidsynth library not found]))
41 if test "$have_jack_header" = "yes"; then
42   PKG_CHECK_MODULES(JACK_DEPS, jack >= 0.103.0,
43     AC_CHECK_LIB([jack], [jack_port_register], JACK_FOUND="yes", JACK_FOUND="no"),
44     JACK_FOUND="no")
45 else
46   JACK_FOUND="no"
49 if test "$JACK_FOUND" = "yes"; then
50   PKG_CHECK_MODULES(JACK_MIDI_DEPS, jack >= 0.105.0, OLD_JACK="no", OLD_JACK="yes")
53 AC_SUBST(GLIB_DEPS_CFLAGS)
54 AC_SUBST(GLIB_DEPS_LIBS)
55 AC_SUBST(GUI_DEPS_CFLAGS)
56 AC_SUBST(GUI_DEPS_LIBS)
57 AC_SUBST(JACK_DEPS_CFLAGS)
58 AC_SUBST(JACK_DEPS_LIBS)
59 AC_SUBST(FLUIDSYNTH_DEPS_CFLAGS)
60 AC_SUBST(FLUIDSYNTH_DEPS_LIBS)
62 PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 1, LV2_ENABLED="yes", LV2_ENABLED="no")
63 PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.6.0, LASH_0_6_ENABLED="yes", LASH_0_6_ENABLED="no")
64 if test "$LASH_0_6_ENABLED" = "yes"; then
65   LASH_ENABLED="yes"
66 else
67   PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.5.2, LASH_ENABLED="yes", LASH_ENABLED="no")
69 PKG_CHECK_MODULES(SLV2_HACK, slv2 <= 0.6.1, SLV2_UNSUPPORTED="yes", SLV2_UNSUPPORTED="no")
71 if test "$LADSPA_FOUND" = "yes"; then
72   AC_MSG_CHECKING([whether to allow LADSPA])
73   AC_ARG_WITH(ladspa,
74     AC_HELP_STRING([--without-ladspa],[disable LADSPA and DSSI interfaces]),
75       [if test "$withval" = "no"; then LADSPA_FOUND="no"; DSSI_FOUND="no"; fi],[])
76   AC_MSG_RESULT($LADSPA_FOUND)
79 if test "$DSSI_FOUND" = "yes"; then
80   AC_MSG_CHECKING([whether to allow DSSI])
81   AC_ARG_WITH(dssi,
82     AC_HELP_STRING([--without-dssi],[disable DSSI interface]),
83       [if test "$withval" = "no"; then DSSI_FOUND="no"; fi],[])
84   AC_MSG_RESULT($DSSI_FOUND)
87 if test "$LV2_ENABLED" = "yes"; then
88   AC_MSG_CHECKING([whether to allow LV2])
89   AC_ARG_WITH(lv2,
90     AC_HELP_STRING([--without-lv2],[disable LV2 interface]),
91       [if test "$withval" = "no"; then LV2_ENABLED="no"; fi],[])
92   AC_MSG_RESULT($LV2_ENABLED)
95 if test "$JACK_FOUND" = "yes" -o "$DSSI_FOUND" = "yes" -o "$LV2_ENABLED" = "yes"; then
96   PKG_CHECK_MODULES(GUI_DEPS, gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.4.0 cairo >= 1.2.0,
97     GUI_ENABLED="yes",
98     GUI_ENABLED="no (GTK+ 2.8, cairo 1.2 and libglade 2.4.0 or newer required)"
99   )
100 else
101   GUI_ENABLED="no"
104 if test "$GUI_ENABLED" = "yes" -a "$JACK_FOUND" = "yes"; then
105   JACK_ENABLED="yes"
106 else
107   JACK_ENABLED="no"
110 if test "$GUI_ENABLED" = "yes" -a "$DSSI_FOUND" = "yes"; then
111   DSSI_GUI_ENABLED="yes"
112 else
113   DSSI_GUI_ENABLED="no"
116 if test "$GUI_ENABLED" = "yes" -a "$LV2_ENABLED" = "yes"; then
117   LV2_GUI_ENABLED="yes"
118 else
119   LV2_GUI_ENABLED="no"
122 AC_MSG_CHECKING([whether to enable experimental/unfinished features])
123 AC_ARG_ENABLE(experimental,
124   AC_HELP_STRING([--enable-experimental],[enable unfinished features - not recommended!]),
125   [set_enable_experimental="$enableval"],
126   [set_enable_experimental="no"])
127 AC_MSG_RESULT($set_enable_experimental)
129 AC_MSG_CHECKING([whether to enable debugging mode])
130 AC_ARG_ENABLE(debug,
131   AC_HELP_STRING([--enable-debug],[enable debug mode - slow!]),
132   [set_enable_debug="$enableval"],
133   [set_enable_debug="no"])
134 AC_MSG_RESULT($set_enable_debug)
136 if test "$set_enable_debug" = "yes"; then
137   CXXFLAGS="$CXXFLAGS -O0 -g -Wall"
138 else
139   CXXFLAGS="$CXXFLAGS -O3 -finline-functions -finline-functions-called-once -Wall"
142 AM_CONDITIONAL(USE_DSSI, test "$DSSI_FOUND" = "yes")
143 AM_CONDITIONAL(USE_LADSPA, test "$LADSPA_FOUND" = "yes")
144 AM_CONDITIONAL(USE_JACK, test "$JACK_ENABLED" = "yes")
145 AM_CONDITIONAL(USE_LV2, test "$LV2_ENABLED" = "yes")
146 AM_CONDITIONAL(USE_GUI, test "$GUI_ENABLED" = "yes")
147 AM_CONDITIONAL(USE_DSSI_GUI, test "$DSSI_GUI_ENABLED" = "yes")
148 AM_CONDITIONAL(USE_LV2_GUI, test "$LV2_GUI_ENABLED" = "yes")
149 AM_CONDITIONAL(USE_LASH, test "$LASH_ENABLED" = "yes")
150 AM_CONDITIONAL(USE_LASH_0_6, test "$LASH_0_6_ENABLED" = "yes")
151 AM_CONDITIONAL(USE_DEBUG, test "$set_enable_debug" = "yes")
152 if test "$LADSPA_FOUND" = "yes"; then
153   AC_DEFINE([USE_LADSPA], [1], [LADSPA wrapper will be built])
155 if test "$DSSI_FOUND" = "yes"; then
156   AC_DEFINE(USE_DSSI, 1, [DSSI wrapper will be built])
158 if test "$DSSI_GUI_ENABLED" = "yes"; then
159   AC_DEFINE(USE_DSSI_GUI, 1, [GTK+ GUI for DSSI  will be built])
161 if test "$LV2_ENABLED" = "yes"; then
162   AC_DEFINE(USE_LV2, 1, [LV2 wrapper will be built])
164 if test "$LV2_GUI_ENABLED" = "yes"; then
165   AC_DEFINE(USE_LV2_GUI, 1, [GTK+ GUI for LV2 plugins will be built])
167 if test "$JACK_ENABLED" = "yes"; then
168   AC_DEFINE(USE_JACK, 1, [JACK I/O will be used])
170 if test "$OLD_JACK" = "yes"; then
171   AC_DEFINE(OLD_JACK, 1, [Old JACK version (with extra nframes argument) is to be used])
173 if test "$LASH_ENABLED" = "yes"; then
174   AC_DEFINE(USE_LASH, 1, "LASH Audio Session Handler client functionality is enabled")
175   if test "$LASH_0_6_ENABLED" = "yes"; then
176     AC_DEFINE(USE_LASH_0_6, 1, "Unstable LASH API is enabled")
177   fi
179 if test "$set_enable_experimental" = "yes"; then
180   AC_DEFINE([ENABLE_EXPERIMENTAL], [1], "Experimental features are enabled")
183 # Checks for typedefs, structures, and compiler characteristics.
184 AC_HEADER_STDBOOL
185 AC_C_CONST
186 AC_C_INLINE
187 AC_TYPE_INT16_T
188 AC_TYPE_INT32_T
189 AC_TYPE_INT64_T
190 AC_TYPE_INT8_T
191 AC_TYPE_UINT16_T
192 AC_TYPE_UINT32_T
193 AC_TYPE_UINT64_T
194 AC_TYPE_UINT8_T
196 AC_MSG_CHECKING(where to install LADSPA plugins)
197 AC_ARG_WITH(ladspa_dir,
198   AC_HELP_STRING([--with-ladspa-dir],[install LADSPA plugins to DIR (default=$prefix/lib/ladspa/)]),
199   ,
200   [with_ladspa_dir="$prefix/lib/ladspa/"])
201 AC_MSG_RESULT($with_ladspa_dir)
202 AC_SUBST(with_ladspa_dir)
204 AC_MSG_CHECKING(where to install LADSPA RDF file)
205 AC_ARG_WITH(ladspa_rdf_dir,
206   AC_HELP_STRING([--with-ladspa-rdf-dir],[install RDF file to DIR (default=$prefix/share/ladspa/rdf/)]),
207   ,
208   [with_ladspa_rdf_dir="$prefix/share/ladspa/rdf/"])
209 AC_MSG_RESULT($with_ladspa_rdf_dir)
210 AC_SUBST(with_ladspa_rdf_dir)
212 AC_MSG_CHECKING(where to install DSSI plugins)
213 AC_ARG_WITH(dssi_dir,
214   AC_HELP_STRING([--with-dssi-dir],[install DSSI plugins to DIR (default=$prefix/lib/dssi/)]),
215   ,
216   [with_dssi_dir="$prefix/lib/dssi/"])
217 AC_MSG_RESULT($with_dssi_dir)
218 AC_SUBST(with_dssi_dir)
220 if test "$LV2_ENABLED" == "yes"; then
221   AC_MSG_CHECKING(where to install LV2 plugins)
222   AC_ARG_WITH(lv2_dir,
223     AC_HELP_STRING([--with-lv2-dir],[install LV2 calf.lv2 bundle to DIR (default=$prefix/lib/lv2/)]),
224     ,
225     [with_lv2_dir="$prefix/lib/lv2/"])
226   AC_MSG_RESULT($with_lv2_dir)
227   AC_SUBST(with_lv2_dir)
230 AC_DEFINE_UNQUOTED(PKGLIBDIR,"$prefix/share/calf/",[Calf shared data directory (bitmaps, GUI XML etc.)])
232 # Checks for library functions.
233 AC_CHECK_FUNCS([floor memset pow])
235 AC_CONFIG_FILES([Makefile
236                  calf.desktop
237                  gui/Makefile
238                  icons/Makefile
239                  src/Makefile
240                  src/calf/Makefile])
241 AC_MSG_RESULT([
242     Calf configured
244     Debug mode:             $set_enable_debug
245     Experimental plugins:   $set_enable_experimental
246     LADSPA enabled:         $LADSPA_FOUND
247     DSSI enabled:           $DSSI_FOUND
248     DSSI GUI enabled:       $DSSI_GUI_ENABLED
249     LV2 enabled:            $LV2_ENABLED
250     LV2 GUI enabled:        $LV2_GUI_ENABLED
251     JACK host enabled:      $JACK_ENABLED
252     LASH enabled:           $LASH_ENABLED])
253 if test "$LASH_ENABLED" = "yes"; then
254   AC_MSG_RESULT([    Unstable LASH API:      $LASH_0_6_ENABLED])
256 AC_MSG_RESULT([    Old-style JACK MIDI:    $OLD_JACK
257     
258     Installation prefix:    $prefix
261 if test "$SLV2_UNSUPPORTED" == "yes" -a "$LV2_ENABLED" == "yes"; then 
262     AC_MSG_RESULT([
263 WARNING:
264 An incompatible version of slv2 library has been found on this system.
266 Some features of Calf LV2 plugins (and other LV2 plugins) may not work
267 as expected in hosts that use currently installed version of libslv2.
269 Please upgrade to slv2 0.6.2 or newer version.
273 AC_OUTPUT