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

Annotation of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2197 - (hide annotations) (download)
Sat Jul 2 09:55:42 2011 UTC (12 years, 8 months ago) by persson
Original Path: linuxsampler/trunk/configure.in
File size: 57524 byte(s)
* AU: changed number of output channels from one stereo to 16 stereo
* VST: made it possible to build the VST plugin for Mac
* AU: link AU plugin dynamically if --disable-shared isn't specified
* minor Makefile fix for building lscpparser when build and source
  directories are separate

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

  ViewVC Help
Powered by ViewVC