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

Diff of /linuxsampler/trunk/configure.in

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

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

Legend:
Removed from v.536  
changed lines
  Added in v.1800

  ViewVC Help
Powered by ViewVC