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

Diff of /linuxsampler/trunk/configure.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by schoenebeck, Sun Nov 16 19:01:50 2003 UTC revision 1741 by schoenebeck, Wed May 28 03:44:46 2008 UTC
# Line 1  Line 1 
1  AC_INIT(configure.in)  AC_INIT(configure.in)
2    
3    #------------------------------------------------------------------------------------
4    # LinuxSampler's / liblinuxsampler's "official" release version:
5    
6    LINUXSAMPLER_RELEASE_MAJOR=0
7    LINUXSAMPLER_RELEASE_MINOR=5
8    LINUXSAMPLER_RELEASE_BUILD=1.5cvs
9    
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    LIBLINUXSAMPLER_LT_CURRENT=2
28    LIBLINUXSAMPLER_LT_REVISION=0
29    LIBLINUXSAMPLER_LT_AGE=1
30    SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"
31    
32    #------------------------------------------------------------------------------------
33    # the LSCP specification version this LinuSampler release complies with:
34    
35    LSCP_RELEASE_MAJOR=1
36    LSCP_RELEASE_MINOR=4
37    
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    AC_PROG_CXX
42    AM_PROG_LIBTOOL
43    
44    AC_SUBST(SHLIB_VERSION_ARG)
45    AC_SUBST(SHARED_VERSION_INFO)
46    
47  AC_C_BIGENDIAN  AC_C_BIGENDIAN
48  AC_CANONICAL_SYSTEM  AC_CANONICAL_SYSTEM
49    
50  echo -n "Checking whether x86 architecture... "  AC_SUBST(target)
51    AC_SUBST(target_alias)
52    AC_SUBST(target_cpu)
53    AC_SUBST(target_os)
54    AC_SUBST(target_vendor)
55    
56    PKG_PROG_PKG_CONFIG
57    
58    ###########################################################################
59    # General Checks
60    
61    AC_MSG_CHECKING([whether x86 architecture])
62  def_arch_x86=0  def_arch_x86=0
63  case $target_cpu in  case $target_cpu in
64    "i386" | "i486" | "i586" | "i686" | "i786")    "i386" | "i486" | "i586" | "i686" | "i786")
# Line 13  case $target_cpu in Line 69  case $target_cpu in
69  esac  esac
70  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x86,[Define to 1 if you build for x86 architecture.])  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x86,[Define to 1 if you build for x86 architecture.])
71    
72    # determine the right gcc switch for CPU specific optimizations
73    # (only if the user did not provide one)
74    CXX_CPU_SWITCH=
75    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      elif test "$target_cpu" = "ppc"; then
79        CXX_CPU_SWITCH="-arch=$target_cpu"
80      fi
81    fi
82    AC_SUBST([CXX_CPU_SWITCH])
83    
84    # 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    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    if test "$have_unix98" = "no" -a "have_windows" = "0"; then
115        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    # check for <features.h>
125    AC_CHECK_HEADERS(features.h)
126    
127    # 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    
136    # 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    ###########################################################################
168    # 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    
171    have_midi_input_driver="false"
172    have_audio_output_driver="false"
173    
174    # ALSA
175    AC_ARG_ENABLE(alsa-driver,
176      [  --disable-alsa-driver
177                              Disable support for the Advanced Linux Sound
178                              Architecture (ALSA).],
179      [config_alsa_driver="$enableval"],
180      [config_alsa_driver="yes"]
181    )
182    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    fi
251    AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
252    AC_DEFINE_UNQUOTED(HAVE_ALSA,$have_alsa,[Define to 1 if you have ALSA installed.])
253    
254    # JACK
255    AC_ARG_ENABLE(jack-driver,
256      [  --disable-jack-driver
257                              Disable support for the Jack Audio Connection Kit
258                              (JACK).],
259      [config_jack_driver="$enableval"],
260      [config_jack_driver="yes"]
261    )
262    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    else
272        echo "JACK support disabled by configure script parameter"
273    fi
274    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    
277    # JACK MIDI
278    have_jack_midi=0
279    if test $have_jack = "1"; then
280        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    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    # ARTS
301    AC_ARG_ENABLE(arts-driver,
302      [  --disable-arts-driver
303                              Disable support for the Analogue Realtime System
304                              (aRts).],
305      [config_arts_driver="$enableval"],
306      [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    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    # 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    # MidiShare (Linux, OS X, Windows)
362    AC_ARG_ENABLE(midishare-driver,
363      [  --disable-midishare-driver
364                              Disable support for the MidiShare system.],
365      [config_midishare_driver="$enableval"],
366      [config_midishare_driver="yes"]
367    )
368    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    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    AC_ARG_ENABLE(coremidi-driver,
389      [  --disable-coremidi-driver
390                              Disable support for the Apple CoreMIDI system.],
391      [config_coremidi_driver="$enableval"],
392      [config_coremidi_driver="yes"]
393    )
394    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    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    # 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    # 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        echo "ALSA, JACK, MIDIShare, CoreMIDI, MME."
436        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        echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output"
443        echo "driver at the moment!"
444        exit -1;
445    fi
446    
447    
448    
449    ###########################################################################
450    # Checks for various DLL libraries
451    
452    # Check presence of libgig
453    libgig_version="3.2.1"
454    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    else
460        echo "yes, found libgig $libgig_version"
461    fi
462    AC_SUBST(GIG_CFLAGS)
463    AC_SUBST(GIG_LIBS)
464    
465    # 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    else
492        echo "Instruments DB feature disabled by configure script parameter"
493    fi
494    AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
495    AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you want the instruments DB feature and have SQLITE3 installed.])
496    
497    
498    
499    ###########################################################################
500    # Handle Configuration Options
501    
502    # TODO: should we use AC_ARG_VAR(variable, description) instead?
503    
504    AC_ARG_ENABLE(asm,
505      [  --disable-asm
506                              Enable hand-crafted assembly optimizations
507                              (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      [config_asm="$enableval"],
513      [config_asm="yes"]
514    )
515    if test "$config_asm" = "yes"; then
516      AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable asm optimizations.])
517    fi
518    
519    AC_ARG_ENABLE(dev-mode,
520      [  --enable-dev-mode
521                              Enable development mode (default=off). In that mode
522                              we do some extra sanity checks here and there.
523                              This helps to spot possible problems, but reduces
524                              efficiency a bit],
525      [config_dev_mode="$enableval"],
526      [config_dev_mode="no"]
527    )
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      [config_rt_exceptions="$enableval"],
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    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    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    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    AC_ARG_ENABLE(global-attenuation-default,
710      [  --enable-global-attenuation-default
711                              To prevent clipping all samples will be lowered
712                              in amplitude by this given default factor (can
713                              be overridden at runtime).
714                              (default=0.35)],
715      [config_global_attenuation_default="${enableval}"],
716      [config_global_attenuation_default="0.35"]
717    )
718    AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION_DEFAULT, $config_global_attenuation_default, [Define default global volume attenuation (as floating point factor).])
719    
720    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                                oldestvoiceonkey (default):
727                                  Try to kill a voice on the same key first,
728                                  if no success, proceed with the oldest key.
729                                oldestkey:
730                                  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        fi
739      ],
740      [config_voice_steal_algo="oldestvoiceonkey"]
741    )
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      [config_force_filter="$enableval"],
759      [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        fi
834      ],
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    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      [config_assert_gs_sysex_checksum="$enableval"],
849      [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    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    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                                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                                  an extra integer multiply instruction.
895                                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                  -o "${enableval}" = "intmathabs" \
907                  -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    
916    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                                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                                  an extra integer multiply instruction.
929                                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                  -o "${enableval}" = "intmathabs" \
941                  -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    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      [config_process_muted_channels="$enableval"],
960      [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    
966    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      [config_process_all_notes_off="$enableval"],
974      [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    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      [config_interpolate_volume="$enableval"],
988      [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    
994    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    
1007    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    AC_SUBST(config_default_instruments_db_file)
1023    
1024    
1025    ###########################################################################
1026    # 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                #include "${srcdir}/benchmarks/triang.cpp"
1037            ],
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        elif test "$triang_signed" = "5"; then
1049            config_signed_triang_algo="intmathabs"
1050            echo "integer math using abs()"
1051        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    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    fi
1068    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
1069    
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                #include "${srcdir}/benchmarks/triang.cpp"
1077            ],
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        elif test "$triang_unsigned" = "5"; then
1089            config_unsigned_triang_algo="intmathabs"
1090            echo "integer math using abs()"
1091        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    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    fi
1108    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
1109    
1110    AC_LANG_RESTORE
1111    
1112    
1113    ###########################################################################
1114    # Create Build Files
1115    
1116  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
1117  AM_INIT_AUTOMAKE(linuxsampler, 0.1)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
1118    
1119  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
 AC_PROG_CXX  
 AM_PROG_LIBTOOL  
1120    
1121  AC_OUTPUT(Makefile src/Makefile)  # 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    # 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    AC_OUTPUT( \
1133        Makefile \
1134        man/Makefile \
1135        man/linuxsampler.1 \
1136        src/Makefile \
1137        src/db/Makefile \
1138        src/network/Makefile \
1139        src/engines/Makefile \
1140        src/engines/gig/Makefile \
1141        src/engines/common/Makefile \
1142        src/effects/Makefile \
1143        src/common/Makefile \
1144        src/testcases/Makefile \
1145        src/drivers/Makefile \
1146        src/drivers/audio/Makefile \
1147        src/drivers/midi/Makefile \
1148        src/plugins/Makefile \
1149        linuxsampler.spec \
1150        debian/Makefile \
1151        Artwork/Makefile \
1152        scripts/Makefile \
1153        osx/Makefile \
1154        osx/linuxsampler.xcodeproj/Makefile \
1155        Documentation/Makefile \
1156        Documentation/Engines/Makefile \
1157        Documentation/Engines/gig/Makefile \
1158        linuxsampler.pc \
1159        Doxyfile \
1160    )
1161    
1162    # 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    
1168    
1169    ###########################################################################
1170    # Output All Configuration Options
1171    
1172    echo ""
1173    echo "#####################################################################"
1174    echo "# LinuxSampler Configuration                                        #"
1175    echo "#-------------------------------------------------------------------#"
1176    echo "# Assembly Optimizations: ${config_asm}"
1177    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    echo "# Default Subfragment Size: ${config_subfragment_size}"
1192    echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}"
1193    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
1194    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
1195    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
1196    echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
1197    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    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    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
1207    echo "# Process Muted Channels: ${config_process_muted_channels}"
1208    echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}"
1209    echo "# Interpolate Volume: ${config_interpolate_volume}"
1210    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    echo "# Plugin Path: ${config_plugin_dir}"
1215    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 ""

Legend:
Removed from v.12  
changed lines
  Added in v.1741

  ViewVC Help
Powered by ViewVC