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

Legend:
Removed from v.379  
changed lines
  Added in v.2515

  ViewVC Help
Powered by ViewVC