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

Diff of /linuxsampler/trunk/configure.ac

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

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

Legend:
Removed from v.80  
changed lines
  Added in v.2879

  ViewVC Help
Powered by ViewVC