/[svn]/linuxsampler/trunk/configure.ac
ViewVC logotype

Annotation of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2517 - (hide annotations) (download)
Fri Feb 7 19:53:09 2014 UTC (10 years, 1 month ago) by schoenebeck
File size: 57958 byte(s)
* LSCP shell (WIP): show a prompt & welcome message
* LSCP shell (WIP): fixed startup crash that happened
  on some systems
* Bumped version (1.0.0.svn30).

1 schoenebeck 697 #------------------------------------------------------------------------------------
2     # LinuxSampler's / liblinuxsampler's "official" release version:
3    
4 persson 2365 m4_define(linuxsampler_release_major, 1)
5     m4_define(linuxsampler_release_minor, 0)
6 schoenebeck 2517 m4_define(linuxsampler_release_build, 0.svn30)
7 schoenebeck 697
8 persson 2365
9     AC_INIT([linuxsampler],[linuxsampler_release_major.linuxsampler_release_minor.linuxsampler_release_build])
10 persson 2368 AC_CONFIG_SRCDIR([configure.ac])
11 persson 2365
12 schoenebeck 697 #------------------------------------------------------------------------------------
13     # The following is the libtool / shared library version. This doesn't have to
14     # do anything with the release version. It MUST conform to the following rules:
15     #
16     # 1. Start with version information of `0:0:0' for each libtool library.
17     # 2. Update the version information only immediately before a public release of
18     # your software. More frequent updates are unnecessary, and only guarantee
19     # that the current interface number gets larger faster.
20     # 3. If the library source code has changed at all since the last update, then
21     # increment revision (`c:r:a' becomes `c:r+1:a').
22     # 4. If any interfaces have been added, removed, or changed since the last update,
23     # increment current, and set revision to 0.
24     # 5. If any interfaces have been added since the last public release, then increment
25     # age.
26     # 6. If any interfaces have been removed since the last public release, then set age
27     # to 0.
28    
29 schoenebeck 1956 LIBLINUXSAMPLER_LT_CURRENT=3
30 schoenebeck 697 LIBLINUXSAMPLER_LT_REVISION=0
31 schoenebeck 1956 LIBLINUXSAMPLER_LT_AGE=0
32 schoenebeck 697 SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"
33    
34 schoenebeck 947 #------------------------------------------------------------------------------------
35     # the LSCP specification version this LinuSampler release complies with:
36    
37     LSCP_RELEASE_MAJOR=1
38 schoenebeck 2500 LSCP_RELEASE_MINOR=6
39 schoenebeck 947
40     AC_DEFINE_UNQUOTED(LSCP_RELEASE_MAJOR, ${LSCP_RELEASE_MAJOR}, [LSCP spec major version this release complies with.])
41     AC_DEFINE_UNQUOTED(LSCP_RELEASE_MINOR, ${LSCP_RELEASE_MINOR}, [LSCP spec minor version this release complies with.])
42    
43 schoenebeck 1741 AC_PROG_CXX
44 persson 1777 AC_LIBTOOL_WIN32_DLL
45 persson 2365 AC_PROG_LIBTOOL
46 schoenebeck 697
47     AC_SUBST(SHLIB_VERSION_ARG)
48     AC_SUBST(SHARED_VERSION_INFO)
49    
50 persson 2360 module=yes eval LIB_EXT=$shrext_cmds
51     AC_SUBST(LIB_EXT)
52    
53 schoenebeck 12 AC_C_BIGENDIAN
54 persson 1895 AC_CANONICAL_HOST
55 schoenebeck 9
56 schoenebeck 1639 PKG_PROG_PKG_CONFIG
57 schoenebeck 275
58 schoenebeck 554 ###########################################################################
59     # General Checks
60 schoenebeck 275
61 persson 1931 AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
62    
63 schoenebeck 510 AC_MSG_CHECKING([whether x86 architecture])
64 schoenebeck 9 def_arch_x86=0
65 persson 1895 case $host_cpu in
66 persson 1794 "i386" | "i486" | "i586" | "i686" | "i786" | "x86_64")
67 schoenebeck 9 echo "yes"
68     def_arch_x86=1;;
69     *)
70     echo "no";;
71     esac
72     AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x86,[Define to 1 if you build for x86 architecture.])
73    
74 schoenebeck 510 # determine the right gcc switch for CPU specific optimizations
75 schoenebeck 829 # (only if the user did not provide one)
76 schoenebeck 510 CXX_CPU_SWITCH=
77 schoenebeck 829 if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then
78 persson 1895 if test "$def_arch_x86" = 1 -a "$host_cpu" != "x86_64"; then
79     CXX_CPU_SWITCH="-march=$host_cpu"
80 schoenebeck 909 elif test "$target_cpu" = "ppc"; then
81 persson 1895 CXX_CPU_SWITCH="-arch=$host_cpu"
82 schoenebeck 829 fi
83 schoenebeck 510 fi
84     AC_SUBST([CXX_CPU_SWITCH])
85    
86 persson 2197 mac=no
87     linux=no
88     case "$host" in
89     *-*-darwin*)
90     mac=yes
91     ;;
92     *-*-linux*)
93     linux=yes
94     ;;
95     esac
96     AM_CONDITIONAL(LINUX, test "$linux" = yes)
97     AM_CONDITIONAL(MAC, test "$mac" = yes)
98    
99 senoner 1502 # check if we're on MS Windows
100     AC_CHECK_HEADERS(
101     mmsystem.h,
102     have_windows=1,
103 persson 1895 have_windows=0,
104     [#include <windef.h>]
105 senoner 1502 )
106     AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1")
107    
108 schoenebeck 288 AC_MSG_CHECKING([whether UNIX98 compatible])
109 persson 2365 AC_LANG_PUSH([C])
110     AC_RUN_IFELSE([AC_LANG_SOURCE([[
111 schoenebeck 288 #ifndef _GNU_SOURCE
112     #define _GNU_SOURCE 1
113     #endif
114     #include <features.h>
115     void main(void) {
116     #if _XOPEN_SOURCE >= 500
117     exit(0); /* UNIX98 compatible */
118     #else
119     exit(-1); /* not UNIX98 compatible */
120     #endif
121     }
122 persson 2365 ]])],
123 schoenebeck 288 have_unix98="yes",
124     have_unix98="no",
125     have_unix98="no"
126     )
127 persson 2365 AC_LANG_POP([C])
128 schoenebeck 288 AC_MSG_RESULT([$have_unix98])
129 persson 2369 if test "$have_unix98" = "no" -a "$have_windows" = "0" -a "$mac" = "no" ; then
130 schoenebeck 288 if test "x$HAVE_UNIX98" = "x"; then
131     echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"
132 persson 2365 echo "pthread_mutexattr_settype() call in Mutex.cpp. You may want to run"
133     echo "./configure with environment variable HAVE_UNIX98=1 in case you think you"
134 schoenebeck 288 echo "have a UNIX98 compatible system."
135     exit -1;
136     fi
137     fi
138    
139 wylder 822 # check for <features.h>
140     AC_CHECK_HEADERS(features.h)
141 wylder 821
142 schoenebeck 1454 # test for POSIX thread library
143     m4_ifdef([m4_include(m4/pthread.m4)],,
144     [sinclude([m4/pthread.m4])])
145     ACX_PTHREAD
146     LIBS="$PTHREAD_LIBS $LIBS"
147     CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
148     CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
149     CC="$PTHREAD_CC"
150 schoenebeck 852
151 schoenebeck 1454 # check for a bug in NPTL-enabled glibc
152     # (see Gentoo bug report #194076)
153     AC_ARG_ENABLE(nptl-bug-check,
154     [ --disable-nptl-bug-check
155     Disable check for a bug in certain NPTL-enabled
156     glibc versions that caused crashs.],
157     [config_check_nptl_bug="$enableval"],
158     [config_check_nptl_bug="yes"]
159     )
160     if test "$config_check_nptl_bug" = "yes"; then
161     m4_ifdef([m4_include(m4/nptl_bug.m4)],,
162     [sinclude([m4/nptl_bug.m4])])
163     ACX_NPTL_GLIBC_BUG([
164     echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
165     echo "You seem to have a buggy PTHREAD library! LinuxSampler would"
166     echo "probably crash due to this. Please report us the system you are"
167     echo "using and/or file a bug report to the bug tracking system of"
168     echo "your distribution."
169     echo "If you have a NPTL-enabled glibc AND it was compiled for TLS as"
170     echo "well, you can try to circumvent this problem for now by setting"
171     echo "the environment variable LD_ASSUME_KERNEL=\"2.4.1\" , which"
172     echo "should cause this test to pass."
173     echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
174     AC_MSG_ERROR([possibly NPTL glibc bug detected])
175     ])
176     else
177     echo "NPTL glibc bug check disabled"
178     fi
179    
180 schoenebeck 1742 # FIXME: this is actually a dependency of libgig, not of LS directly, why
181     # isn't it hidden by libgig?
182     AC_CHECK_HEADERS(uuid/uuid.h)
183     AC_SEARCH_LIBS(uuid_generate, uuid)
184 schoenebeck 1454
185    
186 schoenebeck 1742
187 schoenebeck 852 ###########################################################################
188 schoenebeck 288 # Checks for available audio and MIDI systems / drivers
189     # (we throw an error if there's not at least one system for audio output and MIDI input available)
190 schoenebeck 852
191 schoenebeck 288 have_midi_input_driver="false"
192     have_audio_output_driver="false"
193    
194 schoenebeck 852 # ALSA
195     AC_ARG_ENABLE(alsa-driver,
196     [ --disable-alsa-driver
197     Disable support for the Advanced Linux Sound
198     Architecture (ALSA).],
199 schoenebeck 1360 [config_alsa_driver="$enableval"],
200 schoenebeck 852 [config_alsa_driver="yes"]
201 schoenebeck 18 )
202 schoenebeck 852 have_alsa=0
203     if test "$config_alsa_driver" = "yes"; then
204     AC_CHECK_HEADER(alsa/asoundlib.h,
205     AC_CHECK_LIB(asound, main,
206     have_alsa=1
207     ,
208     have_alsa=0
209     )
210     ,
211     have_alsa=0
212     )
213     if test "$have_alsa" = "1"; then
214     have_midi_input_driver="true"
215     have_audio_output_driver="true";
216     fi
217    
218     echo -n "checking Alsa version... "
219 persson 2365 AC_LANG_PUSH([C])
220     AC_RUN_IFELSE([AC_LANG_SOURCE([[
221 schoenebeck 852 #include <alsa/asoundlib.h>
222     void main(void) {
223     /* ensure backward compatibility */
224     #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
225     #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
226     #endif
227     exit(SND_LIB_MAJOR);
228     }
229 persson 2365 ]])],
230 schoenebeck 852 alsa_major=0,
231     alsa_major=$?,
232     alsa_major=0
233     )
234 persson 2365 AC_RUN_IFELSE([AC_LANG_SOURCE([[
235 schoenebeck 852 #include <alsa/asoundlib.h>
236     void main(void) {
237     /* ensure backward compatibility */
238     #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
239     #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
240     #endif
241     exit(SND_LIB_MINOR);
242     }
243 persson 2365 ]])],
244 schoenebeck 852 alsa_minor=0,
245     alsa_minor=$?,
246     alsa_minor=0
247     )
248 persson 2365 AC_RUN_IFELSE([AC_LANG_SOURCE([[
249 schoenebeck 852 #include <alsa/asoundlib.h>
250     void main(void) {
251     /* ensure backward compatibility */
252     #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
253     #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
254     #endif
255     exit(SND_LIB_SUBMINOR);
256     }
257 persson 2365 ]])],
258 schoenebeck 852 alsa_subminor=0,
259     alsa_subminor=$?,
260     alsa_subminor=0
261     )
262 persson 2365 AC_LANG_POP([C])
263 schoenebeck 852 echo "$alsa_major.$alsa_minor.$alsa_subminor";
264     AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])
265     AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])
266     AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])
267     else
268     echo "ALSA support disabled by configure script parameter"
269 schoenebeck 18 fi
270 schoenebeck 291 AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
271 schoenebeck 288 AC_DEFINE_UNQUOTED(HAVE_ALSA,$have_alsa,[Define to 1 if you have ALSA installed.])
272 schoenebeck 1876 config_have_alsa="no"
273     if test $have_alsa = "1"; then
274     config_have_alsa="yes"
275     fi
276 schoenebeck 18
277 schoenebeck 852 # JACK
278     AC_ARG_ENABLE(jack-driver,
279     [ --disable-jack-driver
280     Disable support for the Jack Audio Connection Kit
281     (JACK).],
282 schoenebeck 1360 [config_jack_driver="$enableval"],
283 schoenebeck 852 [config_jack_driver="yes"]
284 schoenebeck 18 )
285 schoenebeck 852 have_jack=0
286     if test "$config_jack_driver" = "yes"; then
287     PKG_CHECK_MODULES(JACK, jack, have_jack=1, have_jack=0)
288     if test $have_jack = "1"; then
289     AC_SUBST(JACK_LIBS)
290     AC_SUBST(JACK_CFLAGS)
291 persson 1748 linuxsampler_save_LIBS=$LIBS
292     LIBS="$JACK_LIBS $LIBS"
293 persson 2478 AC_CHECK_FUNCS(jack_client_name_size jack_client_open \
294     jack_on_info_shutdown)
295 persson 1748 LIBS=$linuxsampler_save_LIBS
296 schoenebeck 852 have_audio_output_driver="true";
297     fi
298 schoenebeck 33 else
299 schoenebeck 852 echo "JACK support disabled by configure script parameter"
300 schoenebeck 33 fi
301 schoenebeck 852 AM_CONDITIONAL(HAVE_JACK, test $have_jack = "1")
302     AC_DEFINE_UNQUOTED(HAVE_JACK,$have_jack,[Define to 1 if you have JACK installed.])
303 schoenebeck 1876 config_have_jack="no"
304     if test $have_jack = "1"; then
305     config_have_jack="yes"
306     fi
307 schoenebeck 31
308 persson 1651 # JACK MIDI
309     have_jack_midi=0
310     if test $have_jack = "1"; then
311 persson 1652 linuxsampler_save_CFLAGS=$CFLAGS
312     linuxsampler_save_LIBS=$LIBS
313     CFLAGS="$JACK_CFLAGS $CFLAGS"
314     LIBS="$JACK_LIBS $LIBS"
315     AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0)
316     if test $have_jack_midi = "1"; then
317     AC_CHECK_FUNCS(jack_midi_get_event_count)
318     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jack/midiport.h>]], [[
319     jack_midi_clear_buffer(0, 0);
320     ]])], [AC_DEFINE(JACK_MIDI_FUNCS_NEED_NFRAMES, 1,
321     [Define to 1 if you have the old jack midi functions that need an nframes argument.])])
322     have_midi_input_driver="true"
323     fi
324     CFLAGS=$linuxsampler_save_CFLAGS
325     LIBS=$linuxsampler_save_LIBS
326 persson 1651 fi
327     AM_CONDITIONAL(HAVE_JACK_MIDI, test $have_jack_midi = "1")
328     AC_DEFINE_UNQUOTED(HAVE_JACK_MIDI, $have_jack_midi,
329     [Define to 1 if you have JACK with MIDI support installed.])
330 schoenebeck 1876 config_have_jack_midi="no"
331     if test $have_jack_midi = "1"; then
332     config_have_jack_midi="yes"
333     fi
334 persson 1651
335 schoenebeck 838 # ARTS
336 schoenebeck 852 AC_ARG_ENABLE(arts-driver,
337     [ --disable-arts-driver
338     Disable support for the Analogue Realtime System
339     (aRts).],
340 schoenebeck 1360 [config_arts_driver="$enableval"],
341 schoenebeck 852 [config_arts_driver="yes"]
342     )
343     have_arts=0
344     if test "$config_arts_driver" = "yes"; then
345     m4_ifdef([m4_include(m4/arts.m4)],,
346     [sinclude([m4/arts.m4])])
347     AM_PATH_ARTS(0.9.5, have_arts=1, have_arts=0)
348     if test "$have_arts" = "1"; then
349     have_audio_output_driver="true"
350     fi
351     else
352     echo "ARTS support disabled by configure script parameter"
353 schoenebeck 838 fi
354     AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1")
355     AC_DEFINE_UNQUOTED(HAVE_ARTS,$have_arts,[Define to 1 if you have aRts installed.])
356 schoenebeck 1876 config_have_arts="no"
357     if test $have_arts = "1"; then
358     config_have_arts="yes"
359     fi
360 schoenebeck 838
361 senoner 1502 # ASIO AUDIO (Win32)
362     AC_ARG_ENABLE(asiosdk-dir,
363     [ --enable-asiosdk-dir
364     Directory where the ASIO SDK is located, this automatically
365     enables the compilation of the ASIO audio output driver.],
366     [config_asiosdk_dir="${enableval}"],
367     [config_asiosdk_dir="."]
368     )
369     AC_SUBST(config_asiosdk_dir)
370    
371     AC_ARG_ENABLE(asio-driver,
372     [ --disable-asio-driver
373     Disable support for the Windows ASIO driver.],
374     [config_asio_driver="$enableval"],
375     [config_asio_driver="yes"]
376     )
377     have_asio=0
378     ASIOSDK_BASEDIR=
379     if test "$config_asio_driver" = "yes"; then
380     asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h
381     echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...."
382     if test -e $asiosdk_headerfile ; then
383     echo yes
384     have_asio=1
385     ASIOSDK_BASEDIR="$config_asiosdk_dir"
386     else
387     echo no
388     have_asio=0
389     fi
390     if test "$have_asio" = "1"; then
391     have_audio_output_driver="true"
392     fi
393     else
394     echo "Windows ASIO support disabled by configure script parameter"
395     fi
396     AC_SUBST(ASIOSDK_BASEDIR)
397     AM_CONDITIONAL(HAVE_ASIO, test $have_asio = "1")
398     AC_DEFINE_UNQUOTED(HAVE_ASIO,$have_asio,[Define to 1 if you have ASIO installed.])
399 schoenebeck 1876 config_have_asio="no"
400     if test $have_asio = "1"; then
401     config_have_asio="yes"
402     fi
403 senoner 1502
404 schoenebeck 609 # MidiShare (Linux, OS X, Windows)
405 schoenebeck 852 AC_ARG_ENABLE(midishare-driver,
406     [ --disable-midishare-driver
407     Disable support for the MidiShare system.],
408 schoenebeck 1360 [config_midishare_driver="$enableval"],
409 schoenebeck 852 [config_midishare_driver="yes"]
410 schoenebeck 609 )
411 schoenebeck 852 have_midishare=0
412     if test "$config_midishare_driver" = "yes"; then
413     AC_CHECK_HEADER(MidiShare.h,
414     AC_CHECK_LIB(MidiShare, MidiCountEvs,
415     have_midishare=1,
416     have_midishare=0
417     )
418     ,
419     have_midishare=0
420     )
421     if test "$have_midishare" = "1"; then
422     have_midi_input_driver="true"
423     fi
424     else
425     echo "MidiShare support disabled by configure script parameter"
426 schoenebeck 609 fi
427     AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
428     AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])
429 schoenebeck 1876 config_have_midishare="no"
430     if test $have_midishare = "1"; then
431     config_have_midishare="yes"
432     fi
433 schoenebeck 609
434     # CoreMIDI (OS X)
435 schoenebeck 852 AC_ARG_ENABLE(coremidi-driver,
436     [ --disable-coremidi-driver
437     Disable support for the Apple CoreMIDI system.],
438 schoenebeck 1360 [config_coremidi_driver="$enableval"],
439 schoenebeck 852 [config_coremidi_driver="yes"]
440 schoenebeck 609 )
441 schoenebeck 852 have_coremidi=0
442     if test "$config_coremidi_driver" = "yes"; then
443     AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
444     have_coremidi=1,
445     have_coremidi=0
446     )
447     if test "$have_coremidi" = "1"; then
448     have_midi_input_driver="true"
449     fi
450     else
451     echo "CoreMIDI support disabled by configure script parameter"
452 schoenebeck 609 fi
453     AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
454     AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])
455 schoenebeck 1876 config_have_coremidi="no"
456     if test $have_coremidi = "1"; then
457     config_have_coremidi="yes"
458     fi
459 schoenebeck 609
460 iliev 1829 # CoreAudio (OS X)
461     AC_ARG_ENABLE(coreaudio-driver,
462     [ --disable-coreaudio-driver
463     Disable support for the Apple CoreAudio system.],
464     [config_coreaudio_driver="$enableval"],
465     [config_coreaudio_driver="yes"]
466     )
467     have_coreaudio=0
468     if test "$config_coreaudio_driver" = "yes"; then
469     AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
470     have_coreaudio=1,
471     have_coreaudio=0
472     )
473     if test "$have_coreaudio" = "1"; then
474     have_audio_output_driver="true"
475     fi
476     else
477     echo "CoreAudio support disabled by configure script parameter"
478     fi
479     AM_CONDITIONAL(HAVE_COREAUDIO, test $have_coreaudio = "1")
480     AC_DEFINE_UNQUOTED(HAVE_COREAUDIO,$have_coreaudio,[Define to 1 if you have CoreAudio installed.])
481 schoenebeck 1876 config_have_coreaudio="no"
482     if test $have_coreaudio = "1"; then
483     config_have_coreaudio="yes"
484     fi
485 iliev 1829
486 senoner 1502 # MME MIDI (Win32)
487     AC_ARG_ENABLE(mmemidi-driver,
488     [ --disable-mmemidi-driver
489     Disable support for the Windows MME MIDI system.],
490     [config_mmemidi_driver="$enableval"],
491     [config_mmemidi_driver="yes"]
492     )
493     have_mmemidi=0
494     if test "$config_mmemidi_driver" = "yes"; then
495     AC_CHECK_HEADERS(mmsystem.h,
496     have_mmemidi=1,
497     have_mmemidi=0
498     )
499     if test "$have_mmemidi" = "1"; then
500     have_midi_input_driver="true"
501     fi
502     else
503     echo "MME MIDI support disabled by configure script parameter"
504     fi
505     AM_CONDITIONAL(HAVE_MME_MIDI, test $have_mmemidi = "1")
506     AC_DEFINE_UNQUOTED(HAVE_MME_MIDI,$have_mmemidi,[Define to 1 if you have MME MIDI installed.])
507 schoenebeck 1876 config_have_mme="no"
508     if test $have_mmemidi = "1"; then
509     config_have_mme="yes"
510     fi
511 senoner 1502
512 persson 1777 # DSSI
513     AC_CHECK_HEADERS(dssi.h,
514 schoenebeck 1876 config_have_dssi="yes",
515     config_have_dssi="no")
516     AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes")
517 persson 1777
518     # LV2
519 persson 2356 PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no")
520 persson 2343 AC_SUBST(LV2_CFLAGS)
521     AC_SUBST(LV2_LIBS)
522 schoenebeck 1876 AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes")
523 persson 1777
524     # VST
525     AC_ARG_ENABLE(vstsdk-dir,
526     [ --enable-vstsdk-dir
527     Directory where the VST SDK is located.
528     This automatically enables the compilation
529     of the VST plugin.],
530     [VSTSDK_DIR="${enableval}"],
531     [VSTSDK_DIR=]
532     )
533     AC_SUBST(VSTSDK_DIR)
534     AM_CONDITIONAL(HAVE_VST, test "x$VSTSDK_DIR" != "x")
535 schoenebeck 1876 config_have_vst="no"
536     if test "x$VSTSDK_DIR" != "x"; then
537     config_have_vst="yes"
538     fi
539 persson 1777
540 iliev 1846 # AU
541     AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
542 schoenebeck 1876 config_have_au="yes",
543     config_have_au="no")
544     AM_CONDITIONAL(HAVE_AU, test $config_have_au = "yes")
545 iliev 1855 AM_CONDITIONAL(HAVE_AUFLAGS, test "$AUFLAGS" != "")
546 persson 1777
547 persson 2183 if test $config_have_au = "yes" ; then
548     if test "x$DEVELOPER_EXTRAS_DIR" = "x" ; then
549     if test -d /Developer/Extras ; then
550     DEVELOPER_EXTRAS_DIR=/Developer/Extras
551     else
552     DEVELOPER_EXTRAS_DIR=/Developer/Examples
553     fi
554     fi
555     AC_SUBST(DEVELOPER_EXTRAS_DIR)
556     fi
557 iliev 1846
558 persson 2203 if test "x$MAC_PLUGIN_INSTALL_DIR" = "x" ; then
559     MAC_PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins
560     fi
561     AC_SUBST(MAC_PLUGIN_INSTALL_DIR)
562    
563 schoenebeck 1364 # have we found at least one MIDI input and one audio output driver ?
564     if test "$have_midi_input_driver" = "false"; then
565     echo "No supported MIDI input system found!"
566     echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"
567 persson 1652 echo "ALSA, JACK, MIDIShare, CoreMIDI, MME."
568 schoenebeck 1364 echo "If you think you have one of those available on your system, make sure you"
569     echo "also have the respective development (header) files installed."
570     exit -1;
571     fi
572     if test "$have_audio_output_driver" = "false"; then
573     echo "No supported audio output system found!"
574 persson 1652 echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output"
575 schoenebeck 1364 echo "driver at the moment!"
576     exit -1;
577     fi
578    
579    
580    
581     ###########################################################################
582     # Checks for various DLL libraries
583    
584 schoenebeck 504 # Check presence of libgig
585 schoenebeck 1956 libgig_version="3.3.0"
586 schoenebeck 504 PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
587     if test "$HAVE_GIG" = "false"; then
588     echo "Required libgig version not found!"
589     echo "You need to have libgig version ${libgig_version} installed!"
590     exit -1;
591 schoenebeck 714 else
592     echo "yes, found libgig $libgig_version"
593 schoenebeck 504 fi
594     AC_SUBST(GIG_CFLAGS)
595     AC_SUBST(GIG_LIBS)
596    
597 iliev 2018 # SF2 Engine (requires libgig)
598 iliev 2012 AC_ARG_ENABLE(sf2-engine,
599     [ --disable-sf2-engine
600     Disable compilation of the SF2 engine.
601 iliev 2018 You need to have libgig installed.],
602 iliev 2012 [config_sf2_engine="$enableval"],
603     [config_sf2_engine="yes"]
604     )
605     HAVE_SF2=0;
606     if test "$config_sf2_engine" = "yes"; then
607 iliev 2018 HAVE_SF2=1
608 iliev 2012 else
609     echo "SF2 engine disabled by configure script parameter"
610     fi
611     AM_CONDITIONAL(HAVE_SF2, test $HAVE_SF2 = 1)
612     AC_DEFINE_UNQUOTED(HAVE_SF2,$HAVE_SF2,[Define to 1 if you want SF2 engine and have libsf2 installed.])
613     config_have_sf2="no"
614     if test $HAVE_SF2 = "1"; then
615     config_have_sf2="yes"
616     fi
617    
618     # Check presence of libsndfile
619     libsndfile_version="1.0"
620     PKG_CHECK_MODULES(SNDFILE, sndfile >= $libsndfile_version, HAVE_SNDFILE=true, HAVE_SNDFILE=false)
621     if test "$HAVE_SNDFILE" = "false"; then
622     echo "Required libsndfile version not found!"
623     echo "You need to have libsndfile version ${libsndfile_version} installed!"
624     exit -1;
625     else
626     echo "yes, found libsndfile $libsndfile_version"
627     fi
628     AC_SUBST(SNDFILE_CFLAGS)
629     AC_SUBST(SNDFILE_LIBS)
630    
631 persson 2399 # Check for Vorbis and FLAC support in libsndfile
632 persson 2119 linuxsampler_save_CFLAGS=$CFLAGS
633     CFLAGS="$SNDFILE_CFLAGS $CFLAGS"
634 persson 2399 AC_CHECK_DECLS([SF_FORMAT_VORBIS, SF_FORMAT_FLAC], [], [], [[#include <sndfile.h>]])
635 persson 2167
636     # Check for loop functionality in libsndfile
637     AC_CHECK_MEMBERS([SF_INSTRUMENT.loops],,
638     [AC_MSG_WARN([Your version of libsndfile does not support
639     reading of loop information. LinuxSampler will not be able to
640     extract loop information from sample files.])],
641     [#include <sndfile.h>])
642 persson 2119 CFLAGS=$linuxsampler_save_CFLAGS
643    
644 schoenebeck 1364 # Instruments DB feature (requires SQLite 3.3)
645     AC_ARG_ENABLE(instruments-db,
646     [ --disable-instruments-db
647     Disable compilation of the sampler's instruments
648     database feature. You need to have SQLite 3.3
649     or younger installed for this feature.],
650     [config_instruments_db="$enableval"],
651     [config_instruments_db="yes"]
652     )
653     HAVE_SQLITE3=0;
654     if test "$config_instruments_db" = "yes"; then
655     # Check presence of sqlite3
656     sqlite_version="3.3"
657     PKG_CHECK_MODULES(SQLITE3, sqlite3 >= $sqlite_version, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
658     AC_SUBST(SQLITE3_LIBS)
659     AC_SUBST(SQLITE3_CFLAGS)
660     if test $HAVE_SQLITE3 = false; then
661     HAVE_SQLITE3=0
662     config_instruments_db="no"
663     echo "*** Required sqlite version not found!"
664     echo "*** You need to have sqlite version ${sqlite_version} or higher"
665     echo "*** for instruments database support to be enabled."
666     echo "*** Support for instruments DB will be disabled!"
667     else
668     HAVE_SQLITE3=1
669     fi
670 senkov 397 else
671 schoenebeck 1364 echo "Instruments DB feature disabled by configure script parameter"
672 senkov 397 fi
673     AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
674 schoenebeck 1364 AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you want the instruments DB feature and have SQLITE3 installed.])
675 schoenebeck 31
676 schoenebeck 288
677    
678 schoenebeck 554 ###########################################################################
679     # Handle Configuration Options
680    
681     # TODO: should we use AC_ARG_VAR(variable, description) instead?
682    
683 schoenebeck 617 AC_ARG_ENABLE(asm,
684 schoenebeck 1259 [ --disable-asm
685 schoenebeck 738 Enable hand-crafted assembly optimizations
686 schoenebeck 1259 (default=on). LinuxSampler provides CPU specific
687     assembly optimizations. This is currently limited
688     to just enter a fast (denormal) FPU mode on x86
689     platforms. There are currently no synthesis core
690     assembly optimizations anymore since LS 0.4.0],
691 schoenebeck 1360 [config_asm="$enableval"],
692 schoenebeck 1259 [config_asm="yes"]
693 schoenebeck 617 )
694     if test "$config_asm" = "yes"; then
695 schoenebeck 1259 AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable asm optimizations.])
696 schoenebeck 617 fi
697    
698 schoenebeck 554 AC_ARG_ENABLE(dev-mode,
699 schoenebeck 1424 [ --enable-dev-mode
700     Enable development mode (default=off). In that mode
701 schoenebeck 554 we do some extra sanity checks here and there.
702     This helps to spot possible problems, but reduces
703     efficiency a bit],
704 schoenebeck 1360 [config_dev_mode="$enableval"],
705 schoenebeck 1424 [config_dev_mode="no"]
706 schoenebeck 554 )
707     if test "$config_dev_mode" = "yes"; then
708     AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.])
709     fi
710    
711     AC_ARG_ENABLE(debug-level,
712     [ --enable-debug-level
713     Specify verbosity of console messages (default=1).
714     The higher the value, the higher will be verbosity.
715     A value of 0 means no console output at all.
716     There's not really an upper limit but the usual
717     level of all messages is currently somewhere less
718     than 10.],
719     [config_debug_level="${enableval}"],
720     [config_debug_level="1"]
721     )
722     AC_DEFINE_UNQUOTED(CONFIG_DEBUG_LEVEL, $config_debug_level, [Define console verbosity.])
723    
724     AC_ARG_ENABLE(rt-exceptions,
725     [ --enable-rt-exceptions
726     Enable exceptions in the realtime thread
727     (default=no). If this is enabled, exceptions will
728     be thrown on critical errors in the realtime
729     context as well. Otherwise if disabled
730     segmentation faults will be forced by the
731     application on critical errors.],
732 schoenebeck 1360 [config_rt_exceptions="$enableval"],
733 schoenebeck 554 [config_rt_exceptions="no"]
734     )
735     if test "$config_rt_exceptions" = "yes"; then
736     AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.])
737     fi
738    
739 persson 2197 config_pthread_testcancel="$mac"
740 nagata 1649 AC_ARG_ENABLE(pthread-testcancel,
741     [ --enable-pthread-testcancel
742 persson 2185 Enable pthread_testcancel() calls and avoid
743     asynchronous cancel of pthreads (default=yes
744     for Mac targets, no otherwise).],
745 nagata 1649 [config_pthread_testcancel="$enableval"],
746 persson 2343 [])
747 nagata 1649 if test "$config_pthread_testcancel" = "yes"; then
748     AC_DEFINE_UNQUOTED(CONFIG_PTHREAD_TESTCANCEL, 1, [Define to 1 to enable pthread_testcancel() calls.])
749     fi
750    
751 schoenebeck 554 AC_ARG_ENABLE(preload-samples,
752     [ --enable-preload-samples
753     Due to seeking and latency issues with hard drives
754     we have to cache a small part of samples' head in
755     RAM (default=32768). The higher this value the
756     more memory will be occupied for each sample, but
757     the safer this will be in regards of possible
758     droputs. A 'good' value depends on the running
759     system and usage dependant factors.],
760     [config_preload_samples="${enableval}"],
761     [config_preload_samples="32768"]
762     )
763     AC_DEFINE_UNQUOTED(CONFIG_PRELOAD_SAMPLES, $config_preload_samples, [Define amount of sample points to be cached in RAM.])
764    
765     AC_ARG_ENABLE(max-pitch,
766     [ --enable-max-pitch
767     Specify the maximum allowed pitch value in octaves
768     (default=4). To lower memory usage you might want
769     set a smaller value.],
770     [config_max_pitch="${enableval}"],
771     [config_max_pitch="4"]
772     )
773     AC_DEFINE_UNQUOTED(CONFIG_MAX_PITCH, $config_max_pitch, [Define max. allowed pitch.])
774    
775     AC_ARG_ENABLE(max-events,
776     [ --enable-max-events
777     Specify the maximum allowed amount of events to be
778     processed per fragment (default=1024).],
779     [config_max_events="${enableval}"],
780     [config_max_events="1024"]
781     )
782     AC_DEFINE_UNQUOTED(CONFIG_MAX_EVENTS_PER_FRAGMENT, $config_max_events, [Define max. allowed events per fragment.])
783    
784     AC_ARG_ENABLE(eg-bottom,
785     [ --enable-eg-bottom
786     Bottom limit of envelope generators
787     (default=0.001). Certain kinds of curve types like
788     exponential curves converge against 0 but never
789     reach 0. So we have to define a certain low value
790     after which we should consider all smaller values
791     to be 'almost zero'. The smaller this value, the
792     longer will voices survive in EG's release stage
793     and thus waste voices. If this value is too high
794     will cause click sounds though.],
795     [config_eg_bottom="${enableval}"],
796     [config_eg_bottom="0.001"]
797     )
798     AC_DEFINE_UNQUOTED(CONFIG_EG_BOTTOM, $config_eg_bottom, [Define bottom limit of envelopes.])
799    
800     AC_ARG_ENABLE(eg-min-release-time,
801     [ --enable-eg-min-release-time
802     Specify the lowest allowed release time in seconds
803     (default=0.0025). This value will also be used to
804     ramp down voices on voice stealing. This value
805     should always be less than the period time of the
806     used audio driver, as in case of voice stealing
807     the killed voice needs to be completely ramped
808     down in the same fragment.],
809     [config_eg_min_release_time="${enableval}"],
810     [config_eg_min_release_time="0.0025"]
811     )
812     AC_DEFINE_UNQUOTED(CONFIG_EG_MIN_RELEASE_TIME, $config_eg_min_release_time, [Define min. release time.])
813    
814     AC_ARG_ENABLE(refill-streams,
815     [ --enable-refill-streams
816     Number of streams that should be refilled in each
817     disk thread cycle (default=4).],
818     [config_refill_streams="${enableval}"],
819     [config_refill_streams="4"]
820     )
821     AC_DEFINE_UNQUOTED(CONFIG_REFILL_STREAMS_PER_RUN, $config_refill_streams, [Define amount of streams to be refilled per cycle.])
822    
823     AC_ARG_ENABLE(stream-min-refill,
824     [ --enable-stream-min-refill
825     Minimum refill size for disk streams (default=1024).
826     The disk thread will go to sleep for a while if no
827     stream had to be refilled more than this value in
828     a disk thread cycle.],
829     [config_stream_min_refill="${enableval}"],
830     [config_stream_min_refill="1024"]
831     )
832     AC_DEFINE_UNQUOTED(CONFIG_STREAM_MIN_REFILL_SIZE, $config_stream_min_refill, [Define min. stream refill size.])
833    
834     AC_ARG_ENABLE(stream-max-refill,
835     [ --enable-stream-max-refill
836     Maximum refill size for disk streams
837     (default=65536). The disk thread will refill
838     each stream only by a size of this value per
839     disk thread cycle.],
840     [config_stream_max_refill="${enableval}"],
841     [config_stream_max_refill="65536"]
842     )
843     AC_DEFINE_UNQUOTED(CONFIG_STREAM_MAX_REFILL_SIZE, $config_stream_max_refill, [Define max. stream refill size.])
844    
845     AC_ARG_ENABLE(stream-size,
846     [ --enable-stream-size
847     Size of each stream's ring buffer in sample points
848     (default=262144).],
849     [config_stream_size="${enableval}"],
850     [config_stream_size="262144"]
851     )
852     AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_SIZE, $config_stream_size, [Define each stream's ring buffer size.])
853    
854     AC_ARG_ENABLE(max-streams,
855     [ --enable-max-streams
856 schoenebeck 1800 Initial maximum amount of disk streams
857     (default=90). This value can be changed at
858     runtime. It should always be higher than the
859     maximum amount of voices.],
860 schoenebeck 554 [config_max_streams="${enableval}"],
861     [config_max_streams="90"]
862     )
863 schoenebeck 1800 AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_STREAMS, $config_max_streams, [Define initial max. streams.])
864 schoenebeck 554
865     AC_ARG_ENABLE(max-voices,
866     [ --enable-max-voices
867 schoenebeck 1800 Initial maximum amount of voices (default=64).
868     This value can be changed at runtime. It should
869     always be lower than the maximum amount of disk
870     streams.],
871 schoenebeck 554 [config_max_voices="${enableval}"],
872     [config_max_voices="64"]
873     )
874 schoenebeck 1800 AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_VOICES, $config_max_voices, [Define initial max. voices.])
875 schoenebeck 554
876 schoenebeck 738 AC_ARG_ENABLE(subfragment-size,
877     [ --enable-subfragment-size
878     Every audio fragment will be splitted into
879     subfragments. Where each subfragment renders
880     audio with constant synthesis parameters. This is
881     done for efficiency reasons. This parameter
882     defines the default size of a subfragment in
883     sample points. A large value means less CPU time
884     whereas a low value means better audio quality
885     (default=32).],
886     [config_subfragment_size="${enableval}"],
887     [config_subfragment_size="32"]
888     )
889     AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])
890    
891 schoenebeck 1005 AC_ARG_ENABLE(global-attenuation-default,
892     [ --enable-global-attenuation-default
893 schoenebeck 781 To prevent clipping all samples will be lowered
894 schoenebeck 1005 in amplitude by this given default factor (can
895     be overridden at runtime).
896 schoenebeck 781 (default=0.35)],
897 schoenebeck 1005 [config_global_attenuation_default="${enableval}"],
898     [config_global_attenuation_default="0.35"]
899 schoenebeck 781 )
900 schoenebeck 1005 AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION_DEFAULT, $config_global_attenuation_default, [Define default global volume attenuation (as floating point factor).])
901 schoenebeck 781
902 schoenebeck 554 AC_ARG_ENABLE(voice-steal-algo,
903     [ --enable-voice-steal-algo
904     Voice stealing algorithm to be used. Currently
905     available options:
906     none:
907     Disable voice stealing completely.
908 schoenebeck 563 oldestvoiceonkey (default):
909 schoenebeck 554 Try to kill a voice on the same key first,
910     if no success, proceed with the oldest key.
911 schoenebeck 563 oldestkey:
912 schoenebeck 554 Try to kill a voice from the oldest active
913     key.],
914     [ if test ! "(" "${enableval}" = "none" \
915     -o "${enableval}" = "oldestvoiceonkey" \
916     -o "${enableval}" = "oldestkey" ")" ; then
917     AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
918     else
919     config_voice_steal_algo="${enableval}"
920 schoenebeck 579 fi
921 schoenebeck 554 ],
922 schoenebeck 563 [config_voice_steal_algo="oldestvoiceonkey"]
923 schoenebeck 554 )
924     AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
925    
926     AC_ARG_ENABLE(sysex-buffer-size,
927     [ --enable-sysex-buffer-size
928     System Exclusive Message buffer size in kB
929     (default=2048).],
930     [config_sysex_buffer_size="${enableval}"],
931     [config_sysex_buffer_size="2048"]
932     )
933     AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
934    
935     AC_ARG_ENABLE(force-filter,
936     [ --enable-force-filter
937     If enabled will force filter to be used even if
938     no usage was define in instrument patch files.
939     (default=no).],
940 schoenebeck 1360 [config_force_filter="$enableval"],
941 schoenebeck 554 [config_force_filter="no"]
942     )
943     if test "$config_force_filter" = "yes"; then
944     AC_DEFINE_UNQUOTED(CONFIG_FORCE_FILTER, 1, [Define to 1 to force filter usage.])
945     fi
946    
947     AC_ARG_ENABLE(filter-cutoff-min,
948     [ --enable-filter-cutoff-min
949     Minimum filter cutoff frequency in Hz
950     (default=100.0).],
951     [config_filter_cutoff_min="${enableval}"],
952     [config_filter_cutoff_min="100.0"]
953     )
954     AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MIN, ${config_filter_cutoff_min}f, [Define min. filter cutoff frequency.])
955    
956     AC_ARG_ENABLE(filter-cutoff-max,
957     [ --enable-filter-cutoff-max
958     Maximum filter cutoff frequency in Hz
959     (default=10000.0).],
960     [config_filter_cutoff_max="${enableval}"],
961     [config_filter_cutoff_max="10000.0"]
962     )
963     AC_DEFINE_UNQUOTED(CONFIG_FILTER_CUTOFF_MAX, ${config_filter_cutoff_max}f, [Define max. filter cutoff frequency.])
964    
965     AC_ARG_ENABLE(override-cutoff-ctrl,
966     [ --enable-override-cutoff-ctrl
967     Override filter cutoff MIDI controller (default=no).
968     Note: you have to define the MIDI controller number
969     here, it's not a boolean parameter type! If this
970     option is used, controller number given by
971     instrument patch will be ignored and instead this
972     supplied value will be used.],
973     [config_override_cutoff_ctrl="${enableval}"],
974     [config_override_cutoff_ctrl="no"]
975     )
976     if test ! "$config_override_cutoff_ctrl" = "no"; then
977     AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_CUTOFF_CTRL, $config_override_cutoff_ctrl, [Define to a MIDI controller number to override cutoff control.])
978     fi
979    
980     AC_ARG_ENABLE(override-resonance-ctrl,
981     [ --enable-override-resonance-ctrl
982     Override filter resonance MIDI controller
983     (default=no). Note: you have to define the MIDI
984     controller number here, it's not a boolean
985     parameter type! If this option is used, controller
986     number given by instrument patch will be ignored
987     and instead this supplied value will be used.],
988     [config_override_resonance_ctrl="${enableval}"],
989     [config_override_resonance_ctrl="no"]
990     )
991     if test ! "$config_override_resonance_ctrl" = "no"; then
992     AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_RESONANCE_CTRL, $config_override_resonance_ctrl, [Define to a MIDI controller number to override resonance control.])
993     fi
994    
995     AC_ARG_ENABLE(override-filter-type,
996     [ --enable-override-filter-type
997     Override filter type (default=no). Options:
998     hp: for highpass
999     bp: for bandpass
1000     br: for bandreject
1001     lp: for lowpass
1002     lpt: for lowpass turbo],
1003     [ if test "${enableval}" = "hp" ; then
1004     config_override_filter_type="::gig::vcf_type_highpass"
1005     elif test "${enableval}" = "bp" ; then
1006     config_override_filter_type="::gig::vcf_type_bandpass"
1007     elif test "${enableval}" = "br" ; then
1008     config_override_filter_type="::gig::vcf_type_bandreject"
1009     elif test "${enableval}" = "lp" ; then
1010     config_override_filter_type="::gig::vcf_type_lowpass"
1011     elif test "${enableval}" = "lpt" ; then
1012     config_override_filter_type="::gig::vcf_type_lowpassturbo"
1013     elif test ! "${enableval}" = "no"; then
1014     AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
1015 schoenebeck 579 fi
1016 schoenebeck 554 ],
1017     [config_override_filter_type="no"]
1018     )
1019     if test ! "$config_override_filter_type" = "no"; then
1020     AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
1021     fi
1022    
1023 schoenebeck 563 AC_ARG_ENABLE(gs-checksum,
1024     [ --enable-gs-checksum
1025     Enable Roland General Synth SysEx checksum check
1026     (default=no). If this is enabled, all GS SysEx
1027     messages which do not provide a correct checksum
1028     will be ignored. This is disabled by default as
1029     not all devices honor GS checksums.],
1030 schoenebeck 1360 [config_assert_gs_sysex_checksum="$enableval"],
1031 schoenebeck 563 [config_assert_gs_sysex_checksum="no"]
1032     )
1033     if test "config_assert_gs_sysex_checksum" = "yes"; then
1034     AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
1035     fi
1036    
1037 schoenebeck 829 AC_ARG_ENABLE(portamento-time-min,
1038     [ --enable-portamento-time-min
1039     Minimum Portamento time in seconds
1040     (default=0.1).],
1041     [config_portamento_time_min="${enableval}"],
1042     [config_portamento_time_min="0.1"]
1043     )
1044     AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MIN, $config_portamento_time_min, [Define min. portamento time.])
1045    
1046     AC_ARG_ENABLE(portamento-time-max,
1047     [ --enable-portamento-time-max
1048     Maximum Portamento time in seconds
1049     (default=32).],
1050     [config_portamento_time_max="${enableval}"],
1051     [config_portamento_time_max="32"]
1052     )
1053     AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MAX, $config_portamento_time_max, [Define max. portamento time.])
1054    
1055     AC_ARG_ENABLE(portamento-time-default,
1056     [ --enable-portamento-time-default
1057     Default Portamento time in seconds
1058     (default=1).],
1059     [config_portamento_time_default="${enableval}"],
1060     [config_portamento_time_default="1"]
1061     )
1062     AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_DEFAULT, $config_portamento_time_default, [Define default portamento time.])
1063    
1064 schoenebeck 714 AC_ARG_ENABLE(signed-triang-algo,
1065     [ --enable-signed-triang-algo
1066     Signed triangular wave algorithm to be used (e.g. for LFOs).
1067     Currently available options:
1068     intmath:
1069     Uses integer math without any branch will then be
1070     converted to floating point value for each sample point.
1071     This int->float conversion might hurt on some systems.
1072 senkov 720 intmathabs:
1073     Similar to intmath but uses abs() function.
1074     Depending on compiler and platrofm this could
1075     perform better than integer math as it avoids
1076 schoenebeck 1360 an extra integer multiply instruction.
1077 schoenebeck 714 diharmonic:
1078     The triangular wave will be approximated by adding two
1079     sinusoidials. This solution might especially hurt on
1080     systems with weak floating point unit.
1081     benchmark (default):
1082     This is not an algorithm. Use this option if the
1083     appropriate algorithm should be automatically
1084     chosen by the configure script by performing a
1085     benchmark between the algorithms mentioned above.
1086     This will NOT work for cross compilation!],
1087     [ if test ! "(" "${enableval}" = "intmath" \
1088 senkov 720 -o "${enableval}" = "intmathabs" \
1089 schoenebeck 714 -o "${enableval}" = "diharmonic" ")" ; then
1090     AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
1091     else
1092     config_signed_triang_algo="${enableval}"
1093     fi
1094     ],
1095     [config_signed_triang_algo="benchmark"]
1096     )
1097 schoenebeck 563
1098 schoenebeck 714 AC_ARG_ENABLE(unsigned-triang-algo,
1099     [ --enable-unsigned-triang-algo
1100     Unsigned triangular wave algorithm to be used (e.g. for LFOs).
1101     Currently available options:
1102     intmath:
1103     Uses integer math without any branch will then be
1104     converted to floating point value for each sample point.
1105     This int->float conversion might hurt on some systems.
1106 senkov 720 intmathabs:
1107     Similar to intmath but uses abs() function.
1108     Depending on compiler and platrofm this could
1109     perform better than integer math as it avoids
1110 schoenebeck 1360 an extra integer multiply instruction.
1111 schoenebeck 714 diharmonic:
1112     The triangular wave will be approximated by adding two
1113     sinusoidials. This solution might especially hurt on
1114     systems with weak floating point unit.
1115     benchmark (default):
1116     This is not an algorithm. Use this option if the
1117     appropriate algorithm should be automatically
1118     chosen by the configure script by performing a
1119     benchmark between the algorithms mentioned above.
1120     This will NOT work for cross compilation!],
1121     [ if test ! "(" "${enableval}" = "intmath" \
1122 senkov 720 -o "${enableval}" = "intmathabs" \
1123 schoenebeck 714 -o "${enableval}" = "diharmonic" ")" ; then
1124     AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
1125     else
1126     config_unsigned_triang_algo="${enableval}"
1127     fi
1128     ],
1129     [config_unsigned_triang_algo="benchmark"]
1130     )
1131    
1132 iliev 716 AC_ARG_ENABLE(process-muted-channels,
1133     [ --enable-process-muted-channels
1134     Enable processing of muted channels (default=no).
1135     In that mode all MIDI events in the muted channels
1136     will be processed. This will provide information
1137     about the active voices in the muted channels and
1138     will not discard notes, triggered in mute mode,
1139     when the channel is unmuted. But also will reduce
1140     the efficiency.],
1141 schoenebeck 1360 [config_process_muted_channels="$enableval"],
1142 iliev 716 [config_process_muted_channels="no"]
1143     )
1144     if test "$config_process_muted_channels" = "yes"; then
1145     AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
1146     fi
1147 schoenebeck 714
1148 schoenebeck 849 AC_ARG_ENABLE(process-all-notes-off,
1149     [ --disable-process-all-notes-off
1150     Disable interpretation of All-Notes-Off MIDI
1151     messages (default=on). By default LS will release
1152     all voices whenever it receives an All-Notes-Off
1153     MIDI message. You can disable this behavior, so
1154     that LS simply ignores such messages.],
1155 schoenebeck 1360 [config_process_all_notes_off="$enableval"],
1156 schoenebeck 849 [config_process_all_notes_off="yes"]
1157     )
1158     if test "$config_process_all_notes_off" = "yes"; then
1159     AC_DEFINE_UNQUOTED(CONFIG_PROCESS_ALL_NOTES_OFF, 1, [Define to 1 if you want to enable processing of All-Notes-Off MIDI messages.])
1160     fi
1161    
1162 persson 830 AC_ARG_ENABLE(interpolate-volume,
1163     [ --disable-interpolate-volume
1164     Disable interpolation of volume modulation
1165     (default=on). With this enabled, the volume changes
1166     generated by for example the envelope generator
1167     will be smoother, minimizing the risk for audio
1168     clicks. Disable it to reduce CPU usage.],
1169 schoenebeck 1360 [config_interpolate_volume="$enableval"],
1170 persson 830 [config_interpolate_volume="yes"]
1171     )
1172     if test "$config_interpolate_volume" = "yes"; then
1173     AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.])
1174     fi
1175 iliev 716
1176 schoenebeck 1762 AC_ARG_ENABLE(master-volume-sysex-by-port,
1177     [ --enable-master-volume-sysex-by-port
1178     Whether global volume sysex message should be
1179     applied globally to the whole sampler or only to
1180     the sampler channels connected to the same MIDI
1181     input port on which the sysex message arrived on.
1182     By default global volume sysex messages apply
1183     globally to the whole sampler, since many MIDI
1184     devices behave that way.],
1185     [config_master_volume_sysex_by_port="$enableval"],
1186     [config_master_volume_sysex_by_port="no"]
1187     )
1188     if test "$config_master_volume_sysex_by_port" = "yes"; then
1189     AC_DEFINE_UNQUOTED(CONFIG_MASTER_VOLUME_SYSEX_BY_PORT, 1, [Define to 1 if you want global volume sysex message only be applied to the respective MIDI port.])
1190     fi
1191    
1192 schoenebeck 1212 AC_ARG_ENABLE(plugin-dir,
1193     [ --enable-plugin-dir
1194     Directory where the sampler shall look for potential plugins,
1195     that is 3rd party shared libraries that should be loaded by
1196     the sampler on startup. By default the sampler will search
1197     for plugins in the subdirectory "plugins" below its own
1198     library directory.
1199     (i.e. /usr/local/lib/linuxsampler/plugins)],
1200     [config_plugin_dir="${enableval}"],
1201     [config_plugin_dir="${libdir}/linuxsampler/plugins"]
1202     )
1203     AC_SUBST(config_plugin_dir)
1204 persson 830
1205 schoenebeck 1364 AC_ARG_ENABLE(default-instruments-db-location,
1206     [ --enable-default-instruments-db-location
1207     Only when instruments DB feature is enabled: file name
1208     which shall be taken as default location of the
1209     instruments DB file. This location can still be
1210     overridden at runtime with a command line switch.
1211     (default: /var/lib/linuxsampler/instruments.db)],
1212     [config_default_instruments_db_file="${enableval}"],
1213     [config_default_instruments_db_file="/var/lib/linuxsampler/instruments.db"]
1214     )
1215     AC_DEFINE_UNQUOTED(
1216     CONFIG_DEFAULT_INSTRUMENTS_DB_LOCATION,
1217     "$config_default_instruments_db_file",
1218     [Only when instruments DB feature is enabled: default location of the DB file.]
1219     )
1220 schoenebeck 1432 AC_SUBST(config_default_instruments_db_file)
1221 schoenebeck 1212
1222 schoenebeck 1364
1223 schoenebeck 554 ###########################################################################
1224 schoenebeck 714 # Automatic Benchmarks (to detect the best algorithms for the system)
1225    
1226     if test "$config_signed_triang_algo" = "benchmark"; then
1227     echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
1228 persson 2365 AC_LANG_PUSH([C++])
1229     AC_RUN_IFELSE([AC_LANG_SOURCE([[
1230 schoenebeck 714 #define SIGNED 1
1231     #define SILENT 1
1232 schoenebeck 738 #include "${srcdir}/benchmarks/triang.cpp"
1233 persson 2365 ]])],
1234 schoenebeck 714 triang_signed=0,
1235     triang_signed=$?,
1236     triang_signed=0
1237     )
1238 persson 2365 AC_LANG_POP([C++])
1239 schoenebeck 714 if test "$triang_signed" = "2"; then
1240     config_signed_triang_algo="intmath"
1241     echo "integer math"
1242     elif test "$triang_signed" = "3"; then
1243     config_signed_triang_algo="diharmonic"
1244     echo "di harmonics"
1245 senkov 720 elif test "$triang_signed" = "5"; then
1246     config_signed_triang_algo="intmathabs"
1247     echo "integer math using abs()"
1248 schoenebeck 714 else
1249     echo "Benchmark of signed triangular wave algorithms failed!"
1250     echo "Maybe you are doing cross compilation? In that case you have to select"
1251     echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
1252     echo "Call './configure --help' for further information or read configure.in."
1253     exit -1;
1254     fi
1255 schoenebeck 1165 else
1256     case "$config_signed_triang_algo" in
1257     intmath)
1258     triang_signed=2 ;;
1259     diharmonic)
1260     triang_signed=3 ;;
1261     intmathabs)
1262     triang_signed=5 ;;
1263     esac
1264 schoenebeck 714 fi
1265 schoenebeck 738 AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
1266 schoenebeck 714
1267     if test "$config_unsigned_triang_algo" = "benchmark"; then
1268     echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
1269 persson 2365 AC_LANG_PUSH([C++])
1270     AC_RUN_IFELSE([AC_LANG_SOURCE([[
1271 schoenebeck 714 #define SIGNED 0
1272     #define SILENT 1
1273 schoenebeck 738 #include "${srcdir}/benchmarks/triang.cpp"
1274 persson 2365 ]])],
1275 schoenebeck 714 triang_unsigned=0,
1276     triang_unsigned=$?,
1277     triang_unsigned=0
1278     )
1279 persson 2365 AC_LANG_POP([C++])
1280 schoenebeck 714 if test "$triang_unsigned" = "2"; then
1281     config_unsigned_triang_algo="intmath"
1282     echo "integer math"
1283     elif test "$triang_unsigned" = "3"; then
1284     config_unsigned_triang_algo="diharmonic"
1285     echo "di harmonics"
1286 senkov 720 elif test "$triang_unsigned" = "5"; then
1287 schoenebeck 726 config_unsigned_triang_algo="intmathabs"
1288 senkov 720 echo "integer math using abs()"
1289 schoenebeck 714 else
1290     echo "Benchmark of unsigned triangular wave algorithms failed!"
1291     echo "Maybe you are doing cross compilation? In that case you have to select"
1292     echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
1293     echo "Call './configure --help' for further information or read configure.in."
1294     exit -1;
1295     fi
1296 schoenebeck 1165 else
1297     case "$config_unsigned_triang_algo" in
1298     intmath)
1299     triang_unsigned=2 ;;
1300     diharmonic)
1301     triang_unsigned=3 ;;
1302     intmathabs)
1303     triang_unsigned=5 ;;
1304     esac
1305 schoenebeck 714 fi
1306 schoenebeck 738 AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
1307 schoenebeck 714
1308    
1309     ###########################################################################
1310 schoenebeck 554 # Create Build Files
1311    
1312 persson 2365 AC_CONFIG_HEADERS([config.h])
1313     AM_INIT_AUTOMAKE
1314 schoenebeck 9
1315 persson 2365 AC_LANG([C++])
1316 persson 497
1317     # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like
1318     # this, the dlfcn.h check in am_prog_libtool may fail.
1319     AC_CHECK_HEADER(stdlib.h)
1320    
1321 persson 2365 AC_CONFIG_FILES([\
1322 schoenebeck 654 Makefile \
1323     man/Makefile \
1324     man/linuxsampler.1 \
1325 schoenebeck 2515 man/lscp.1 \
1326 schoenebeck 654 src/Makefile \
1327 iliev 1161 src/db/Makefile \
1328 schoenebeck 654 src/network/Makefile \
1329     src/engines/Makefile \
1330     src/engines/gig/Makefile \
1331 iliev 2012 src/engines/sf2/Makefile \
1332     src/engines/sfz/Makefile \
1333 schoenebeck 654 src/engines/common/Makefile \
1334 schoenebeck 1722 src/effects/Makefile \
1335 schoenebeck 1321 src/common/Makefile \
1336 schoenebeck 654 src/testcases/Makefile \
1337     src/drivers/Makefile \
1338     src/drivers/audio/Makefile \
1339     src/drivers/midi/Makefile \
1340 schoenebeck 1375 src/plugins/Makefile \
1341 persson 1777 src/hostplugins/Makefile \
1342     src/hostplugins/dssi/Makefile \
1343     src/hostplugins/lv2/Makefile \
1344 persson 2360 src/hostplugins/lv2/manifest.ttl \
1345 persson 1777 src/hostplugins/vst/Makefile \
1346 iliev 1846 src/hostplugins/au/Makefile \
1347 schoenebeck 2515 src/shell/Makefile \
1348 schoenebeck 654 linuxsampler.spec \
1349     debian/Makefile \
1350     Artwork/Makefile \
1351     scripts/Makefile \
1352     osx/Makefile \
1353 schoenebeck 1175 osx/linuxsampler.xcodeproj/Makefile \
1354 schoenebeck 654 Documentation/Makefile \
1355     Documentation/Engines/Makefile \
1356     Documentation/Engines/gig/Makefile \
1357 schoenebeck 697 linuxsampler.pc \
1358     Doxyfile \
1359 persson 2365 ])
1360     AC_OUTPUT
1361 schoenebeck 554
1362 schoenebeck 1212 # resolve all nested variables in '${config_plugin_dir}'
1363     # (merely for providing a human readable summary below)
1364     while test $config_plugin_dir != `eval echo ${config_plugin_dir}` ; do
1365     config_plugin_dir=`eval echo ${config_plugin_dir}`
1366     done
1367 schoenebeck 554
1368 schoenebeck 1212
1369 schoenebeck 554 ###########################################################################
1370     # Output All Configuration Options
1371    
1372     echo ""
1373     echo "#####################################################################"
1374     echo "# LinuxSampler Configuration #"
1375     echo "#-------------------------------------------------------------------#"
1376 persson 2365 echo "# Release Version: ${VERSION}"
1377 schoenebeck 1876 echo "# LSCP Version: ${LSCP_RELEASE_MAJOR}.${LSCP_RELEASE_MINOR}"
1378     echo "#-------------------------------------------------------------------"
1379 schoenebeck 617 echo "# Assembly Optimizations: ${config_asm}"
1380 schoenebeck 554 echo "# Development Mode: ${config_dev_mode}"
1381     echo "# Debug Level: ${config_debug_level}"
1382     echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
1383     echo "# Preload Samples: ${config_preload_samples}"
1384     echo "# Maximum Pitch: ${config_max_pitch} (octaves)"
1385     echo "# Maximum Events: ${config_max_events}"
1386     echo "# Envelope Bottom Level: ${config_eg_bottom} (linear)"
1387     echo "# Envelope Minimum Release Time: ${config_eg_min_release_time} s"
1388     echo "# Streams to be refilled per Disk Thread Cycle: ${config_refill_streams}"
1389     echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
1390     echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
1391     echo "# Stream Size: ${config_stream_size}"
1392 schoenebeck 1800 echo "# Default Maximum Disk Streams: ${config_max_streams}"
1393     echo "# Default Maximum Voices: ${config_max_voices}"
1394 schoenebeck 738 echo "# Default Subfragment Size: ${config_subfragment_size}"
1395 schoenebeck 1005 echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}"
1396 schoenebeck 563 echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
1397 schoenebeck 714 echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
1398     echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
1399 schoenebeck 554 echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
1400 schoenebeck 829 echo "# Min. Portamento Time: ${config_portamento_time_min} s"
1401     echo "# Max. Portamento Time: ${config_portamento_time_max} s"
1402     echo "# Default Portamento Time: ${config_portamento_time_default} s"
1403 schoenebeck 554 echo "# Force Filter Usage: ${config_force_filter}"
1404     echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
1405     echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
1406     echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
1407     echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
1408     echo "# Override Filter Type: ${config_override_filter_type}"
1409 schoenebeck 563 echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
1410 iliev 716 echo "# Process Muted Channels: ${config_process_muted_channels}"
1411 schoenebeck 849 echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}"
1412 schoenebeck 1762 echo "# Apply global volume SysEx by MIDI port: ${config_master_volume_sysex_by_port}"
1413 persson 830 echo "# Interpolate Volume: ${config_interpolate_volume}"
1414 schoenebeck 1364 echo "# Instruments database support: ${config_instruments_db}"
1415     if test "$config_instruments_db" = "yes"; then
1416     echo "# Instruments DB default location: ${config_default_instruments_db_file}"
1417     fi
1418 schoenebeck 1212 echo "# Plugin Path: ${config_plugin_dir}"
1419 schoenebeck 1876 echo "#-------------------------------------------------------------------"
1420     echo "# MIDI Input Drivers:"
1421     echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack_midi}, CoreMIDI: ${config_have_coremidi}, MME: ${config_have_mme}, MidiShare: ${config_have_midishare}"
1422     echo "#-------------------------------------------------------------------"
1423     echo "# Audio Output Drivers:"
1424     echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack}, ARTS: ${config_have_arts}, CoreAudio: ${config_have_coreaudio}, ASIO: ${config_have_asio}"
1425     echo "#-------------------------------------------------------------------"
1426 iliev 2012 echo "# Sampler Engines:"
1427     echo "# GIG: yes, SF2: ${config_have_sf2}, SFZ: yes"
1428     echo "#-------------------------------------------------------------------"
1429 schoenebeck 2124 echo "# Effect plugin systems for internal effects:"
1430     echo "# LADSPA: yes"
1431     echo "#-------------------------------------------------------------------"
1432 schoenebeck 1876 echo "# Building sampler as plugin for following host standards:"
1433     echo "# DSSI: ${config_have_dssi}, LV2: ${config_have_lv2}, VST: ${config_have_vst}, AU: ${config_have_au}"
1434 schoenebeck 554 echo "#-------------------------------------------------------------------#"
1435     echo "# Read './configure --help' or file 'configure.in' for details. #"
1436     echo "#####################################################################"
1437     echo ""
1438     echo "Good. Now type 'make' to compile, followed by 'make install' as root."
1439     echo ""

  ViewVC Help
Powered by ViewVC