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

Legend:
Removed from v.397  
changed lines
  Added in v.1722

  ViewVC Help
Powered by ViewVC