/[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 554 by schoenebeck, Thu May 19 19:25:14 2005 UTC linuxsampler/trunk/configure.ac revision 2516 by schoenebeck, Thu Feb 6 21:11:23 2014 UTC
# Line 1  Line 1 
1  AC_INIT(configure.in)  #------------------------------------------------------------------------------------
2  AC_C_BIGENDIAN  # LinuxSampler's / liblinuxsampler's "official" release version:
3  AC_CANONICAL_SYSTEM  
4    m4_define(linuxsampler_release_major, 1)
5    m4_define(linuxsampler_release_minor, 0)
6    m4_define(linuxsampler_release_build, 0.svn29)
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  AC_SUBST(target)  LSCP_RELEASE_MAJOR=1
38  AC_SUBST(target_alias)  LSCP_RELEASE_MINOR=6
39  AC_SUBST(target_cpu)  
40  AC_SUBST(target_os)  AC_DEFINE_UNQUOTED(LSCP_RELEASE_MAJOR, ${LSCP_RELEASE_MAJOR}, [LSCP spec major version this release complies with.])
41  AC_SUBST(target_vendor)  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
54    AC_CANONICAL_HOST
55    
56    PKG_PROG_PKG_CONFIG
57    
58  ###########################################################################  ###########################################################################
59  # General Checks  # General Checks
60    
61    AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
62    
63  AC_MSG_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 24  esac Line 72  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  # determine the right gcc switch for CPU specific optimizations
75    # (only if the user did not provide one)
76  CXX_CPU_SWITCH=  CXX_CPU_SWITCH=
77  if test "$def_arch_x86" = 1; then  if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then
78    CXX_CPU_SWITCH="-march=$target_cpu"    if test "$def_arch_x86" = 1 -a "$host_cpu" != "x86_64"; then
79  elif test "$target_cpu" = "powerpc"; then      CXX_CPU_SWITCH="-march=$host_cpu"
80    CXX_CPU_SWITCH="-arch=$target_cpu"    elif test "$target_cpu" = "ppc"; then
81        CXX_CPU_SWITCH="-arch=$host_cpu"
82      fi
83  fi  fi
84  AC_SUBST([CXX_CPU_SWITCH])  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 47  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  echo -n "checking Alsa version... "  if test $have_alsa = "1"; then
274  AC_LANG_SAVE      config_have_alsa="yes"
275  AC_LANG_C  fi
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)  
 #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR  
 #endif  
 exit(SND_LIB_MAJOR);  
 }  
 ],  
 alsa_major=0,  
 alsa_major=$?,  
 alsa_major=0  
 )  
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)  
 #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR  
 #endif  
 exit(SND_LIB_MINOR);  
 }  
 ],  
 alsa_minor=0,  
 alsa_minor=$?,  
 alsa_minor=0  
 )  
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)  
 #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR  
 #endif  
 exit(SND_LIB_SUBMINOR);  
 }  
 ],  
 alsa_subminor=0,  
 alsa_subminor=$?,  
 alsa_subminor=0  
 )  
 AC_LANG_RESTORE  
 echo "$alsa_major.$alsa_minor.$alsa_subminor";  
 AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])  
 AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])  
 AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])  
276    
277  # JACK  # JACK
278  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)  AC_ARG_ENABLE(jack-driver,
279  AC_SUBST(JACK_LIBS)    [  --disable-jack-driver
280  AC_SUBST(JACK_CFLAGS)                            Disable support for the Jack Audio Connection Kit
281  if test $HAVE_JACK = false; then                            (JACK).],
282      HAVE_JACK=0;    [config_jack_driver="$enableval"],
283  else    [config_jack_driver="yes"]
284      HAVE_JACK=1  )
285      have_audio_output_driver="true";  have_jack=0
286      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)  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    # JACK MIDI
309    have_jack_midi=0
310    if test $have_jack = "1"; then
311        linuxsampler_save_CFLAGS=$CFLAGS
312        linuxsampler_save_LIBS=$LIBS
313        CFLAGS="$JACK_CFLAGS $CFLAGS"
314        LIBS="$JACK_LIBS $LIBS"
315        AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0)
316        if test $have_jack_midi = "1"; then
317            AC_CHECK_FUNCS(jack_midi_get_event_count)
318            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                      [Define to 1 if you have the old jack midi functions that need an nframes argument.])])
322            have_midi_input_driver="true"
323        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    have_arts=0
344    if test "$config_arts_driver" = "yes"; then
345        m4_ifdef([m4_include(m4/arts.m4)],,
346                 [sinclude([m4/arts.m4])])
347        AM_PATH_ARTS(0.9.5, have_arts=1, have_arts=0)
348        if test "$have_arts" = "1"; then
349            have_audio_output_driver="true"
350        fi
351    else
352        echo "ARTS support disabled by configure script parameter"
353    fi
354    AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1")
355    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_SUBST(config_asiosdk_dir)
370    
371    AC_ARG_ENABLE(asio-driver,
372      [  --disable-asio-driver
373                              Disable support for the Windows ASIO driver.],
374      [config_asio_driver="$enableval"],
375      [config_asio_driver="yes"]
376    )
377    have_asio=0
378    ASIOSDK_BASEDIR=
379    if test "$config_asio_driver" = "yes"; then
380        asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h
381        echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...."
382        if test -e $asiosdk_headerfile ; then
383            echo yes
384            have_asio=1
385            ASIOSDK_BASEDIR="$config_asiosdk_dir"
386        else
387            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    # CoreMIDI (OS X)
435    AC_ARG_ENABLE(coremidi-driver,
436      [  --disable-coremidi-driver
437                              Disable support for the Apple CoreMIDI system.],
438      [config_coremidi_driver="$enableval"],
439      [config_coremidi_driver="yes"]
440    )
441    have_coremidi=0
442    if test "$config_coremidi_driver" = "yes"; then
443        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
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  fi
561  AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)  AC_SUBST(MAC_PLUGIN_INSTALL_DIR)
562  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])  
563    # have we found at least one MIDI input and one audio output driver ?
564    if test "$have_midi_input_driver" = "false"; then
565        echo "No supported MIDI input system found!"
566        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;
571    fi
572    if test "$have_audio_output_driver" = "false"; then
573        echo "No supported audio output system found!"
574        echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output"
575        echo "driver at the moment!"
576        exit -1;
577    fi
578    
579    
580    
581    ###########################################################################
582    # Checks for various DLL libraries
583    
584  # Check presence of libgig  # Check presence of libgig
585  libgig_version="2.0.0"  libgig_version="3.3.0"
586  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
587  if test "$HAVE_GIG" = "false"; then  if test "$HAVE_GIG" = "false"; then
588      echo "Required libgig version not found!"      echo "Required libgig version not found!"
589      echo "You need to have libgig version ${libgig_version} installed!"      echo "You need to have libgig version ${libgig_version} installed!"
590      exit -1;      exit -1;
591    else
592        echo "yes, found libgig $libgig_version"
593  fi  fi
594  AC_SUBST(GIG_CFLAGS)  AC_SUBST(GIG_CFLAGS)
595  AC_SUBST(GIG_LIBS)  AC_SUBST(GIG_LIBS)
596    
597  # SQLITE3  # SF2 Engine (requires libgig)
598  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)  AC_ARG_ENABLE(sf2-engine,
599  AC_SUBST(SQLITE3_LIBS)    [  --disable-sf2-engine
600  AC_SUBST(SQLITE3_CFLAGS)                            Disable compilation of the SF2 engine.
601  if test $HAVE_SQLITE3 = false; then                            You need to have libgig installed.],
602      HAVE_SQLITE3=0;    [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  else
609      HAVE_SQLITE3=1      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  fi
 AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)  
 AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])  
617    
618  if test "$have_midi_input_driver" = "false"; then  # Check presence of libsndfile
619      echo "No supported MIDI input system found!"  libsndfile_version="1.0"
620      echo "Sorry, LinuxSampler only supports ALSA as MIDI input driver at the moment!"  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;      exit -1;
625    else
626        echo "yes, found libsndfile $libsndfile_version"
627  fi  fi
628  if test "$have_audio_output_driver" = "false"; then  AC_SUBST(SNDFILE_CFLAGS)
629      echo "No supported audio output system found!"  AC_SUBST(SNDFILE_LIBS)
630      echo "Sorry, LinuxSampler only supports ALSA and JACK as audio output driver at the moment!"  
631      exit -1;  # 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  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  ###########################################################################  ###########################################################################
# Line 190  fi Line 680  fi
680    
681  # TODO: should we use AC_ARG_VAR(variable, description) instead?  # 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,  AC_ARG_ENABLE(dev-mode,
699    [  --enable-dev-mode    [  --enable-dev-mode
700                            Enable development mode (default=no). In that mode                            Enable development mode (default=off). In that mode
701                            we do some extra sanity checks here and there.                            we do some extra sanity checks here and there.
702                            This helps to spot possible problems, but reduces                            This helps to spot possible problems, but reduces
703                            efficiency a bit],                            efficiency a bit],
704    [config_dev_mode="yes"],    [config_dev_mode="$enableval"],
705    [config_dev_mode="no"]    [config_dev_mode="no"]
706  )  )
707  if test "$config_dev_mode" = "yes"; then  if test "$config_dev_mode" = "yes"; then
# Line 224  AC_ARG_ENABLE(rt-exceptions, Line 729  AC_ARG_ENABLE(rt-exceptions,
729                            context as well. Otherwise if disabled                            context as well. Otherwise if disabled
730                            segmentation faults will be forced by the                            segmentation faults will be forced by the
731                            application on critical errors.],                            application on critical errors.],
732    [config_rt_exceptions="yes"],    [config_rt_exceptions="$enableval"],
733    [config_rt_exceptions="no"]    [config_rt_exceptions="no"]
734  )  )
735  if test "$config_rt_exceptions" = "yes"; then  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.])    AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.])
737  fi  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,  AC_ARG_ENABLE(preload-samples,
752    [  --enable-preload-samples    [  --enable-preload-samples
753                            Due to seeking and latency issues with hard drives                            Due to seeking and latency issues with hard drives
# Line 336  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_ Line 853  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_
853    
854  AC_ARG_ENABLE(max-streams,  AC_ARG_ENABLE(max-streams,
855    [  --enable-max-streams    [  --enable-max-streams
856                            Maximum amount of disk streams (default=90). This                            Initial maximum amount of disk streams
857                            value should always be higher than the maximum                            (default=90). This value can be changed at
858                            amount of voices.],                            runtime. It should always be higher than the
859                              maximum amount of voices.],
860    [config_max_streams="${enableval}"],    [config_max_streams="${enableval}"],
861    [config_max_streams="90"]    [config_max_streams="90"]
862  )  )
863  AC_DEFINE_UNQUOTED(CONFIG_MAX_STREAMS, $config_max_streams, [Define max. streams.])  AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_STREAMS, $config_max_streams, [Define initial max. streams.])
864    
865  AC_ARG_ENABLE(max-voices,  AC_ARG_ENABLE(max-voices,
866    [  --enable-max-voices    [  --enable-max-voices
867                            Maximum amount of voices (default=64). This value                            Initial maximum amount of voices (default=64).
868                            should always be lower than the maximum amount of                            This value can be changed at runtime. It should
869                            disk streams.],                            always be lower than the maximum amount of disk
870                              streams.],
871    [config_max_voices="${enableval}"],    [config_max_voices="${enableval}"],
872    [config_max_voices="64"]    [config_max_voices="64"]
873  )  )
874  AC_DEFINE_UNQUOTED(CONFIG_MAX_VOICES, $config_max_voices, [Define max. voices.])  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,  AC_ARG_ENABLE(voice-steal-algo,
903    [  --enable-voice-steal-algo    [  --enable-voice-steal-algo
# Line 360  AC_ARG_ENABLE(voice-steal-algo, Line 905  AC_ARG_ENABLE(voice-steal-algo,
905                            available options:                            available options:
906                              none:                              none:
907                                Disable voice stealing completely.                                Disable voice stealing completely.
908                              oldestvoiceonkey:                              oldestvoiceonkey (default):
909                                Try to kill a voice on the same key first,                                Try to kill a voice on the same key first,
910                                if no success, proceed with the oldest key.                                if no success, proceed with the oldest key.
911                              oldestkey (default):                              oldestkey:
912                                Try to kill a voice from the oldest active                                Try to kill a voice from the oldest active
913                                key.],                                key.],
914    [ if test ! "(" "${enableval}" = "none" \    [ if test ! "(" "${enableval}" = "none" \
# Line 372  AC_ARG_ENABLE(voice-steal-algo, Line 917  AC_ARG_ENABLE(voice-steal-algo,
917        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
918      else      else
919        config_voice_steal_algo="${enableval}"        config_voice_steal_algo="${enableval}"
920      fi        fi
921    ],    ],
922    [config_voice_steal_algo="oldestkey"]    [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.])  AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
925    
# Line 387  AC_ARG_ENABLE(sysex-buffer-size, Line 932  AC_ARG_ENABLE(sysex-buffer-size,
932  )  )
933  AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])  AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
934    
 AC_ARG_ENABLE(filter-update-steps,  
   [  --enable-filter-update-steps  
                           Amount of sample points after which filter  
                           parameters (cutoff, resonance) are going to be  
                           updated (default=64). Higher value means less CPU  
                           load, but also worse parameter resolution, this  
                           value will be aligned to a power of two.],  
   [config_filter_update_steps="${enableval}"],  
   [config_filter_update_steps="64"]  
 )  
 AC_DEFINE_UNQUOTED(CONFIG_FILTER_UPDATE_STEPS, $config_filter_update_steps, [Define amount of steps to refresh filter coefficients.])  
   
935  AC_ARG_ENABLE(force-filter,  AC_ARG_ENABLE(force-filter,
936    [  --enable-force-filter    [  --enable-force-filter
937                            If enabled will force filter to be used even if                            If enabled will force filter to be used even if
938                            no usage was define in instrument patch files.                            no usage was define in instrument patch files.
939                            (default=no).],                            (default=no).],
940    [config_force_filter="yes"],    [config_force_filter="$enableval"],
941    [config_force_filter="no"]    [config_force_filter="no"]
942  )  )
943  if test "$config_force_filter" = "yes"; then  if test "$config_force_filter" = "yes"; then
# Line 479  AC_ARG_ENABLE(override-filter-type, Line 1012  AC_ARG_ENABLE(override-filter-type,
1012         config_override_filter_type="::gig::vcf_type_lowpassturbo"         config_override_filter_type="::gig::vcf_type_lowpassturbo"
1013      elif test ! "${enableval}" = "no"; then      elif test ! "${enableval}" = "no"; then
1014         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
1015      fi        fi
1016    ],    ],
1017    [config_override_filter_type="no"]    [config_override_filter_type="no"]
1018  )  )
# Line 487  if test ! "$config_override_filter_type" Line 1020  if test ! "$config_override_filter_type"
1020    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
1021  fi  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  # Create Build Files
1311    
1312  AM_CONFIG_HEADER(config.h)  AC_CONFIG_HEADERS([config.h])
1313  AM_INIT_AUTOMAKE(linuxsampler, 0.3.1)  AM_INIT_AUTOMAKE
1314    
1315  AC_LANG_CPLUSPLUS  AC_LANG([C++])
 AC_PROG_CXX  
1316    
1317  # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like  # 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.  # this, the dlfcn.h check in am_prog_libtool may fail.
1319  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
1320    
1321  AM_PROG_LIBTOOL  AC_CONFIG_FILES([\
1322        Makefile \
1323  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)      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  ###########################################################################  ###########################################################################
# Line 512  echo "" Line 1373  echo ""
1373  echo "#####################################################################"  echo "#####################################################################"
1374  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
1375  echo "#-------------------------------------------------------------------#"  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}"  echo "# Development Mode: ${config_dev_mode}"
1381  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
1382  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
# Line 524  echo "# Streams to be refilled per Disk Line 1389  echo "# Streams to be refilled per Disk
1389  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
1390  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
1391  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
1392  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Default Maximum Disk Streams: ${config_max_streams}"
1393  echo "# Maximum Voices: ${config_max_voices}"  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"  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
1400  echo "# Filter Update Steps: ${config_filter_update_steps}"  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}"  echo "# Force Filter Usage: ${config_force_filter}"
1404  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
1405  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
1406  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
1407  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
1408  echo "# Override Filter Type: ${config_override_filter_type}"  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 "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1435  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
1436  echo "#####################################################################"  echo "#####################################################################"

Legend:
Removed from v.554  
changed lines
  Added in v.2516

  ViewVC Help
Powered by ViewVC