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

Annotation of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1651 - (hide annotations) (download)
Sun Jan 27 15:07:11 2008 UTC (16 years, 1 month ago) by persson
Original Path: linuxsampler/trunk/configure.in
File size: 49919 byte(s)
* added JACK MIDI driver

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

  ViewVC Help
Powered by ViewVC