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

Legend:
Removed from v.18  
changed lines
  Added in v.1895

  ViewVC Help
Powered by ViewVC