/[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 554 by schoenebeck, Thu May 19 19:25:14 2005 UTC revision 1895 by persson, Sun May 3 12:15:40 2009 UTC
# Line 1  Line 1 
1  AC_INIT(configure.in)  AC_INIT(configure.in)
 AC_C_BIGENDIAN  
 AC_CANONICAL_SYSTEM  
2    
3  AC_SUBST(target)  #------------------------------------------------------------------------------------
4  AC_SUBST(target_alias)  # LinuxSampler's / liblinuxsampler's "official" release version:
5  AC_SUBST(target_cpu)  
6  AC_SUBST(target_os)  LINUXSAMPLER_RELEASE_MAJOR=0
7  AC_SUBST(target_vendor)  LINUXSAMPLER_RELEASE_MINOR=5
8    LINUXSAMPLER_RELEASE_BUILD=1.12cvs
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
49    AC_CANONICAL_HOST
50    
51    PKG_PROG_PKG_CONFIG
52    
53  ###########################################################################  ###########################################################################
54  # General Checks  # General Checks
55    
56  AC_MSG_CHECKING([whether x86 architecture])  AC_MSG_CHECKING([whether x86 architecture])
57  def_arch_x86=0  def_arch_x86=0
58  case $target_cpu in  case $host_cpu in
59    "i386" | "i486" | "i586" | "i686" | "i786")    "i386" | "i486" | "i586" | "i686" | "i786" | "x86_64")
60      echo "yes"      echo "yes"
61      def_arch_x86=1;;      def_arch_x86=1;;
62    *)    *)
# Line 24  esac Line 65  esac
65  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.])
66    
67  # determine the right gcc switch for CPU specific optimizations  # determine the right gcc switch for CPU specific optimizations
68    # (only if the user did not provide one)
69  CXX_CPU_SWITCH=  CXX_CPU_SWITCH=
70  if test "$def_arch_x86" = 1; then  if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then
71    CXX_CPU_SWITCH="-march=$target_cpu"    if test "$def_arch_x86" = 1 -a "$host_cpu" != "x86_64"; then
72  elif test "$target_cpu" = "powerpc"; then      CXX_CPU_SWITCH="-march=$host_cpu"
73    CXX_CPU_SWITCH="-arch=$target_cpu"    elif test "$target_cpu" = "ppc"; then
74        CXX_CPU_SWITCH="-arch=$host_cpu"
75      fi
76  fi  fi
77  AC_SUBST([CXX_CPU_SWITCH])  AC_SUBST([CXX_CPU_SWITCH])
78    
79    # check if we're on MS Windows
80    AC_CHECK_HEADERS(
81        mmsystem.h,
82        have_windows=1,
83        have_windows=0,
84        [#include <windef.h>]
85    )
86    AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1")
87    
88  AC_MSG_CHECKING([whether UNIX98 compatible])  AC_MSG_CHECKING([whether UNIX98 compatible])
89  AC_LANG_SAVE  AC_LANG_SAVE
90  AC_LANG_C  AC_LANG_C
# Line 54  have_unix98="no" Line 107  have_unix98="no"
107  )  )
108  AC_LANG_RESTORE  AC_LANG_RESTORE
109  AC_MSG_RESULT([$have_unix98])  AC_MSG_RESULT([$have_unix98])
110  if test "$have_unix98" = "no"; then  if test "$have_unix98" = "no" -a "have_windows" = "0"; then
111      if test "x$HAVE_UNIX98" = "x"; then      if test "x$HAVE_UNIX98" = "x"; then
112          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"
113          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 117  if test "$have_unix98" = "no"; then
117      fi      fi
118  fi  fi
119    
120    # check for <features.h>
121    AC_CHECK_HEADERS(features.h)
122    
123    # test for POSIX thread library
124    m4_ifdef([m4_include(m4/pthread.m4)],,
125                 [sinclude([m4/pthread.m4])])
126    ACX_PTHREAD
127    LIBS="$PTHREAD_LIBS $LIBS"
128    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
129    CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
130    CC="$PTHREAD_CC"
131    
132    # check for a bug in NPTL-enabled glibc
133    # (see Gentoo bug report #194076)
134    AC_ARG_ENABLE(nptl-bug-check,
135      [  --disable-nptl-bug-check
136                              Disable check for a bug in certain NPTL-enabled
137                              glibc versions that caused crashs.],
138      [config_check_nptl_bug="$enableval"],
139      [config_check_nptl_bug="yes"]
140    )
141    if test "$config_check_nptl_bug" = "yes"; then
142        m4_ifdef([m4_include(m4/nptl_bug.m4)],,
143                 [sinclude([m4/nptl_bug.m4])])
144        ACX_NPTL_GLIBC_BUG([
145            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
146            echo "You seem to have a buggy PTHREAD library! LinuxSampler would"
147            echo "probably crash due to this. Please report us the system you are"
148            echo "using and/or file a bug report to the bug tracking system of"
149            echo "your distribution."
150            echo "If you have a NPTL-enabled glibc AND it was compiled for TLS as"
151            echo "well, you can try to circumvent this problem for now by setting"
152            echo "the environment variable LD_ASSUME_KERNEL=\"2.4.1\" , which"
153            echo "should cause this test to pass."
154            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
155            AC_MSG_ERROR([possibly NPTL glibc bug detected])
156        ])
157    else
158        echo "NPTL glibc bug check disabled"
159    fi
160    
161    # FIXME: this is actually a dependency of libgig, not of LS directly, why
162    # isn't it hidden by libgig?
163    AC_CHECK_HEADERS(uuid/uuid.h)
164    AC_SEARCH_LIBS(uuid_generate, uuid)
165    
166    
167    
168    ###########################################################################
169  # Checks for available audio and MIDI systems / drivers  # Checks for available audio and MIDI systems / drivers
170  # (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)
171    
172  have_midi_input_driver="false"  have_midi_input_driver="false"
173  have_audio_output_driver="false"  have_audio_output_driver="false"
174    
175  AC_CHECK_HEADER(alsa/asoundlib.h,  # ALSA
176      AC_CHECK_LIB(asound, main,  AC_ARG_ENABLE(alsa-driver,
177                               have_alsa=1    [  --disable-alsa-driver
178                               ,                            Disable support for the Advanced Linux Sound
179                               have_alsa=0                            Architecture (ALSA).],
180                  )    [config_alsa_driver="$enableval"],
181                  ,    [config_alsa_driver="yes"]
182                  have_alsa=0  )
183  )  have_alsa=0
184  if test "$have_alsa" = "1"; then  if test "$config_alsa_driver" = "yes"; then
185      have_midi_input_driver="true"      AC_CHECK_HEADER(alsa/asoundlib.h,
186      have_audio_output_driver="true";          AC_CHECK_LIB(asound, main,
187                                     have_alsa=1
188                                     ,
189                                     have_alsa=0
190                        )
191                        ,
192                        have_alsa=0
193        )
194        if test "$have_alsa" = "1"; then
195            have_midi_input_driver="true"
196            have_audio_output_driver="true";
197        fi
198    
199        echo -n "checking Alsa version... "
200        AC_LANG_SAVE
201        AC_LANG_C
202        AC_TRY_RUN([
203            #include <alsa/asoundlib.h>
204            void main(void) {
205                /* ensure backward compatibility */
206                #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
207                #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
208                #endif
209                exit(SND_LIB_MAJOR);
210            }
211        ],
212        alsa_major=0,
213        alsa_major=$?,
214        alsa_major=0
215        )
216        AC_TRY_RUN([
217            #include <alsa/asoundlib.h>
218            void main(void) {
219                /* ensure backward compatibility */
220                #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
221                #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
222                #endif
223                exit(SND_LIB_MINOR);
224            }
225        ],
226        alsa_minor=0,
227        alsa_minor=$?,
228        alsa_minor=0
229        )
230        AC_TRY_RUN([
231            #include <alsa/asoundlib.h>
232            void main(void) {
233                /* ensure backward compatibility */
234                #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
235                #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
236                #endif
237                exit(SND_LIB_SUBMINOR);
238            }
239        ],
240        alsa_subminor=0,
241        alsa_subminor=$?,
242        alsa_subminor=0
243        )
244        AC_LANG_RESTORE
245        echo "$alsa_major.$alsa_minor.$alsa_subminor";
246        AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])
247        AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])
248        AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])
249    else
250        echo "ALSA support disabled by configure script parameter"
251  fi  fi
252  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
253  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.])
254    config_have_alsa="no"
255  echo -n "checking Alsa version... "  if test $have_alsa = "1"; then
256  AC_LANG_SAVE      config_have_alsa="yes"
257  AC_LANG_C  fi
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)  
 #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR  
 #endif  
 exit(SND_LIB_MAJOR);  
 }  
 ],  
 alsa_major=0,  
 alsa_major=$?,  
 alsa_major=0  
 )  
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)  
 #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR  
 #endif  
 exit(SND_LIB_MINOR);  
 }  
 ],  
 alsa_minor=0,  
 alsa_minor=$?,  
 alsa_minor=0  
 )  
 AC_TRY_RUN([  
 #include <alsa/asoundlib.h>  
 void main(void) {  
 /* ensure backward compatibility */  
 #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)  
 #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR  
 #endif  
 exit(SND_LIB_SUBMINOR);  
 }  
 ],  
 alsa_subminor=0,  
 alsa_subminor=$?,  
 alsa_subminor=0  
 )  
 AC_LANG_RESTORE  
 echo "$alsa_major.$alsa_minor.$alsa_subminor";  
 AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])  
 AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])  
 AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])  
258    
259  # JACK  # JACK
260  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)  AC_ARG_ENABLE(jack-driver,
261  AC_SUBST(JACK_LIBS)    [  --disable-jack-driver
262  AC_SUBST(JACK_CFLAGS)                            Disable support for the Jack Audio Connection Kit
263  if test $HAVE_JACK = false; then                            (JACK).],
264      HAVE_JACK=0;    [config_jack_driver="$enableval"],
265  else    [config_jack_driver="yes"]
266      HAVE_JACK=1  )
267      have_audio_output_driver="true";  have_jack=0
268      AC_CHECK_LIB(jack, jack_client_name_size, [AC_DEFINE(HAVE_JACK_CLIENT_NAME_SIZE, 1, [Define to 1 if you have the `jack_client_name_size' function.])], , $JACK_LIBS)  if test "$config_jack_driver" = "yes"; then
269        PKG_CHECK_MODULES(JACK, jack, have_jack=1, have_jack=0)
270        if test $have_jack = "1"; then
271            AC_SUBST(JACK_LIBS)
272            AC_SUBST(JACK_CFLAGS)
273            linuxsampler_save_LIBS=$LIBS
274            LIBS="$JACK_LIBS $LIBS"
275            AC_CHECK_FUNCS(jack_client_name_size jack_client_open)
276            LIBS=$linuxsampler_save_LIBS
277            have_audio_output_driver="true";
278        fi
279    else
280        echo "JACK support disabled by configure script parameter"
281    fi
282    AM_CONDITIONAL(HAVE_JACK, test $have_jack = "1")
283    AC_DEFINE_UNQUOTED(HAVE_JACK,$have_jack,[Define to 1 if you have JACK installed.])
284    config_have_jack="no"
285    if test $have_jack = "1"; then
286        config_have_jack="yes"
287    fi
288    
289    # JACK MIDI
290    have_jack_midi=0
291    if test $have_jack = "1"; then
292        linuxsampler_save_CFLAGS=$CFLAGS
293        linuxsampler_save_LIBS=$LIBS
294        CFLAGS="$JACK_CFLAGS $CFLAGS"
295        LIBS="$JACK_LIBS $LIBS"
296        AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0)
297        if test $have_jack_midi = "1"; then
298            AC_CHECK_FUNCS(jack_midi_get_event_count)
299            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jack/midiport.h>]], [[
300                jack_midi_clear_buffer(0, 0);
301            ]])], [AC_DEFINE(JACK_MIDI_FUNCS_NEED_NFRAMES, 1,
302                      [Define to 1 if you have the old jack midi functions that need an nframes argument.])])
303            have_midi_input_driver="true"
304        fi
305        CFLAGS=$linuxsampler_save_CFLAGS
306        LIBS=$linuxsampler_save_LIBS
307    fi
308    AM_CONDITIONAL(HAVE_JACK_MIDI, test $have_jack_midi = "1")
309    AC_DEFINE_UNQUOTED(HAVE_JACK_MIDI, $have_jack_midi,
310                       [Define to 1 if you have JACK with MIDI support installed.])
311    config_have_jack_midi="no"
312    if test $have_jack_midi = "1"; then
313        config_have_jack_midi="yes"
314    fi
315    
316    # ARTS
317    AC_ARG_ENABLE(arts-driver,
318      [  --disable-arts-driver
319                              Disable support for the Analogue Realtime System
320                              (aRts).],
321      [config_arts_driver="$enableval"],
322      [config_arts_driver="yes"]
323    )
324    have_arts=0
325    if test "$config_arts_driver" = "yes"; then
326        m4_ifdef([m4_include(m4/arts.m4)],,
327                 [sinclude([m4/arts.m4])])
328        AM_PATH_ARTS(0.9.5, have_arts=1, have_arts=0)
329        if test "$have_arts" = "1"; then
330            have_audio_output_driver="true"
331        fi
332    else
333        echo "ARTS support disabled by configure script parameter"
334    fi
335    AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1")
336    AC_DEFINE_UNQUOTED(HAVE_ARTS,$have_arts,[Define to 1 if you have aRts installed.])
337    config_have_arts="no"
338    if test $have_arts = "1"; then
339        config_have_arts="yes"
340    fi
341    
342    # ASIO AUDIO (Win32)
343    AC_ARG_ENABLE(asiosdk-dir,
344      [  --enable-asiosdk-dir
345                              Directory where the ASIO SDK is located, this automatically
346                              enables the compilation of the ASIO audio output driver.],
347      [config_asiosdk_dir="${enableval}"],
348      [config_asiosdk_dir="."]
349    )
350    AC_SUBST(config_asiosdk_dir)
351    
352    AC_ARG_ENABLE(asio-driver,
353      [  --disable-asio-driver
354                              Disable support for the Windows ASIO driver.],
355      [config_asio_driver="$enableval"],
356      [config_asio_driver="yes"]
357    )
358    have_asio=0
359    ASIOSDK_BASEDIR=
360    if test "$config_asio_driver" = "yes"; then
361        asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h
362        echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...."
363        if test -e $asiosdk_headerfile ; then
364            echo yes
365            have_asio=1
366            ASIOSDK_BASEDIR="$config_asiosdk_dir"
367        else
368            echo no
369            have_asio=0
370        fi
371        if test "$have_asio" = "1"; then
372            have_audio_output_driver="true"
373        fi
374    else
375        echo "Windows ASIO support disabled by configure script parameter"
376    fi
377    AC_SUBST(ASIOSDK_BASEDIR)
378    AM_CONDITIONAL(HAVE_ASIO, test $have_asio = "1")
379    AC_DEFINE_UNQUOTED(HAVE_ASIO,$have_asio,[Define to 1 if you have ASIO installed.])
380    config_have_asio="no"
381    if test $have_asio = "1"; then
382        config_have_asio="yes"
383    fi
384    
385    # MidiShare (Linux, OS X, Windows)
386    AC_ARG_ENABLE(midishare-driver,
387      [  --disable-midishare-driver
388                              Disable support for the MidiShare system.],
389      [config_midishare_driver="$enableval"],
390      [config_midishare_driver="yes"]
391    )
392    have_midishare=0
393    if test "$config_midishare_driver" = "yes"; then
394        AC_CHECK_HEADER(MidiShare.h,
395            AC_CHECK_LIB(MidiShare, MidiCountEvs,
396                                    have_midishare=1,
397                                    have_midishare=0
398                        )
399                        ,
400                        have_midishare=0
401        )
402        if test "$have_midishare" = "1"; then
403            have_midi_input_driver="true"
404        fi
405    else
406        echo "MidiShare support disabled by configure script parameter"
407    fi
408    AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
409    AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])
410    config_have_midishare="no"
411    if test $have_midishare = "1"; then
412        config_have_midishare="yes"
413    fi
414    
415    # CoreMIDI (OS X)
416    AC_ARG_ENABLE(coremidi-driver,
417      [  --disable-coremidi-driver
418                              Disable support for the Apple CoreMIDI system.],
419      [config_coremidi_driver="$enableval"],
420      [config_coremidi_driver="yes"]
421    )
422    have_coremidi=0
423    if test "$config_coremidi_driver" = "yes"; then
424        AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
425            have_coremidi=1,
426            have_coremidi=0
427        )
428        if test "$have_coremidi" = "1"; then
429            have_midi_input_driver="true"
430        fi
431    else
432        echo "CoreMIDI support disabled by configure script parameter"
433    fi
434    AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
435    AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])
436    config_have_coremidi="no"
437    if test $have_coremidi = "1"; then
438        config_have_coremidi="yes"
439    fi
440    
441    # CoreAudio (OS X)
442    AC_ARG_ENABLE(coreaudio-driver,
443      [  --disable-coreaudio-driver
444                              Disable support for the Apple CoreAudio system.],
445      [config_coreaudio_driver="$enableval"],
446      [config_coreaudio_driver="yes"]
447    )
448    have_coreaudio=0
449    if test "$config_coreaudio_driver" = "yes"; then
450        AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
451            have_coreaudio=1,
452            have_coreaudio=0
453        )
454        if test "$have_coreaudio" = "1"; then
455            have_audio_output_driver="true"
456        fi
457    else
458        echo "CoreAudio support disabled by configure script parameter"
459    fi
460    AM_CONDITIONAL(HAVE_COREAUDIO, test $have_coreaudio = "1")
461    AC_DEFINE_UNQUOTED(HAVE_COREAUDIO,$have_coreaudio,[Define to 1 if you have CoreAudio installed.])
462    config_have_coreaudio="no"
463    if test $have_coreaudio = "1"; then
464        config_have_coreaudio="yes"
465    fi
466    
467    # MME MIDI (Win32)
468    AC_ARG_ENABLE(mmemidi-driver,
469      [  --disable-mmemidi-driver
470                              Disable support for the Windows MME MIDI system.],
471      [config_mmemidi_driver="$enableval"],
472      [config_mmemidi_driver="yes"]
473    )
474    have_mmemidi=0
475    if test "$config_mmemidi_driver" = "yes"; then
476        AC_CHECK_HEADERS(mmsystem.h,
477            have_mmemidi=1,
478            have_mmemidi=0
479        )
480        if test "$have_mmemidi" = "1"; then
481            have_midi_input_driver="true"
482        fi
483    else
484        echo "MME MIDI support disabled by configure script parameter"
485    fi
486    AM_CONDITIONAL(HAVE_MME_MIDI, test $have_mmemidi = "1")
487    AC_DEFINE_UNQUOTED(HAVE_MME_MIDI,$have_mmemidi,[Define to 1 if you have MME MIDI installed.])
488    config_have_mme="no"
489    if test $have_mmemidi = "1"; then
490        config_have_mme="yes"
491    fi
492    
493    # DSSI
494    AC_CHECK_HEADERS(dssi.h,
495            config_have_dssi="yes",
496            config_have_dssi="no")
497    AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes")
498    
499    # LV2
500    PKG_CHECK_MODULES(LV2, lv2core, config_have_lv2="yes", config_have_lv2="no")
501    if test $config_have_lv2 = "no"; then
502        AC_CHECK_HEADER(lv2.h, config_have_lv2="yes", config_have_lv2="no")
503    fi
504    AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes")
505    
506    # VST
507    AC_ARG_ENABLE(vstsdk-dir,
508      [  --enable-vstsdk-dir
509                              Directory where the VST SDK is located.
510                              This automatically enables the compilation
511                              of the VST plugin.],
512      [VSTSDK_DIR="${enableval}"],
513      [VSTSDK_DIR=]
514    )
515    AC_SUBST(VSTSDK_DIR)
516    AM_CONDITIONAL(HAVE_VST, test "x$VSTSDK_DIR" != "x")
517    config_have_vst="no"
518    if test "x$VSTSDK_DIR" != "x"; then
519        config_have_vst="yes"
520  fi  fi
521  AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)  
522  AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])  # AU
523    AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
524            config_have_au="yes",
525            config_have_au="no")
526    AM_CONDITIONAL(HAVE_AU, test $config_have_au = "yes")
527    AM_CONDITIONAL(HAVE_AUFLAGS, test "$AUFLAGS" != "")
528    
529    
530    # have we found at least one MIDI input and one audio output driver ?
531    if test "$have_midi_input_driver" = "false"; then
532        echo "No supported MIDI input system found!"
533        echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"
534        echo "ALSA, JACK, MIDIShare, CoreMIDI, MME."
535        echo "If you think you have one of those available on your system, make sure you"
536        echo "also have the respective development (header) files installed."
537        exit -1;
538    fi
539    if test "$have_audio_output_driver" = "false"; then
540        echo "No supported audio output system found!"
541        echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output"
542        echo "driver at the moment!"
543        exit -1;
544    fi
545    
546    
547    
548    ###########################################################################
549    # Checks for various DLL libraries
550    
551  # Check presence of libgig  # Check presence of libgig
552  libgig_version="2.0.0"  libgig_version="3.2.1"
553  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)
554  if test "$HAVE_GIG" = "false"; then  if test "$HAVE_GIG" = "false"; then
555      echo "Required libgig version not found!"      echo "Required libgig version not found!"
556      echo "You need to have libgig version ${libgig_version} installed!"      echo "You need to have libgig version ${libgig_version} installed!"
557      exit -1;      exit -1;
558    else
559        echo "yes, found libgig $libgig_version"
560  fi  fi
561  AC_SUBST(GIG_CFLAGS)  AC_SUBST(GIG_CFLAGS)
562  AC_SUBST(GIG_LIBS)  AC_SUBST(GIG_LIBS)
563    
564  # SQLITE3  # Instruments DB feature (requires SQLite 3.3)
565  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)  AC_ARG_ENABLE(instruments-db,
566  AC_SUBST(SQLITE3_LIBS)    [  --disable-instruments-db
567  AC_SUBST(SQLITE3_CFLAGS)                            Disable compilation of the sampler's instruments
568  if test $HAVE_SQLITE3 = false; then                            database feature. You need to have SQLite 3.3
569      HAVE_SQLITE3=0;                            or younger installed for this feature.],
570      [config_instruments_db="$enableval"],
571      [config_instruments_db="yes"]
572    )
573    HAVE_SQLITE3=0;
574    if test "$config_instruments_db" = "yes"; then
575        # Check presence of sqlite3
576        sqlite_version="3.3"
577        PKG_CHECK_MODULES(SQLITE3, sqlite3 >= $sqlite_version, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
578        AC_SUBST(SQLITE3_LIBS)
579        AC_SUBST(SQLITE3_CFLAGS)
580        if test $HAVE_SQLITE3 = false; then
581            HAVE_SQLITE3=0
582            config_instruments_db="no"
583            echo "*** Required sqlite version not found!"
584            echo "*** You need to have sqlite version ${sqlite_version} or higher"
585            echo "*** for instruments database support to be enabled."
586            echo "*** Support for instruments DB will be disabled!"
587        else
588            HAVE_SQLITE3=1
589        fi
590  else  else
591      HAVE_SQLITE3=1      echo "Instruments DB feature disabled by configure script parameter"
592  fi  fi
593  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)  AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
594  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.])
595    
 if test "$have_midi_input_driver" = "false"; then  
     echo "No supported MIDI input system found!"  
     echo "Sorry, LinuxSampler only supports ALSA as MIDI input driver at the moment!"  
     exit -1;  
 fi  
 if test "$have_audio_output_driver" = "false"; then  
     echo "No supported audio output system found!"  
     echo "Sorry, LinuxSampler only supports ALSA and JACK as audio output driver at the moment!"  
     exit -1;  
 fi  
596    
597    
598  ###########################################################################  ###########################################################################
# Line 190  fi Line 600  fi
600    
601  # TODO: should we use AC_ARG_VAR(variable, description) instead?  # TODO: should we use AC_ARG_VAR(variable, description) instead?
602    
603    AC_ARG_ENABLE(asm,
604      [  --disable-asm
605                              Enable hand-crafted assembly optimizations
606                              (default=on). LinuxSampler provides CPU specific
607                              assembly optimizations. This is currently limited
608                              to just enter a fast (denormal) FPU mode on x86
609                              platforms. There are currently no synthesis core
610                              assembly optimizations anymore since LS 0.4.0],
611      [config_asm="$enableval"],
612      [config_asm="yes"]
613    )
614    if test "$config_asm" = "yes"; then
615      AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable asm optimizations.])
616    fi
617    
618  AC_ARG_ENABLE(dev-mode,  AC_ARG_ENABLE(dev-mode,
619    [  --enable-dev-mode    [  --enable-dev-mode
620                            Enable development mode (default=no). In that mode                            Enable development mode (default=off). In that mode
621                            we do some extra sanity checks here and there.                            we do some extra sanity checks here and there.
622                            This helps to spot possible problems, but reduces                            This helps to spot possible problems, but reduces
623                            efficiency a bit],                            efficiency a bit],
624    [config_dev_mode="yes"],    [config_dev_mode="$enableval"],
625    [config_dev_mode="no"]    [config_dev_mode="no"]
626  )  )
627  if test "$config_dev_mode" = "yes"; then  if test "$config_dev_mode" = "yes"; then
# Line 224  AC_ARG_ENABLE(rt-exceptions, Line 649  AC_ARG_ENABLE(rt-exceptions,
649                            context as well. Otherwise if disabled                            context as well. Otherwise if disabled
650                            segmentation faults will be forced by the                            segmentation faults will be forced by the
651                            application on critical errors.],                            application on critical errors.],
652    [config_rt_exceptions="yes"],    [config_rt_exceptions="$enableval"],
653    [config_rt_exceptions="no"]    [config_rt_exceptions="no"]
654  )  )
655  if test "$config_rt_exceptions" = "yes"; then  if test "$config_rt_exceptions" = "yes"; then
656    AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.])    AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.])
657  fi  fi
658    
659    AC_ARG_ENABLE(pthread-testcancel,
660      [  --enable-pthread-testcancel
661                              Enable pthread_testcancel() calls and avoid asynchronous
662                              cancel of pthreads (default=no).],
663      [config_pthread_testcancel="$enableval"],
664      [config_pthread_testcancel="no"]
665    )
666    if test "$config_pthread_testcancel" = "yes"; then
667      AC_DEFINE_UNQUOTED(CONFIG_PTHREAD_TESTCANCEL, 1, [Define to 1 to enable pthread_testcancel() calls.])
668    fi
669    
670  AC_ARG_ENABLE(preload-samples,  AC_ARG_ENABLE(preload-samples,
671    [  --enable-preload-samples    [  --enable-preload-samples
672                            Due to seeking and latency issues with hard drives                            Due to seeking and latency issues with hard drives
# Line 336  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_ Line 772  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_
772    
773  AC_ARG_ENABLE(max-streams,  AC_ARG_ENABLE(max-streams,
774    [  --enable-max-streams    [  --enable-max-streams
775                            Maximum amount of disk streams (default=90). This                            Initial maximum amount of disk streams
776                            value should always be higher than the maximum                            (default=90). This value can be changed at
777                            amount of voices.],                            runtime. It should always be higher than the
778                              maximum amount of voices.],
779    [config_max_streams="${enableval}"],    [config_max_streams="${enableval}"],
780    [config_max_streams="90"]    [config_max_streams="90"]
781  )  )
782  AC_DEFINE_UNQUOTED(CONFIG_MAX_STREAMS, $config_max_streams, [Define max. streams.])  AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_STREAMS, $config_max_streams, [Define initial max. streams.])
783    
784  AC_ARG_ENABLE(max-voices,  AC_ARG_ENABLE(max-voices,
785    [  --enable-max-voices    [  --enable-max-voices
786                            Maximum amount of voices (default=64). This value                            Initial maximum amount of voices (default=64).
787                            should always be lower than the maximum amount of                            This value can be changed at runtime. It should
788                            disk streams.],                            always be lower than the maximum amount of disk
789                              streams.],
790    [config_max_voices="${enableval}"],    [config_max_voices="${enableval}"],
791    [config_max_voices="64"]    [config_max_voices="64"]
792  )  )
793  AC_DEFINE_UNQUOTED(CONFIG_MAX_VOICES, $config_max_voices, [Define max. voices.])  AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_VOICES, $config_max_voices, [Define initial max. voices.])
794    
795    AC_ARG_ENABLE(subfragment-size,
796      [  --enable-subfragment-size
797                              Every audio fragment will be splitted into
798                              subfragments. Where each subfragment renders
799                              audio with constant synthesis parameters. This is
800                              done for efficiency reasons. This parameter
801                              defines the default size of a subfragment in
802                              sample points. A large value means less CPU time
803                              whereas a low value means better audio quality
804                              (default=32).],
805      [config_subfragment_size="${enableval}"],
806      [config_subfragment_size="32"]
807    )
808    AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])
809    
810    AC_ARG_ENABLE(global-attenuation-default,
811      [  --enable-global-attenuation-default
812                              To prevent clipping all samples will be lowered
813                              in amplitude by this given default factor (can
814                              be overridden at runtime).
815                              (default=0.35)],
816      [config_global_attenuation_default="${enableval}"],
817      [config_global_attenuation_default="0.35"]
818    )
819    AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION_DEFAULT, $config_global_attenuation_default, [Define default global volume attenuation (as floating point factor).])
820    
821  AC_ARG_ENABLE(voice-steal-algo,  AC_ARG_ENABLE(voice-steal-algo,
822    [  --enable-voice-steal-algo    [  --enable-voice-steal-algo
# Line 360  AC_ARG_ENABLE(voice-steal-algo, Line 824  AC_ARG_ENABLE(voice-steal-algo,
824                            available options:                            available options:
825                              none:                              none:
826                                Disable voice stealing completely.                                Disable voice stealing completely.
827                              oldestvoiceonkey:                              oldestvoiceonkey (default):
828                                Try to kill a voice on the same key first,                                Try to kill a voice on the same key first,
829                                if no success, proceed with the oldest key.                                if no success, proceed with the oldest key.
830                              oldestkey (default):                              oldestkey:
831                                Try to kill a voice from the oldest active                                Try to kill a voice from the oldest active
832                                key.],                                key.],
833    [ if test ! "(" "${enableval}" = "none" \    [ if test ! "(" "${enableval}" = "none" \
# Line 372  AC_ARG_ENABLE(voice-steal-algo, Line 836  AC_ARG_ENABLE(voice-steal-algo,
836        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])        AC_MSG_ERROR([Unknown voice stealing algorithm for parameter --enable-voice-steal-algo])
837      else      else
838        config_voice_steal_algo="${enableval}"        config_voice_steal_algo="${enableval}"
839      fi        fi
840    ],    ],
841    [config_voice_steal_algo="oldestkey"]    [config_voice_steal_algo="oldestvoiceonkey"]
842  )  )
843  AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])  AC_DEFINE_UNQUOTED(CONFIG_VOICE_STEAL_ALGO, voice_steal_algo_${config_voice_steal_algo}, [Define voice stealing algorithm to be used.])
844    
# Line 387  AC_ARG_ENABLE(sysex-buffer-size, Line 851  AC_ARG_ENABLE(sysex-buffer-size,
851  )  )
852  AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])  AC_DEFINE_UNQUOTED(CONFIG_SYSEX_BUFFER_SIZE, $config_sysex_buffer_size, [Define SysEx buffer size.])
853    
 AC_ARG_ENABLE(filter-update-steps,  
   [  --enable-filter-update-steps  
                           Amount of sample points after which filter  
                           parameters (cutoff, resonance) are going to be  
                           updated (default=64). Higher value means less CPU  
                           load, but also worse parameter resolution, this  
                           value will be aligned to a power of two.],  
   [config_filter_update_steps="${enableval}"],  
   [config_filter_update_steps="64"]  
 )  
 AC_DEFINE_UNQUOTED(CONFIG_FILTER_UPDATE_STEPS, $config_filter_update_steps, [Define amount of steps to refresh filter coefficients.])  
   
854  AC_ARG_ENABLE(force-filter,  AC_ARG_ENABLE(force-filter,
855    [  --enable-force-filter    [  --enable-force-filter
856                            If enabled will force filter to be used even if                            If enabled will force filter to be used even if
857                            no usage was define in instrument patch files.                            no usage was define in instrument patch files.
858                            (default=no).],                            (default=no).],
859    [config_force_filter="yes"],    [config_force_filter="$enableval"],
860    [config_force_filter="no"]    [config_force_filter="no"]
861  )  )
862  if test "$config_force_filter" = "yes"; then  if test "$config_force_filter" = "yes"; then
# Line 479  AC_ARG_ENABLE(override-filter-type, Line 931  AC_ARG_ENABLE(override-filter-type,
931         config_override_filter_type="::gig::vcf_type_lowpassturbo"         config_override_filter_type="::gig::vcf_type_lowpassturbo"
932      elif test ! "${enableval}" = "no"; then      elif test ! "${enableval}" = "no"; then
933         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])         AC_MSG_ERROR([Unknown filter type for parameter --enable-override-filter-type])
934      fi        fi
935    ],    ],
936    [config_override_filter_type="no"]    [config_override_filter_type="no"]
937  )  )
# Line 487  if test ! "$config_override_filter_type" Line 939  if test ! "$config_override_filter_type"
939    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])    AC_DEFINE_UNQUOTED(CONFIG_OVERRIDE_FILTER_TYPE, $config_override_filter_type, [Define to a filter type to always force that filter type.])
940  fi  fi
941    
942    AC_ARG_ENABLE(gs-checksum,
943      [  --enable-gs-checksum
944                              Enable Roland General Synth SysEx checksum check
945                              (default=no). If this is enabled, all GS SysEx
946                              messages which do not provide a correct checksum
947                              will be ignored. This is disabled by default as
948                              not all devices honor GS checksums.],
949      [config_assert_gs_sysex_checksum="$enableval"],
950      [config_assert_gs_sysex_checksum="no"]
951    )
952    if test "config_assert_gs_sysex_checksum" = "yes"; then
953      AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
954    fi
955    
956    AC_ARG_ENABLE(portamento-time-min,
957      [  --enable-portamento-time-min
958                              Minimum Portamento time in seconds
959                              (default=0.1).],
960      [config_portamento_time_min="${enableval}"],
961      [config_portamento_time_min="0.1"]
962    )
963    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MIN, $config_portamento_time_min, [Define min. portamento time.])
964    
965    AC_ARG_ENABLE(portamento-time-max,
966      [  --enable-portamento-time-max
967                              Maximum Portamento time in seconds
968                              (default=32).],
969      [config_portamento_time_max="${enableval}"],
970      [config_portamento_time_max="32"]
971    )
972    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MAX, $config_portamento_time_max, [Define max. portamento time.])
973    
974    AC_ARG_ENABLE(portamento-time-default,
975      [  --enable-portamento-time-default
976                              Default Portamento time in seconds
977                              (default=1).],
978      [config_portamento_time_default="${enableval}"],
979      [config_portamento_time_default="1"]
980    )
981    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_DEFAULT, $config_portamento_time_default, [Define default portamento time.])
982    
983    AC_ARG_ENABLE(signed-triang-algo,
984      [  --enable-signed-triang-algo
985                              Signed triangular wave algorithm to be used (e.g. for LFOs).
986                              Currently available options:
987                                intmath:
988                                  Uses integer math without any branch will then be
989                                  converted to floating point value for each sample point.
990                                  This int->float conversion might hurt on some systems.
991                                intmathabs:
992                                  Similar to intmath but uses abs() function.
993                                  Depending on compiler and platrofm this could
994                                  perform better than integer math as it avoids
995                                  an extra integer multiply instruction.
996                                diharmonic:
997                                  The triangular wave will be approximated by adding two
998                                  sinusoidials. This solution might especially hurt on
999                                  systems with weak floating point unit.
1000                                benchmark (default):
1001                                  This is not an algorithm. Use this option if the
1002                                  appropriate algorithm should be automatically
1003                                  chosen by the configure script by performing a
1004                                  benchmark between the algorithms mentioned above.
1005                                  This will NOT work for cross compilation!],
1006      [ if test ! "(" "${enableval}" = "intmath" \
1007                  -o "${enableval}" = "intmathabs" \
1008                  -o "${enableval}" = "diharmonic" ")" ; then
1009          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
1010        else
1011          config_signed_triang_algo="${enableval}"
1012        fi
1013      ],
1014      [config_signed_triang_algo="benchmark"]
1015    )
1016    
1017    AC_ARG_ENABLE(unsigned-triang-algo,
1018      [  --enable-unsigned-triang-algo
1019                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
1020                              Currently available options:
1021                                intmath:
1022                                  Uses integer math without any branch will then be
1023                                  converted to floating point value for each sample point.
1024                                  This int->float conversion might hurt on some systems.
1025                                intmathabs:
1026                                  Similar to intmath but uses abs() function.
1027                                  Depending on compiler and platrofm this could
1028                                  perform better than integer math as it avoids
1029                                  an extra integer multiply instruction.
1030                                diharmonic:
1031                                  The triangular wave will be approximated by adding two
1032                                  sinusoidials. This solution might especially hurt on
1033                                  systems with weak floating point unit.
1034                                benchmark (default):
1035                                  This is not an algorithm. Use this option if the
1036                                  appropriate algorithm should be automatically
1037                                  chosen by the configure script by performing a
1038                                  benchmark between the algorithms mentioned above.
1039                                  This will NOT work for cross compilation!],
1040      [ if test ! "(" "${enableval}" = "intmath" \
1041                  -o "${enableval}" = "intmathabs" \
1042                  -o "${enableval}" = "diharmonic" ")" ; then
1043          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
1044        else
1045          config_unsigned_triang_algo="${enableval}"
1046        fi
1047      ],
1048      [config_unsigned_triang_algo="benchmark"]
1049    )
1050    
1051    AC_ARG_ENABLE(process-muted-channels,
1052      [  --enable-process-muted-channels
1053                              Enable processing of muted channels (default=no).
1054                              In that mode all MIDI events in the muted channels
1055                              will be processed. This will provide information
1056                              about the active voices in the muted channels and
1057                              will not discard notes, triggered in mute mode,
1058                              when the channel is unmuted. But also will reduce
1059                              the efficiency.],
1060      [config_process_muted_channels="$enableval"],
1061      [config_process_muted_channels="no"]
1062    )
1063    if test "$config_process_muted_channels" = "yes"; then
1064      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
1065    fi
1066    
1067    AC_ARG_ENABLE(process-all-notes-off,
1068      [  --disable-process-all-notes-off
1069                              Disable interpretation of All-Notes-Off MIDI
1070                              messages (default=on). By default LS will release
1071                              all voices whenever it receives an All-Notes-Off
1072                              MIDI message. You can disable this behavior, so
1073                              that LS simply ignores such messages.],
1074      [config_process_all_notes_off="$enableval"],
1075      [config_process_all_notes_off="yes"]
1076    )
1077    if test "$config_process_all_notes_off" = "yes"; then
1078      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_ALL_NOTES_OFF, 1, [Define to 1 if you want to enable processing of All-Notes-Off MIDI messages.])
1079    fi
1080    
1081    AC_ARG_ENABLE(interpolate-volume,
1082      [  --disable-interpolate-volume
1083                              Disable interpolation of volume modulation
1084                              (default=on). With this enabled, the volume changes
1085                              generated by for example the envelope generator
1086                              will be smoother, minimizing the risk for audio
1087                              clicks. Disable it to reduce CPU usage.],
1088      [config_interpolate_volume="$enableval"],
1089      [config_interpolate_volume="yes"]
1090    )
1091    if test "$config_interpolate_volume" = "yes"; then
1092      AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.])
1093    fi
1094    
1095    AC_ARG_ENABLE(master-volume-sysex-by-port,
1096      [  --enable-master-volume-sysex-by-port
1097                              Whether global volume sysex message should be
1098                              applied globally to the whole sampler or only to
1099                              the sampler channels connected to the same MIDI
1100                              input port on which the sysex message arrived on.
1101                              By default global volume sysex messages apply
1102                              globally to the whole sampler, since many MIDI
1103                              devices behave that way.],
1104      [config_master_volume_sysex_by_port="$enableval"],
1105      [config_master_volume_sysex_by_port="no"]
1106    )
1107    if test "$config_master_volume_sysex_by_port" = "yes"; then
1108      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.])
1109    fi
1110    
1111    AC_ARG_ENABLE(plugin-dir,
1112      [  --enable-plugin-dir
1113                              Directory where the sampler shall look for potential plugins,
1114                              that is 3rd party shared libraries that should be loaded by
1115                              the sampler on startup. By default the sampler will search
1116                              for plugins in the subdirectory "plugins" below its own
1117                              library directory.
1118                              (i.e. /usr/local/lib/linuxsampler/plugins)],
1119      [config_plugin_dir="${enableval}"],
1120      [config_plugin_dir="${libdir}/linuxsampler/plugins"]
1121    )
1122    AC_SUBST(config_plugin_dir)
1123    
1124    AC_ARG_ENABLE(default-instruments-db-location,
1125      [  --enable-default-instruments-db-location
1126                              Only when instruments DB feature is enabled: file name
1127                              which shall be taken as default location of the
1128                              instruments DB file. This location can still be
1129                              overridden at runtime with a command line switch.
1130                              (default: /var/lib/linuxsampler/instruments.db)],
1131      [config_default_instruments_db_file="${enableval}"],
1132      [config_default_instruments_db_file="/var/lib/linuxsampler/instruments.db"]
1133    )
1134    AC_DEFINE_UNQUOTED(
1135        CONFIG_DEFAULT_INSTRUMENTS_DB_LOCATION,
1136        "$config_default_instruments_db_file",
1137        [Only when instruments DB feature is enabled: default location of the DB file.]
1138    )
1139    AC_SUBST(config_default_instruments_db_file)
1140    
1141    
1142    ###########################################################################
1143    # Automatic Benchmarks (to detect the best algorithms for the system)
1144    
1145    AC_LANG_SAVE
1146    
1147    if test "$config_signed_triang_algo" = "benchmark"; then
1148        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
1149        AC_LANG_CPLUSPLUS
1150        AC_TRY_RUN([
1151                #define SIGNED 1
1152                #define SILENT 1
1153                #include "${srcdir}/benchmarks/triang.cpp"
1154            ],
1155            triang_signed=0,
1156            triang_signed=$?,
1157            triang_signed=0
1158        )
1159        if test "$triang_signed" = "2"; then
1160            config_signed_triang_algo="intmath"
1161            echo "integer math"
1162        elif test "$triang_signed" = "3"; then
1163            config_signed_triang_algo="diharmonic"
1164            echo "di harmonics"
1165        elif test "$triang_signed" = "5"; then
1166            config_signed_triang_algo="intmathabs"
1167            echo "integer math using abs()"
1168        else
1169            echo "Benchmark of signed triangular wave algorithms failed!"
1170            echo "Maybe you are doing cross compilation? In that case you have to select"
1171            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
1172            echo "Call './configure --help' for further information or read configure.in."
1173            exit -1;
1174        fi
1175    else
1176        case "$config_signed_triang_algo" in
1177            intmath)
1178                triang_signed=2 ;;
1179            diharmonic)
1180                triang_signed=3 ;;
1181            intmathabs)
1182                triang_signed=5 ;;
1183        esac
1184    fi
1185    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
1186    
1187    if test "$config_unsigned_triang_algo" = "benchmark"; then
1188        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
1189        AC_LANG_CPLUSPLUS
1190        AC_TRY_RUN([
1191                #define SIGNED 0
1192                #define SILENT 1
1193                #include "${srcdir}/benchmarks/triang.cpp"
1194            ],
1195            triang_unsigned=0,
1196            triang_unsigned=$?,
1197            triang_unsigned=0
1198        )
1199        if test "$triang_unsigned" = "2"; then
1200            config_unsigned_triang_algo="intmath"
1201            echo "integer math"
1202        elif test "$triang_unsigned" = "3"; then
1203            config_unsigned_triang_algo="diharmonic"
1204            echo "di harmonics"
1205        elif test "$triang_unsigned" = "5"; then
1206            config_unsigned_triang_algo="intmathabs"
1207            echo "integer math using abs()"
1208        else
1209            echo "Benchmark of unsigned triangular wave algorithms failed!"
1210            echo "Maybe you are doing cross compilation? In that case you have to select"
1211            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
1212            echo "Call './configure --help' for further information or read configure.in."
1213            exit -1;
1214        fi
1215    else
1216        case "$config_unsigned_triang_algo" in
1217            intmath)
1218                triang_unsigned=2 ;;
1219            diharmonic)
1220                triang_unsigned=3 ;;
1221            intmathabs)
1222                triang_unsigned=5 ;;
1223        esac
1224    fi
1225    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
1226    
1227    AC_LANG_RESTORE
1228    
1229    
1230  ###########################################################################  ###########################################################################
1231  # Create Build Files  # Create Build Files
1232    
1233  AM_CONFIG_HEADER(config.h)  AM_CONFIG_HEADER(config.h)
1234  AM_INIT_AUTOMAKE(linuxsampler, 0.3.1)  AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")
1235    
1236  AC_LANG_CPLUSPLUS  AC_LANG_CPLUSPLUS
1237  AC_PROG_CXX  
1238    # some gcc 4.0 versions need -msse for SSE register allocations
1239    if test "$config_asm" = "yes"; then
1240      if test "$def_arch_x86" = 1; then
1241        CXXFLAGS="$CXXFLAGS -msse"
1242      fi
1243    fi
1244    
1245  # 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
1246  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
1247  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
1248    
1249  AM_PROG_LIBTOOL  AC_OUTPUT( \
1250        Makefile \
1251  AC_OUTPUT(Makefile src/Makefile src/network/Makefile src/engines/Makefile src/engines/gig/Makefile src/engines/common/Makefile src/common/Makefile src/lib/Makefile src/lib/fileloader/Makefile src/lib/fileloader/libgig/Makefile src/testcases/Makefile src/drivers/Makefile src/drivers/audio/Makefile src/drivers/midi/Makefile)      man/Makefile \
1252        man/linuxsampler.1 \
1253        src/Makefile \
1254        src/db/Makefile \
1255        src/network/Makefile \
1256        src/engines/Makefile \
1257        src/engines/gig/Makefile \
1258        src/engines/common/Makefile \
1259        src/effects/Makefile \
1260        src/common/Makefile \
1261        src/testcases/Makefile \
1262        src/drivers/Makefile \
1263        src/drivers/audio/Makefile \
1264        src/drivers/midi/Makefile \
1265        src/plugins/Makefile \
1266        src/hostplugins/Makefile \
1267        src/hostplugins/dssi/Makefile \
1268        src/hostplugins/lv2/Makefile \
1269        src/hostplugins/vst/Makefile \
1270        src/hostplugins/au/Makefile \
1271        linuxsampler.spec \
1272        debian/Makefile \
1273        Artwork/Makefile \
1274        scripts/Makefile \
1275        osx/Makefile \
1276        osx/linuxsampler.xcodeproj/Makefile \
1277        Documentation/Makefile \
1278        Documentation/Engines/Makefile \
1279        Documentation/Engines/gig/Makefile \
1280        linuxsampler.pc \
1281        Doxyfile \
1282    )
1283    
1284    # resolve all nested variables in '${config_plugin_dir}'
1285    # (merely for providing a human readable summary below)
1286    while test $config_plugin_dir != `eval echo ${config_plugin_dir}` ; do
1287            config_plugin_dir=`eval echo ${config_plugin_dir}`
1288    done
1289    
1290    
1291  ###########################################################################  ###########################################################################
# Line 512  echo "" Line 1295  echo ""
1295  echo "#####################################################################"  echo "#####################################################################"
1296  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
1297  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1298    echo "# Release Version: ${LINUXSAMPLER_RELEASE_MAJOR}.${LINUXSAMPLER_RELEASE_MINOR}.${LINUXSAMPLER_RELEASE_BUILD}"
1299    echo "# LSCP Version: ${LSCP_RELEASE_MAJOR}.${LSCP_RELEASE_MINOR}"
1300    echo "#-------------------------------------------------------------------"
1301    echo "# Assembly Optimizations: ${config_asm}"
1302  echo "# Development Mode: ${config_dev_mode}"  echo "# Development Mode: ${config_dev_mode}"
1303  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
1304  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"  echo "# Use Exceptions in RT Context: ${config_rt_exceptions}"
# Line 524  echo "# Streams to be refilled per Disk Line 1311  echo "# Streams to be refilled per Disk
1311  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
1312  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
1313  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
1314  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Default Maximum Disk Streams: ${config_max_streams}"
1315  echo "# Maximum Voices: ${config_max_voices}"  echo "# Default Maximum Voices: ${config_max_voices}"
1316    echo "# Default Subfragment Size: ${config_subfragment_size}"
1317    echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}"
1318    echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
1319    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
1320    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
1321  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
1322  echo "# Filter Update Steps: ${config_filter_update_steps}"  echo "# Min. Portamento Time: ${config_portamento_time_min} s"
1323    echo "# Max. Portamento Time: ${config_portamento_time_max} s"
1324    echo "# Default Portamento Time: ${config_portamento_time_default} s"
1325  echo "# Force Filter Usage: ${config_force_filter}"  echo "# Force Filter Usage: ${config_force_filter}"
1326  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
1327  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
1328  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"  echo "# Override Filter Cutoff Controller: ${config_override_cutoff_ctrl}"
1329  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
1330  echo "# Override Filter Type: ${config_override_filter_type}"  echo "# Override Filter Type: ${config_override_filter_type}"
1331    echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
1332    echo "# Process Muted Channels: ${config_process_muted_channels}"
1333    echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}"
1334    echo "# Apply global volume SysEx by MIDI port: ${config_master_volume_sysex_by_port}"
1335    echo "# Interpolate Volume: ${config_interpolate_volume}"
1336    echo "# Instruments database support: ${config_instruments_db}"
1337    if test "$config_instruments_db" = "yes"; then
1338    echo "# Instruments DB default location: ${config_default_instruments_db_file}"
1339    fi
1340    echo "# Plugin Path: ${config_plugin_dir}"
1341    echo "#-------------------------------------------------------------------"
1342    echo "# MIDI Input Drivers:"
1343    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack_midi}, CoreMIDI: ${config_have_coremidi}, MME: ${config_have_mme}, MidiShare: ${config_have_midishare}"
1344    echo "#-------------------------------------------------------------------"
1345    echo "# Audio Output Drivers:"
1346    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack}, ARTS: ${config_have_arts}, CoreAudio: ${config_have_coreaudio}, ASIO: ${config_have_asio}"
1347    echo "#-------------------------------------------------------------------"
1348    echo "# Building sampler as plugin for following host standards:"
1349    echo "# DSSI: ${config_have_dssi}, LV2: ${config_have_lv2}, VST: ${config_have_vst}, AU: ${config_have_au}"
1350  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1351  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
1352  echo "#####################################################################"  echo "#####################################################################"

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

  ViewVC Help
Powered by ViewVC