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

Legend:
Removed from v.411  
changed lines
  Added in v.2463

  ViewVC Help
Powered by ViewVC