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

Annotation of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1741 - (hide annotations) (download)
Wed May 28 03:44:46 2008 UTC (15 years, 9 months ago) by schoenebeck
Original Path: linuxsampler/trunk/configure.in
File size: 50032 byte(s)
* configure fix for libtool 2.2
  (patch by Alexis Ballier)

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

  ViewVC Help
Powered by ViewVC