Merge branch 'master' into stringport
[calf.git] / configure.ac
blob2a03c9ef9638a8db478e204eb4003f24b873ea0a
1 #                                               -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
4 AC_PREREQ(2.61)
5 AC_INIT([calf],[0.0.17],[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]))
40 if test "$have_jack_header" = "yes"; then
41   PKG_CHECK_MODULES(JACK_DEPS, jack >= 0.103.0,
42     AC_CHECK_LIB([jack], [jack_port_register], JACK_FOUND="yes", JACK_FOUND="no"),
43     JACK_FOUND="no")
44 else
45   JACK_FOUND="no"
48 if test "$JACK_FOUND" = "yes"; then
49   PKG_CHECK_MODULES(JACK_MIDI_DEPS, jack >= 0.105.0, OLD_JACK="no", OLD_JACK="yes")
52 AC_SUBST(GLIB_DEPS_CFLAGS)
53 AC_SUBST(GLIB_DEPS_LIBS)
54 AC_SUBST(GUI_DEPS_CFLAGS)
55 AC_SUBST(GUI_DEPS_LIBS)
56 AC_SUBST(JACK_DEPS_CFLAGS)
57 AC_SUBST(JACK_DEPS_LIBS)
59 PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 1, LV2_ENABLED="yes", LV2_ENABLED="no")
60 PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.5.2, LASH_ENABLED="yes", LASH_ENABLED="no")
62 if test "$JACK_FOUND" = "yes" -o "$DSSI_FOUND" = "yes" -o "$LV2_ENABLED" = "yes"; then
63   PKG_CHECK_MODULES(GUI_DEPS, gtk+-2.0 >= 2.8.0 libglade-2.0 >= 2.4.0 cairo >= 1.2.0,
64     GUI_ENABLED="yes",
65     GUI_ENABLED="no (GTK+ 2.8, cairo 1.2 and libglade 2.4.0 or newer required)"
66   )
67 else
68   GUI_ENABLED="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 "$LV2_ENABLED" = "yes"; then
80   AC_MSG_CHECKING([whether to allow LV2])
81   AC_ARG_WITH(lv2,
82     AC_HELP_STRING([--without-lv2],[disable LV2 interface]),
83       [if test "$withval" = "no"; then LV2_ENABLED="no"; fi],[])
84   AC_MSG_RESULT($LV2_ENABLED)
87 if test "$GUI_ENABLED" = "yes" -a "$JACK_FOUND" = "yes"; then
88   JACK_ENABLED="yes"
89 else
90   JACK_ENABLED="no"
93 if test "$GUI_ENABLED" = "yes" -a "$DSSI_FOUND" = "yes"; then
94   DSSI_GUI_ENABLED="yes"
95 else
96   DSSI_GUI_ENABLED="no"
99 if test "$GUI_ENABLED" = "yes" -a "$LV2_ENABLED" = "yes"; then
100   LV2_GUI_ENABLED="yes"
101 else
102   LV2_GUI_ENABLED="no"
105 AC_MSG_CHECKING([whether to enable experimental/unfinished features])
106 AC_ARG_ENABLE(experimental,
107   AC_HELP_STRING([--enable-experimental],[enable unfinished features - not recommended!]),
108   [set_enable_experimental="$enableval"],
109   [set_enable_experimental="no"])
110 AC_MSG_RESULT($set_enable_experimental)
112 AC_MSG_CHECKING([whether to enable debugging mode])
113 AC_ARG_ENABLE(debug,
114   AC_HELP_STRING([--enable-debug],[enable debug mode - slow!]),
115   [set_enable_debug="$enableval"],
116   [set_enable_debug="no"])
117 AC_MSG_RESULT($set_enable_debug)
119 if test "$set_enable_debug" = "yes"; then
120   CXXFLAGS="$CXXFLAGS -O0 -g -Wall"
121 else
122   CXXFLAGS="$CXXFLAGS -O3 -finline-functions -finline-functions-called-once -Wall"
125 AM_CONDITIONAL(USE_DSSI, test "$DSSI_FOUND" = "yes")
126 AM_CONDITIONAL(USE_LADSPA, test "$LADSPA_FOUND" = "yes")
127 AM_CONDITIONAL(USE_JACK, test "$JACK_ENABLED" = "yes")
128 AM_CONDITIONAL(USE_LV2, test "$LV2_ENABLED" = "yes")
129 AM_CONDITIONAL(USE_GUI, test "$GUI_ENABLED" = "yes")
130 AM_CONDITIONAL(USE_DSSI_GUI, test "$DSSI_GUI_ENABLED" = "yes")
131 AM_CONDITIONAL(USE_LV2_GUI, test "$LV2_GUI_ENABLED" = "yes")
132 AM_CONDITIONAL(USE_LASH, test "$LASH_ENABLED" = "yes")
133 AM_CONDITIONAL(USE_DEBUG, test "$set_enable_debug" = "yes")
134 if test "$LADSPA_FOUND" = "yes"; then
135   AC_DEFINE([USE_LADSPA], [1], [LADSPA wrapper will be built])
137 if test "$DSSI_FOUND" = "yes"; then
138   AC_DEFINE(USE_DSSI, 1, [DSSI wrapper will be built])
140 if test "$DSSI_GUI_ENABLED" = "yes"; then
141   AC_DEFINE(USE_DSSI_GUI, 1, [GTK+ GUI for DSSI  will be built])
143 if test "$LV2_ENABLED" = "yes"; then
144   AC_DEFINE(USE_LV2, 1, [LV2 wrapper will be built])
146 if test "$LV2_GUI_ENABLED" = "yes"; then
147   AC_DEFINE(USE_LV2_GUI, 1, [GTK+ GUI for LV2 plugins will be built])
149 if test "$JACK_ENABLED" = "yes"; then
150   AC_DEFINE(USE_JACK, 1, [JACK I/O will be used])
152 if test "$OLD_JACK" = "yes"; then
153   AC_DEFINE(OLD_JACK, 1, [Old JACK version (with extra nframes argument) is to be used])
155 if test "$LASH_ENABLED" = "yes"; then
156   AC_DEFINE(USE_LASH, 1, "LASH Audio Session Handler client functionality is enabled")
158 if test "$set_enable_experimental" = "yes"; then
159   AC_DEFINE([ENABLE_EXPERIMENTAL], [1], "Experimental features are enabled")
162 # Checks for typedefs, structures, and compiler characteristics.
163 AC_HEADER_STDBOOL
164 AC_C_CONST
165 AC_C_INLINE
166 AC_TYPE_INT16_T
167 AC_TYPE_INT32_T
168 AC_TYPE_INT64_T
169 AC_TYPE_INT8_T
170 AC_TYPE_UINT16_T
171 AC_TYPE_UINT32_T
172 AC_TYPE_UINT64_T
173 AC_TYPE_UINT8_T
175 AC_MSG_CHECKING(where to install LADSPA plugins)
176 AC_ARG_WITH(ladspa_dir,
177   AC_HELP_STRING([--with-ladspa-dir],[install LADSPA plugins to DIR (default=$prefix/lib/ladspa/)]),
178   ,
179   [with_ladspa_dir="$prefix/lib/ladspa/"])
180 AC_MSG_RESULT($with_ladspa_dir)
181 AC_SUBST(with_ladspa_dir)
183 AC_MSG_CHECKING(where to install LADSPA RDF file)
184 AC_ARG_WITH(ladspa_rdf_dir,
185   AC_HELP_STRING([--with-ladspa-rdf-dir],[install RDF file to DIR (default=$prefix/share/ladspa/rdf/)]),
186   ,
187   [with_ladspa_rdf_dir="$prefix/share/ladspa/rdf/"])
188 AC_MSG_RESULT($with_ladspa_rdf_dir)
189 AC_SUBST(with_ladspa_rdf_dir)
191 AC_MSG_CHECKING(where to install DSSI plugins)
192 AC_ARG_WITH(dssi_dir,
193   AC_HELP_STRING([--with-dssi-dir],[install DSSI plugins to DIR (default=$prefix/lib/dssi/)]),
194   ,
195   [with_dssi_dir="$prefix/lib/dssi/"])
196 AC_MSG_RESULT($with_dssi_dir)
197 AC_SUBST(with_dssi_dir)
199 if test "$LV2_ENABLED" == "yes"; then
200   AC_MSG_CHECKING(where to install LV2 plugins)
201   AC_ARG_WITH(lv2_dir,
202     AC_HELP_STRING([--with-lv2-dir],[install LV2 calf.lv2 bundle to DIR (default=$prefix/lib/lv2/)]),
203     ,
204     [with_lv2_dir="$prefix/lib/lv2/"])
205   AC_MSG_RESULT($with_lv2_dir)
206   AC_SUBST(with_lv2_dir)
209 AC_DEFINE_UNQUOTED(PKGLIBDIR,"$prefix/lib/calf/",[Calf shared data directory (bitmaps, GUI XML etc.)])
211 # Checks for library functions.
212 AC_CHECK_FUNCS([floor memset pow])
214 AC_CONFIG_FILES([Makefile
215                  calf.desktop
216                  gui/Makefile
217                  src/Makefile
218                  src/calf/Makefile])
219 AC_MSG_RESULT([
220     Calf configured
222     Debug mode:             $set_enable_debug
223     LADSPA enabled:         $LADSPA_FOUND
224     DSSI enabled:           $DSSI_FOUND
225     DSSI GUI enabled:       $DSSI_GUI_ENABLED
226     LV2 enabled:            $LV2_ENABLED
227     LV2 GUI enabled:        $LV2_GUI_ENABLED
228     JACK host enabled:      $JACK_ENABLED
229     LASH enabled:           $LASH_ENABLED
230     Old-style JACK MIDI:    $OLD_JACK
231     
232     Installation prefix:    $prefix
234 AC_OUTPUT