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

Diff of /linuxsampler/trunk/configure.ac

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

linuxsampler/trunk/configure.in revision 677 by schoenebeck, Thu Jun 23 22:44:59 2005 UTC linuxsampler/trunk/configure.ac revision 2578 by persson, Sat May 24 06:43:45 2014 UTC
# Line 1  Line 1 
1  AC_INIT(configure.in)  #------------------------------------------------------------------------------------
2  AC_C_BIGENDIAN  # LinuxSampler's / liblinuxsampler's "official" release version:
3  AC_CANONICAL_SYSTEM  
4    m4_define(linuxsampler_release_major, 1)
5    m4_define(linuxsampler_release_minor, 0)
6    m4_define(linuxsampler_release_build, 0.svn40)
7    
8    
9    AC_INIT([linuxsampler],[linuxsampler_release_major.linuxsampler_release_minor.linuxsampler_release_build])
10    AC_CONFIG_SRCDIR([configure.ac])
11    
12    #------------------------------------------------------------------------------------
13    # The following is the libtool / shared library version. This doesn't have to
14    # do anything with the release version. It MUST conform to the following rules:
15    #
16    #  1. Start with version information of `0:0:0' for each libtool library.
17    #  2. Update the version information only immediately before a public release of
18    #     your software. More frequent updates are unnecessary, and only guarantee
19    #     that the current interface number gets larger faster.
20    #  3. If the library source code has changed at all since the last update, then
21    #     increment revision (`c:r:a' becomes `c:r+1:a').
22    #  4. If any interfaces have been added, removed, or changed since the last update,
23    #     increment current, and set revision to 0.
24    #  5. If any interfaces have been added since the last public release, then increment
25    #     age.
26    #  6. If any interfaces have been removed since the last public release, then set age
27    #     to 0.
28    
29    LIBLINUXSAMPLER_LT_CURRENT=3
30    LIBLINUXSAMPLER_LT_REVISION=0
31    LIBLINUXSAMPLER_LT_AGE=0
32    SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"
33    
34    #------------------------------------------------------------------------------------
35    # the LSCP specification version this LinuSampler release complies with:
36    
37    LSCP_RELEASE_MAJOR=1
38    LSCP_RELEASE_MINOR=6
39    
40    AC_DEFINE_UNQUOTED(LSCP_RELEASE_MAJOR, ${LSCP_RELEASE_MAJOR}, [LSCP spec major version this release complies with.])
41    AC_DEFINE_UNQUOTED(LSCP_RELEASE_MINOR, ${LSCP_RELEASE_MINOR}, [LSCP spec minor version this release complies with.])
42    
43    AM_INIT_AUTOMAKE([subdir-objects])
44    AC_PROG_CC
45    AC_PROG_CXX
46    AC_LIBTOOL_WIN32_DLL
47    AC_PROG_LIBTOOL
48    AC_PROG_YACC
49    
50  AC_SUBST(target)  AC_SUBST(SHLIB_VERSION_ARG)
51  AC_SUBST(target_alias)  AC_SUBST(SHARED_VERSION_INFO)
 AC_SUBST(target_cpu)  
 AC_SUBST(target_os)  
 AC_SUBST(target_vendor)  
52    
53    module=yes eval LIB_EXT=$shrext_cmds
54    AC_SUBST(LIB_EXT)
55    
56    AC_C_BIGENDIAN
57    AC_CANONICAL_HOST
58    
59    PKG_PROG_PKG_CONFIG
60    
61  ###########################################################################  ###########################################################################
62  # General Checks  # General Checks
63    
64    AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
65    
66  AC_MSG_CHECKING([whether x86 architecture])  AC_MSG_CHECKING([whether x86 architecture])
67  def_arch_x86=0  def_arch_x86=0
68  case $target_cpu in  case $host_cpu in
69    "i386" | "i486" | "i586" | "i686" | "i786")    "i386" | "i486" | "i586" | "i686" | "i786" | "x86_64")
70      echo "yes"      echo "yes"
71      def_arch_x86=1;;      def_arch_x86=1;;
72    *)    *)
# Line 24  esac Line 75  esac
75  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.])
76    
77  # determine the right gcc switch for CPU specific optimizations  # determine the right gcc switch for CPU specific optimizations
78    # (only if the user did not provide one)
79  CXX_CPU_SWITCH=  CXX_CPU_SWITCH=
80  if test "$def_arch_x86" = 1; then  if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then
81    CXX_CPU_SWITCH="-march=$target_cpu"    if test "$def_arch_x86" = 1 -a "$host_cpu" != "x86_64"; then
82  elif test "$target_cpu" = "powerpc"; then      CXX_CPU_SWITCH="-march=$host_cpu"
83    CXX_CPU_SWITCH="-arch=$target_cpu"    elif test "$target_cpu" = "ppc"; then
84        CXX_CPU_SWITCH="-arch=$host_cpu"
85      fi
86  fi  fi
87  AC_SUBST([CXX_CPU_SWITCH])  AC_SUBST([CXX_CPU_SWITCH])
88    
89    mac=no
90    linux=no
91    case "$host" in
92        *-*-darwin*)
93            mac=yes
94            ;;
95        *-*-linux*)
96            linux=yes
97            ;;
98    esac
99    AM_CONDITIONAL(LINUX, test "$linux" = yes)
100    AM_CONDITIONAL(MAC, test "$mac" = yes)
101    
102    # check if we're on MS Windows
103    AC_CHECK_HEADERS(
104        mmsystem.h,
105        have_windows=1,
106        have_windows=0,
107        [#include <windef.h>]
108    )
109    AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1")
110    
111  AC_MSG_CHECKING([whether UNIX98 compatible])  AC_MSG_CHECKING([whether UNIX98 compatible])
112  AC_LANG_SAVE  AC_LANG_PUSH([C])
113  AC_LANG_C  AC_RUN_IFELSE([AC_LANG_SOURCE([[
 AC_TRY_RUN([  
114  #ifndef _GNU_SOURCE  #ifndef _GNU_SOURCE
115  #define _GNU_SOURCE 1  #define _GNU_SOURCE 1
116  #endif  #endif
# Line 47  exit(0); /* UNIX98 compatible */ Line 122  exit(0); /* UNIX98 compatible */
122  exit(-1); /* not UNIX98 compatible */  exit(-1); /* not UNIX98 compatible */
123  #endif  #endif
124  }  }
125  ],  ]])],
126  have_unix98="yes",  have_unix98="yes",
127  have_unix98="no",  have_unix98="no",
128  have_unix98="no"  have_unix98="no"
129  )  )
130  AC_LANG_RESTORE  AC_LANG_POP([C])
131  AC_MSG_RESULT([$have_unix98])  AC_MSG_RESULT([$have_unix98])
132  if test "$have_unix98" = "no"; then  if test "$have_unix98" = "no" -a "$have_windows" = "0" -a "$mac" = "no" ; then
133      if test "x$HAVE_UNIX98" = "x"; then      if test "x$HAVE_UNIX98" = "x"; then
134          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"
135          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"
136          echo "./configure with environment variable HAVE_UNIX98=1 in case you think you          echo "./configure with environment variable HAVE_UNIX98=1 in case you think you"
137          echo "have a UNIX98 compatible system."          echo "have a UNIX98 compatible system."
138          exit -1;          exit -1;
139      fi      fi
140  fi  fi
141    
142    # check for <features.h>
143    AC_CHECK_HEADERS(features.h)
144    
145    # test for POSIX thread library
146    m4_ifdef([m4_include(m4/pthread.m4)],,
147                 [sinclude([m4/pthread.m4])])
148    ACX_PTHREAD
149    LIBS="$PTHREAD_LIBS $LIBS"
150    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
151    CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
152    CC="$PTHREAD_CC"
153    
154    # check for a bug in NPTL-enabled glibc
155    # (see Gentoo bug report #194076)
156    AC_ARG_ENABLE(nptl-bug-check,
157      [  --disable-nptl-bug-check
158                              Disable check for a bug in certain NPTL-enabled
159                              glibc versions that caused crashs.],
160      [config_check_nptl_bug="$enableval"],
161      [config_check_nptl_bug="yes"]
162    )
163    if test "$config_check_nptl_bug" = "yes"; then
164        m4_ifdef([m4_include(m4/nptl_bug.m4)],,
165                 [sinclude([m4/nptl_bug.m4])])
166        ACX_NPTL_GLIBC_BUG([
167            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
168            echo "You seem to have a buggy PTHREAD library! LinuxSampler would"
169            echo "probably crash due to this. Please report us the system you are"
170            echo "using and/or file a bug report to the bug tracking system of"
171            echo "your distribution."
172            echo "If you have a NPTL-enabled glibc AND it was compiled for TLS as"
173            echo "well, you can try to circumvent this problem for now by setting"
174            echo "the environment variable LD_ASSUME_KERNEL=\"2.4.1\" , which"
175            echo "should cause this test to pass."
176            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
177            AC_MSG_ERROR([possibly NPTL glibc bug detected])
178        ])
179    else
180        echo "NPTL glibc bug check disabled"
181    fi
182    
183    # FIXME: this is actually a dependency of libgig, not of LS directly, why
184    # isn't it hidden by libgig?
185    AC_CHECK_HEADERS(uuid/uuid.h)
186    AC_SEARCH_LIBS(uuid_generate, uuid)
187    
188    # In case Bison is available, determine the exact version, since we need to
189    # use different custom parser code for Bison 2.x vs. Bison 3.x generated
190    # parser yacc tables.
191    if echo "$YACC" | grep -q bison; then
192        # NOTE: m4 removes [], that's why it needs to be escaped
193        bison_version=[`$YACC --version | head -n 1 | sed -e 's/[^0-9.]*\([-0-9.]\+\)$/\1/'`]
194        bison_version_major=`echo $bison_version | cut -d. -f1`
195        bison_version_minor=`echo $bison_version | cut -d. -f2`
196        AC_DEFINE_UNQUOTED(HAVE_BISON_MAJ,$bison_version_major,[Define to the major version of the GNU Bison program installed.])
197        AC_DEFINE_UNQUOTED(HAVE_BISON_MIN,$bison_version_minor,[Define to the minor version of the GNU Bison program installed.])
198    fi
199    
200    
201    
202    ###########################################################################
203  # Checks for available audio and MIDI systems / drivers  # Checks for available audio and MIDI systems / drivers
204  # (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)
205    
206  have_midi_input_driver="false"  have_midi_input_driver="false"
207  have_audio_output_driver="false"  have_audio_output_driver="false"
208    
209  AC_CHECK_HEADER(alsa/asoundlib.h,  # ALSA
210      AC_CHECK_LIB(asound, main,  AC_ARG_ENABLE(alsa-driver,
211                               have_alsa=1    [  --disable-alsa-driver
212                               ,                            Disable support for the Advanced Linux Sound
213                               have_alsa=0                            Architecture (ALSA).],
214                  )    [config_alsa_driver="$enableval"],
215                  ,    [config_alsa_driver="yes"]
216                  have_alsa=0  )
217  )  have_alsa=0
218  if test "$have_alsa" = "1"; then  if test "$config_alsa_driver" = "yes"; then
219      have_midi_input_driver="true"      AC_CHECK_HEADER(alsa/asoundlib.h,
220      have_audio_output_driver="true";          AC_CHECK_LIB(asound, main,
221                                     have_alsa=1
222                                     ,
223                                     have_alsa=0
224                        )
225                        ,
226                        have_alsa=0
227        )
228        if test "$have_alsa" = "1"; then
229            have_midi_input_driver="true"
230            have_audio_output_driver="true";
231        fi
232    
233        echo -n "checking Alsa version... "
234        AC_LANG_PUSH([C])
235        AC_RUN_IFELSE([AC_LANG_SOURCE([[
236            #include <alsa/asoundlib.h>
237            void main(void) {
238                /* ensure backward compatibility */
239                #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
240                #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
241                #endif
242                exit(SND_LIB_MAJOR);
243            }
244        ]])],
245        alsa_major=0,
246        alsa_major=$?,
247        alsa_major=0
248        )
249        AC_RUN_IFELSE([AC_LANG_SOURCE([[
250            #include <alsa/asoundlib.h>
251            void main(void) {
252                /* ensure backward compatibility */
253                #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
254                #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
255                #endif
256                exit(SND_LIB_MINOR);
257            }
258        ]])],
259        alsa_minor=0,
260        alsa_minor=$?,
261        alsa_minor=0
262        )
263        AC_RUN_IFELSE([AC_LANG_SOURCE([[
264            #include <alsa/asoundlib.h>
265            void main(void) {
266                /* ensure backward compatibility */
267                #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
268                #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
269                #endif
270                exit(SND_LIB_SUBMINOR);
271            }
272        ]])],
273        alsa_subminor=0,
274        alsa_subminor=$?,
275        alsa_subminor=0
276        )
277        AC_LANG_POP([C])
278        echo "$alsa_major.$alsa_minor.$alsa_subminor";
279        AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])
280        AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])
281        AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])
282    else
283        echo "ALSA support disabled by configure script parameter"
284  fi  fi
285  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
286  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.])
287    config_have_alsa="no"
288  echo -n "checking Alsa version... "  if test $have_alsa = "1"; then
289  AC_LANG_SAVE      config_have_alsa="yes"
290  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.])  
291    
292  # JACK  # JACK
293  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)  AC_ARG_ENABLE(jack-driver,
294  AC_SUBST(JACK_LIBS)    [  --disable-jack-driver
295  AC_SUBST(JACK_CFLAGS)                            Disable support for the Jack Audio Connection Kit
296  if test $HAVE_JACK = false; then                            (JACK).],
297      HAVE_JACK=0;    [config_jack_driver="$enableval"],
298  else    [config_jack_driver="yes"]
299      HAVE_JACK=1  )
300      have_audio_output_driver="true";  have_jack=0
301      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
302        PKG_CHECK_MODULES(JACK, jack, have_jack=1, have_jack=0)
303        if test $have_jack = "1"; then
304            AC_SUBST(JACK_LIBS)
305            AC_SUBST(JACK_CFLAGS)
306            linuxsampler_save_LIBS=$LIBS
307            LIBS="$JACK_LIBS $LIBS"
308            AC_CHECK_FUNCS(jack_client_name_size jack_client_open \
309                           jack_on_info_shutdown)
310            LIBS=$linuxsampler_save_LIBS
311            have_audio_output_driver="true";
312        fi
313    else
314        echo "JACK support disabled by configure script parameter"
315    fi
316    AM_CONDITIONAL(HAVE_JACK, test $have_jack = "1")
317    AC_DEFINE_UNQUOTED(HAVE_JACK,$have_jack,[Define to 1 if you have JACK installed.])
318    config_have_jack="no"
319    if test $have_jack = "1"; then
320        config_have_jack="yes"
321    fi
322    
323    # JACK MIDI
324    have_jack_midi=0
325    if test $have_jack = "1"; then
326        linuxsampler_save_CFLAGS=$CFLAGS
327        linuxsampler_save_LIBS=$LIBS
328        CFLAGS="$JACK_CFLAGS $CFLAGS"
329        LIBS="$JACK_LIBS $LIBS"
330        AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0)
331        if test $have_jack_midi = "1"; then
332            AC_CHECK_FUNCS(jack_midi_get_event_count)
333            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jack/midiport.h>]], [[
334                jack_midi_clear_buffer(0, 0);
335            ]])], [AC_DEFINE(JACK_MIDI_FUNCS_NEED_NFRAMES, 1,
336                      [Define to 1 if you have the old jack midi functions that need an nframes argument.])])
337            have_midi_input_driver="true"
338        fi
339        CFLAGS=$linuxsampler_save_CFLAGS
340        LIBS=$linuxsampler_save_LIBS
341    fi
342    AM_CONDITIONAL(HAVE_JACK_MIDI, test $have_jack_midi = "1")
343    AC_DEFINE_UNQUOTED(HAVE_JACK_MIDI, $have_jack_midi,
344                       [Define to 1 if you have JACK with MIDI support installed.])
345    config_have_jack_midi="no"
346    if test $have_jack_midi = "1"; then
347        config_have_jack_midi="yes"
348    fi
349    
350    # ARTS
351    AC_ARG_ENABLE(arts-driver,
352      [  --disable-arts-driver
353                              Disable support for the Analogue Realtime System
354                              (aRts).],
355      [config_arts_driver="$enableval"],
356      [config_arts_driver="yes"]
357    )
358    have_arts=0
359    if test "$config_arts_driver" = "yes"; then
360        m4_ifdef([m4_include(m4/arts.m4)],,
361                 [sinclude([m4/arts.m4])])
362        AM_PATH_ARTS(0.9.5, have_arts=1, have_arts=0)
363        if test "$have_arts" = "1"; then
364            have_audio_output_driver="true"
365        fi
366    else
367        echo "ARTS support disabled by configure script parameter"
368    fi
369    AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1")
370    AC_DEFINE_UNQUOTED(HAVE_ARTS,$have_arts,[Define to 1 if you have aRts installed.])
371    config_have_arts="no"
372    if test $have_arts = "1"; then
373        config_have_arts="yes"
374    fi
375    
376    # ASIO AUDIO (Win32)
377    AC_ARG_ENABLE(asiosdk-dir,
378      [  --enable-asiosdk-dir
379                              Directory where the ASIO SDK is located, this automatically
380                              enables the compilation of the ASIO audio output driver.],
381      [config_asiosdk_dir="${enableval}"],
382      [config_asiosdk_dir="."]
383    )
384    AC_SUBST(config_asiosdk_dir)
385    
386    AC_ARG_ENABLE(asio-driver,
387      [  --disable-asio-driver
388                              Disable support for the Windows ASIO driver.],
389      [config_asio_driver="$enableval"],
390      [config_asio_driver="yes"]
391    )
392    have_asio=0
393    ASIOSDK_BASEDIR=
394    if test "$config_asio_driver" = "yes"; then
395        asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h
396        echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...."
397        if test -e $asiosdk_headerfile ; then
398            echo yes
399            have_asio=1
400            ASIOSDK_BASEDIR="$config_asiosdk_dir"
401        else
402            echo no
403            have_asio=0
404        fi
405        if test "$have_asio" = "1"; then
406            have_audio_output_driver="true"
407        fi
408    else
409        echo "Windows ASIO support disabled by configure script parameter"
410    fi
411    AC_SUBST(ASIOSDK_BASEDIR)
412    AM_CONDITIONAL(HAVE_ASIO, test $have_asio = "1")
413    AC_DEFINE_UNQUOTED(HAVE_ASIO,$have_asio,[Define to 1 if you have ASIO installed.])
414    config_have_asio="no"
415    if test $have_asio = "1"; then
416        config_have_asio="yes"
417  fi  fi
 AM_CONDITIONAL(HAVE_JACK, test $HAVE_JACK = 1)  
 AC_DEFINE_UNQUOTED(HAVE_JACK,$HAVE_JACK,[Define to 1 if you have JACK installed.])  
418    
419  # MidiShare (Linux, OS X, Windows)  # MidiShare (Linux, OS X, Windows)
420  AC_CHECK_HEADER(MidiShare.h,  AC_ARG_ENABLE(midishare-driver,
421      AC_CHECK_LIB(MidiShare, MidiCountEvs,    [  --disable-midishare-driver
422                              have_midishare=1,                            Disable support for the MidiShare system.],
423                              have_midishare=0    [config_midishare_driver="$enableval"],
424                  )    [config_midishare_driver="yes"]
425                  ,  )
426                  have_midishare=0  have_midishare=0
427  )  if test "$config_midishare_driver" = "yes"; then
428  if test "$have_midishare" = "1"; then      AC_CHECK_HEADER(MidiShare.h,
429      have_midi_input_driver="true"          AC_CHECK_LIB(MidiShare, MidiCountEvs,
430                                    have_midishare=1,
431                                    have_midishare=0
432                        )
433                        ,
434                        have_midishare=0
435        )
436        if test "$have_midishare" = "1"; then
437            have_midi_input_driver="true"
438        fi
439    else
440        echo "MidiShare support disabled by configure script parameter"
441  fi  fi
442  AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")  AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
443  AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])  AC_DEFINE_UNQUOTED(HAVE_MIDISHARE,$have_midishare,[Define to 1 if you have MidiShare installed.])
444    config_have_midishare="no"
445    if test $have_midishare = "1"; then
446        config_have_midishare="yes"
447    fi
448    
449  # CoreMIDI (OS X)  # CoreMIDI (OS X)
450  AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,  AC_ARG_ENABLE(coremidi-driver,
451                  have_coremidi=1,    [  --disable-coremidi-driver
452                  have_coremidi=0                            Disable support for the Apple CoreMIDI system.],
453  )    [config_coremidi_driver="$enableval"],
454  if test "$have_coremidi" = "1"; then    [config_coremidi_driver="yes"]
455      have_midi_input_driver="true"  )
456    have_coremidi=0
457    if test "$config_coremidi_driver" = "yes"; then
458        AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
459            have_coremidi=1,
460            have_coremidi=0
461        )
462        if test "$have_coremidi" = "1"; then
463            have_midi_input_driver="true"
464        fi
465    else
466        echo "CoreMIDI support disabled by configure script parameter"
467  fi  fi
468  AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")  AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
469  AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])  AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.])
470    config_have_coremidi="no"
471    if test $have_coremidi = "1"; then
472        config_have_coremidi="yes"
473    fi
474    
475  # Check presence of libgig  # CoreAudio (OS X)
476  libgig_version="2.0.1"  AC_ARG_ENABLE(coreaudio-driver,
477  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)    [  --disable-coreaudio-driver
478  if test "$HAVE_GIG" = "false"; then                            Disable support for the Apple CoreAudio system.],
479      echo "Required libgig version not found!"    [config_coreaudio_driver="$enableval"],
480      echo "You need to have libgig version ${libgig_version} installed!"    [config_coreaudio_driver="yes"]
481      exit -1;  )
482    have_coreaudio=0
483    if test "$config_coreaudio_driver" = "yes"; then
484        AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
485            have_coreaudio=1,
486            have_coreaudio=0
487        )
488        if test "$have_coreaudio" = "1"; then
489            have_audio_output_driver="true"
490        fi
491    else
492        echo "CoreAudio support disabled by configure script parameter"
493    fi
494    AM_CONDITIONAL(HAVE_COREAUDIO, test $have_coreaudio = "1")
495    AC_DEFINE_UNQUOTED(HAVE_COREAUDIO,$have_coreaudio,[Define to 1 if you have CoreAudio installed.])
496    config_have_coreaudio="no"
497    if test $have_coreaudio = "1"; then
498        config_have_coreaudio="yes"
499  fi  fi
 AC_SUBST(GIG_CFLAGS)  
 AC_SUBST(GIG_LIBS)  
500    
501  # SQLITE3  # MME MIDI (Win32)
502  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)  AC_ARG_ENABLE(mmemidi-driver,
503  AC_SUBST(SQLITE3_LIBS)    [  --disable-mmemidi-driver
504  AC_SUBST(SQLITE3_CFLAGS)                            Disable support for the Windows MME MIDI system.],
505  if test $HAVE_SQLITE3 = false; then    [config_mmemidi_driver="$enableval"],
506      HAVE_SQLITE3=0;    [config_mmemidi_driver="yes"]
507    )
508    have_mmemidi=0
509    if test "$config_mmemidi_driver" = "yes"; then
510        AC_CHECK_HEADERS(mmsystem.h,
511            have_mmemidi=1,
512            have_mmemidi=0
513        )
514        if test "$have_mmemidi" = "1"; then
515            have_midi_input_driver="true"
516        fi
517  else  else
518      HAVE_SQLITE3=1      echo "MME MIDI support disabled by configure script parameter"
519    fi
520    AM_CONDITIONAL(HAVE_MME_MIDI, test $have_mmemidi = "1")
521    AC_DEFINE_UNQUOTED(HAVE_MME_MIDI,$have_mmemidi,[Define to 1 if you have MME MIDI installed.])
522    config_have_mme="no"
523    if test $have_mmemidi = "1"; then
524        config_have_mme="yes"
525  fi  fi
 AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)  
 AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you have SQLITE3 installed.])  
526    
527    # DSSI
528    AC_CHECK_HEADERS(dssi.h,
529            config_have_dssi="yes",
530            config_have_dssi="no")
531    AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes")
532    
533    # LV2
534    PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no")
535    AC_SUBST(LV2_CFLAGS)
536    AC_SUBST(LV2_LIBS)
537    AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes")
538    
539    # VST
540    AC_ARG_ENABLE(vstsdk-dir,
541      [  --enable-vstsdk-dir
542                              Directory where the VST SDK is located.
543                              This automatically enables the compilation
544                              of the VST plugin.],
545      [VSTSDK_DIR="${enableval}"],
546      [VSTSDK_DIR=]
547    )
548    AC_SUBST(VSTSDK_DIR)
549    AM_CONDITIONAL(HAVE_VST, test "x$VSTSDK_DIR" != "x")
550    config_have_vst="no"
551    if test "x$VSTSDK_DIR" != "x"; then
552        config_have_vst="yes"
553    fi
554    
555    # AU
556    AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
557            config_have_au="yes",
558            config_have_au="no")
559    AM_CONDITIONAL(HAVE_AU, test $config_have_au = "yes")
560    AM_CONDITIONAL(HAVE_AUFLAGS, test "$AUFLAGS" != "")
561    
562    if test $config_have_au = "yes" ; then
563        if test "x$DEVELOPER_EXTRAS_DIR" = "x" ; then
564            if test -d /Developer/Extras ; then
565                DEVELOPER_EXTRAS_DIR=/Developer/Extras
566            else      
567                DEVELOPER_EXTRAS_DIR=/Developer/Examples
568            fi
569        fi
570        AC_SUBST(DEVELOPER_EXTRAS_DIR)
571    fi
572    
573    if test "x$MAC_PLUGIN_INSTALL_DIR" = "x" ; then
574        MAC_PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins
575    fi
576    AC_SUBST(MAC_PLUGIN_INSTALL_DIR)
577    
578    # have we found at least one MIDI input and one audio output driver ?
579  if test "$have_midi_input_driver" = "false"; then  if test "$have_midi_input_driver" = "false"; then
580      echo "No supported MIDI input system found!"      echo "No supported MIDI input system found!"
581      echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"      echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"
582      echo "ALSA, MIDIShare, CoreMIDI."      echo "ALSA, JACK, MIDIShare, CoreMIDI, MME."
583      echo "If you think you have one of those available on your system, make sure you"      echo "If you think you have one of those available on your system, make sure you"
584      echo "also have the respective development (header) files installed."      echo "also have the respective development (header) files installed."
585      exit -1;      exit -1;
586  fi  fi
587  if test "$have_audio_output_driver" = "false"; then  if test "$have_audio_output_driver" = "false"; then
588      echo "No supported audio output system found!"      echo "No supported audio output system found!"
589      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"
590        echo "driver at the moment!"
591        exit -1;
592    fi
593    
594    
595    
596    ###########################################################################
597    # Checks for various DLL libraries
598    
599    # Check presence of libgig
600    libgig_version="3.3.0"
601    PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
602    if test "$HAVE_GIG" = "false"; then
603        echo "Required libgig version not found!"
604        echo "You need to have libgig version ${libgig_version} installed!"
605        exit -1;
606    else
607        echo "yes, found libgig $libgig_version"
608    fi
609    AC_SUBST(GIG_CFLAGS)
610    AC_SUBST(GIG_LIBS)
611    
612    # SF2 Engine (requires libgig)
613    AC_ARG_ENABLE(sf2-engine,
614      [  --disable-sf2-engine
615                              Disable compilation of the SF2 engine.
616                              You need to have libgig installed.],
617      [config_sf2_engine="$enableval"],
618      [config_sf2_engine="yes"]
619    )
620    HAVE_SF2=0;
621    if test "$config_sf2_engine" = "yes"; then
622        HAVE_SF2=1
623    else
624        echo "SF2 engine disabled by configure script parameter"
625    fi
626    AM_CONDITIONAL(HAVE_SF2, test $HAVE_SF2 = 1)
627    AC_DEFINE_UNQUOTED(HAVE_SF2,$HAVE_SF2,[Define to 1 if you want SF2 engine and have libsf2 installed.])
628    config_have_sf2="no"
629    if test $HAVE_SF2 = "1"; then
630        config_have_sf2="yes"
631    fi
632    
633    # Check presence of libsndfile
634    libsndfile_version="1.0"
635    PKG_CHECK_MODULES(SNDFILE, sndfile >= $libsndfile_version, HAVE_SNDFILE=true, HAVE_SNDFILE=false)
636    if test "$HAVE_SNDFILE" = "false"; then
637        echo "Required libsndfile version not found!"
638        echo "You need to have libsndfile version ${libsndfile_version} installed!"
639      exit -1;      exit -1;
640    else
641        echo "yes, found libsndfile $libsndfile_version"
642  fi  fi
643    AC_SUBST(SNDFILE_CFLAGS)
644    AC_SUBST(SNDFILE_LIBS)
645    
646    # Check for Vorbis and FLAC support in libsndfile
647    linuxsampler_save_CFLAGS=$CFLAGS
648    CFLAGS="$SNDFILE_CFLAGS $CFLAGS"
649    AC_CHECK_DECLS([SF_FORMAT_VORBIS, SF_FORMAT_FLAC], [], [], [[#include <sndfile.h>]])
650    
651    # Check for loop functionality in libsndfile
652    AC_CHECK_MEMBERS([SF_INSTRUMENT.loops],,
653                     [AC_MSG_WARN([Your version of libsndfile does not support
654        reading of loop information. LinuxSampler will not be able to
655        extract loop information from sample files.])],
656                     [#include <sndfile.h>])
657    CFLAGS=$linuxsampler_save_CFLAGS
658    
659    # Instruments DB feature (requires SQLite 3.3)
660    AC_ARG_ENABLE(instruments-db,
661      [  --disable-instruments-db
662                              Disable compilation of the sampler's instruments
663                              database feature. You need to have SQLite 3.3
664                              or younger installed for this feature.],
665      [config_instruments_db="$enableval"],
666      [config_instruments_db="yes"]
667    )
668    HAVE_SQLITE3=0;
669    if test "$config_instruments_db" = "yes"; then
670        # Check presence of sqlite3
671        sqlite_version="3.3"
672        PKG_CHECK_MODULES(SQLITE3, sqlite3 >= $sqlite_version, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
673        AC_SUBST(SQLITE3_LIBS)
674        AC_SUBST(SQLITE3_CFLAGS)
675        if test $HAVE_SQLITE3 = false; then
676            HAVE_SQLITE3=0
677            config_instruments_db="no"
678            echo "*** Required sqlite version not found!"
679            echo "*** You need to have sqlite version ${sqlite_version} or higher"
680            echo "*** for instruments database support to be enabled."
681            echo "*** Support for instruments DB will be disabled!"
682        else
683            HAVE_SQLITE3=1
684        fi
685    else
686        echo "Instruments DB feature disabled by configure script parameter"
687    fi
688    AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
689    AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you want the instruments DB feature and have SQLITE3 installed.])
690    
691    
692    
693  ###########################################################################  ###########################################################################
# Line 221  fi Line 697  fi
697    
698  AC_ARG_ENABLE(asm,  AC_ARG_ENABLE(asm,
699    [  --disable-asm    [  --disable-asm
700                            Disable hand-crafted assembly optimizations                            Enable hand-crafted assembly optimizations
701                            (default=on). LinuxSampler provides CPU specific                            (default=on). LinuxSampler provides CPU specific
702                            assembly optimizations for the most important                            assembly optimizations. This is currently limited
703                            synthesis algorithms. You usually don't want to                            to just enter a fast (denormal) FPU mode on x86
704                            diable that.],                            platforms. There are currently no synthesis core
705    [config_asm="no"],                            assembly optimizations anymore since LS 0.4.0],
706      [config_asm="$enableval"],
707    [config_asm="yes"]    [config_asm="yes"]
708  )  )
709  if test "$config_asm" = "yes"; then  if test "$config_asm" = "yes"; then
710    AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable hand-crafted asm optimizations.])    AC_DEFINE_UNQUOTED(CONFIG_ASM, 1, [Define to 1 if you want to enable asm optimizations.])
711  fi  fi
712    
713  AC_ARG_ENABLE(dev-mode,  AC_ARG_ENABLE(dev-mode,
714    [  --enable-dev-mode    [  --enable-dev-mode
715                            Enable development mode (default=no). In that mode                            Enable development mode (default=off). In that mode
716                            we do some extra sanity checks here and there.                            we do some extra sanity checks here and there.
717                            This helps to spot possible problems, but reduces                            This helps to spot possible problems, but reduces
718                            efficiency a bit],                            efficiency a bit],
719    [config_dev_mode="yes"],    [config_dev_mode="$enableval"],
720    [config_dev_mode="no"]    [config_dev_mode="no"]
721  )  )
722  if test "$config_dev_mode" = "yes"; then  if test "$config_dev_mode" = "yes"; then
# Line 267  AC_ARG_ENABLE(rt-exceptions, Line 744  AC_ARG_ENABLE(rt-exceptions,
744                            context as well. Otherwise if disabled                            context as well. Otherwise if disabled
745                            segmentation faults will be forced by the                            segmentation faults will be forced by the
746                            application on critical errors.],                            application on critical errors.],
747    [config_rt_exceptions="yes"],    [config_rt_exceptions="$enableval"],
748    [config_rt_exceptions="no"]    [config_rt_exceptions="no"]
749  )  )
750  if test "$config_rt_exceptions" = "yes"; then  if test "$config_rt_exceptions" = "yes"; then
751    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.])
752  fi  fi
753    
754    config_pthread_testcancel="$mac"
755    AC_ARG_ENABLE(pthread-testcancel,
756      [  --enable-pthread-testcancel
757                              Enable pthread_testcancel() calls and avoid
758                              asynchronous cancel of pthreads (default=yes
759                              for Mac targets, no otherwise).],
760      [config_pthread_testcancel="$enableval"],
761      [])
762    if test "$config_pthread_testcancel" = "yes"; then
763      AC_DEFINE_UNQUOTED(CONFIG_PTHREAD_TESTCANCEL, 1, [Define to 1 to enable pthread_testcancel() calls.])
764    fi
765    
766  AC_ARG_ENABLE(preload-samples,  AC_ARG_ENABLE(preload-samples,
767    [  --enable-preload-samples    [  --enable-preload-samples
768                            Due to seeking and latency issues with hard drives                            Due to seeking and latency issues with hard drives
# Line 379  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_ Line 868  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_
868    
869  AC_ARG_ENABLE(max-streams,  AC_ARG_ENABLE(max-streams,
870    [  --enable-max-streams    [  --enable-max-streams
871                            Maximum amount of disk streams (default=90). This                            Initial maximum amount of disk streams
872                            value should always be higher than the maximum                            (default=90). This value can be changed at
873                            amount of voices.],                            runtime. It should always be higher than the
874                              maximum amount of voices.],
875    [config_max_streams="${enableval}"],    [config_max_streams="${enableval}"],
876    [config_max_streams="90"]    [config_max_streams="90"]
877  )  )
878  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.])
879    
880  AC_ARG_ENABLE(max-voices,  AC_ARG_ENABLE(max-voices,
881    [  --enable-max-voices    [  --enable-max-voices
882                            Maximum amount of voices (default=64). This value                            Initial maximum amount of voices (default=64).
883                            should always be lower than the maximum amount of                            This value can be changed at runtime. It should
884                            disk streams.],                            always be lower than the maximum amount of disk
885                              streams.],
886    [config_max_voices="${enableval}"],    [config_max_voices="${enableval}"],
887    [config_max_voices="64"]    [config_max_voices="64"]
888  )  )
889  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.])
890    
891    AC_ARG_ENABLE(subfragment-size,
892      [  --enable-subfragment-size
893                              Every audio fragment will be splitted into
894                              subfragments. Where each subfragment renders
895                              audio with constant synthesis parameters. This is
896                              done for efficiency reasons. This parameter
897                              defines the default size of a subfragment in
898                              sample points. A large value means less CPU time
899                              whereas a low value means better audio quality
900                              (default=32).],
901      [config_subfragment_size="${enableval}"],
902      [config_subfragment_size="32"]
903    )
904    AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])
905    
906    AC_ARG_ENABLE(global-attenuation-default,
907      [  --enable-global-attenuation-default
908                              To prevent clipping all samples will be lowered
909                              in amplitude by this given default factor (can
910                              be overridden at runtime).
911                              (default=0.35)],
912      [config_global_attenuation_default="${enableval}"],
913      [config_global_attenuation_default="0.35"]
914    )
915    AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION_DEFAULT, $config_global_attenuation_default, [Define default global volume attenuation (as floating point factor).])
916    
917  AC_ARG_ENABLE(voice-steal-algo,  AC_ARG_ENABLE(voice-steal-algo,
918    [  --enable-voice-steal-algo    [  --enable-voice-steal-algo
# Line 430  AC_ARG_ENABLE(sysex-buffer-size, Line 947  AC_ARG_ENABLE(sysex-buffer-size,
947  )  )
948  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.])
949    
 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.])  
   
950  AC_ARG_ENABLE(force-filter,  AC_ARG_ENABLE(force-filter,
951    [  --enable-force-filter    [  --enable-force-filter
952                            If enabled will force filter to be used even if                            If enabled will force filter to be used even if
953                            no usage was define in instrument patch files.                            no usage was define in instrument patch files.
954                            (default=no).],                            (default=no).],
955    [config_force_filter="yes"],    [config_force_filter="$enableval"],
956    [config_force_filter="no"]    [config_force_filter="no"]
957  )  )
958  if test "$config_force_filter" = "yes"; then  if test "$config_force_filter" = "yes"; then
# Line 537  AC_ARG_ENABLE(gs-checksum, Line 1042  AC_ARG_ENABLE(gs-checksum,
1042                            messages which do not provide a correct checksum                            messages which do not provide a correct checksum
1043                            will be ignored. This is disabled by default as                            will be ignored. This is disabled by default as
1044                            not all devices honor GS checksums.],                            not all devices honor GS checksums.],
1045    [config_assert_gs_sysex_checksum="yes"],    [config_assert_gs_sysex_checksum="$enableval"],
1046    [config_assert_gs_sysex_checksum="no"]    [config_assert_gs_sysex_checksum="no"]
1047  )  )
1048  if test "config_assert_gs_sysex_checksum" = "yes"; then  if test "config_assert_gs_sysex_checksum" = "yes"; then
1049    AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])    AC_DEFINE_UNQUOTED(CONFIG_ASSERT_GS_SYSEX_CHECKSUM, 1, [Define to 1 if you want to enable GS SysEx check.])
1050  fi  fi
1051    
1052    AC_ARG_ENABLE(portamento-time-min,
1053      [  --enable-portamento-time-min
1054                              Minimum Portamento time in seconds
1055                              (default=0.1).],
1056      [config_portamento_time_min="${enableval}"],
1057      [config_portamento_time_min="0.1"]
1058    )
1059    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MIN, $config_portamento_time_min, [Define min. portamento time.])
1060    
1061    AC_ARG_ENABLE(portamento-time-max,
1062      [  --enable-portamento-time-max
1063                              Maximum Portamento time in seconds
1064                              (default=32).],
1065      [config_portamento_time_max="${enableval}"],
1066      [config_portamento_time_max="32"]
1067    )
1068    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_MAX, $config_portamento_time_max, [Define max. portamento time.])
1069    
1070    AC_ARG_ENABLE(portamento-time-default,
1071      [  --enable-portamento-time-default
1072                              Default Portamento time in seconds
1073                              (default=1).],
1074      [config_portamento_time_default="${enableval}"],
1075      [config_portamento_time_default="1"]
1076    )
1077    AC_DEFINE_UNQUOTED(CONFIG_PORTAMENTO_TIME_DEFAULT, $config_portamento_time_default, [Define default portamento time.])
1078    
1079    AC_ARG_ENABLE(signed-triang-algo,
1080      [  --enable-signed-triang-algo
1081                              Signed triangular wave algorithm to be used (e.g. for LFOs).
1082                              Currently available options:
1083                                intmath:
1084                                  Uses integer math without any branch will then be
1085                                  converted to floating point value for each sample point.
1086                                  This int->float conversion might hurt on some systems.
1087                                intmathabs:
1088                                  Similar to intmath but uses abs() function.
1089                                  Depending on compiler and platrofm this could
1090                                  perform better than integer math as it avoids
1091                                  an extra integer multiply instruction.
1092                                diharmonic:
1093                                  The triangular wave will be approximated by adding two
1094                                  sinusoidials. This solution might especially hurt on
1095                                  systems with weak floating point unit.
1096                                benchmark (default):
1097                                  This is not an algorithm. Use this option if the
1098                                  appropriate algorithm should be automatically
1099                                  chosen by the configure script by performing a
1100                                  benchmark between the algorithms mentioned above.
1101                                  This will NOT work for cross compilation!],
1102      [ if test ! "(" "${enableval}" = "intmath" \
1103                  -o "${enableval}" = "intmathabs" \
1104                  -o "${enableval}" = "diharmonic" ")" ; then
1105          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-signed-triang-algo])
1106        else
1107          config_signed_triang_algo="${enableval}"
1108        fi
1109      ],
1110      [config_signed_triang_algo="benchmark"]
1111    )
1112    
1113    AC_ARG_ENABLE(unsigned-triang-algo,
1114      [  --enable-unsigned-triang-algo
1115                              Unsigned triangular wave algorithm to be used (e.g. for LFOs).
1116                              Currently available options:
1117                                intmath:
1118                                  Uses integer math without any branch will then be
1119                                  converted to floating point value for each sample point.
1120                                  This int->float conversion might hurt on some systems.
1121                                intmathabs:
1122                                  Similar to intmath but uses abs() function.
1123                                  Depending on compiler and platrofm this could
1124                                  perform better than integer math as it avoids
1125                                  an extra integer multiply instruction.
1126                                diharmonic:
1127                                  The triangular wave will be approximated by adding two
1128                                  sinusoidials. This solution might especially hurt on
1129                                  systems with weak floating point unit.
1130                                benchmark (default):
1131                                  This is not an algorithm. Use this option if the
1132                                  appropriate algorithm should be automatically
1133                                  chosen by the configure script by performing a
1134                                  benchmark between the algorithms mentioned above.
1135                                  This will NOT work for cross compilation!],
1136      [ if test ! "(" "${enableval}" = "intmath" \
1137                  -o "${enableval}" = "intmathabs" \
1138                  -o "${enableval}" = "diharmonic" ")" ; then
1139          AC_MSG_ERROR([Unknown triangular wave algorithm for parameter --enable-unsigned-triang-algo])
1140        else
1141          config_unsigned_triang_algo="${enableval}"
1142        fi
1143      ],
1144      [config_unsigned_triang_algo="benchmark"]
1145    )
1146    
1147    AC_ARG_ENABLE(process-muted-channels,
1148      [  --enable-process-muted-channels
1149                              Enable processing of muted channels (default=no).
1150                              In that mode all MIDI events in the muted channels
1151                              will be processed. This will provide information
1152                              about the active voices in the muted channels and
1153                              will not discard notes, triggered in mute mode,
1154                              when the channel is unmuted. But also will reduce
1155                              the efficiency.],
1156      [config_process_muted_channels="$enableval"],
1157      [config_process_muted_channels="no"]
1158    )
1159    if test "$config_process_muted_channels" = "yes"; then
1160      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
1161    fi
1162    
1163    AC_ARG_ENABLE(process-all-notes-off,
1164      [  --disable-process-all-notes-off
1165                              Disable interpretation of All-Notes-Off MIDI
1166                              messages (default=on). By default LS will release
1167                              all voices whenever it receives an All-Notes-Off
1168                              MIDI message. You can disable this behavior, so
1169                              that LS simply ignores such messages.],
1170      [config_process_all_notes_off="$enableval"],
1171      [config_process_all_notes_off="yes"]
1172    )
1173    if test "$config_process_all_notes_off" = "yes"; then
1174      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_ALL_NOTES_OFF, 1, [Define to 1 if you want to enable processing of All-Notes-Off MIDI messages.])
1175    fi
1176    
1177    AC_ARG_ENABLE(interpolate-volume,
1178      [  --disable-interpolate-volume
1179                              Disable interpolation of volume modulation
1180                              (default=on). With this enabled, the volume changes
1181                              generated by for example the envelope generator
1182                              will be smoother, minimizing the risk for audio
1183                              clicks. Disable it to reduce CPU usage.],
1184      [config_interpolate_volume="$enableval"],
1185      [config_interpolate_volume="yes"]
1186    )
1187    if test "$config_interpolate_volume" = "yes"; then
1188      AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.])
1189    fi
1190    
1191    AC_ARG_ENABLE(master-volume-sysex-by-port,
1192      [  --enable-master-volume-sysex-by-port
1193                              Whether global volume sysex message should be
1194                              applied globally to the whole sampler or only to
1195                              the sampler channels connected to the same MIDI
1196                              input port on which the sysex message arrived on.
1197                              By default global volume sysex messages apply
1198                              globally to the whole sampler, since many MIDI
1199                              devices behave that way.],
1200      [config_master_volume_sysex_by_port="$enableval"],
1201      [config_master_volume_sysex_by_port="no"]
1202    )
1203    if test "$config_master_volume_sysex_by_port" = "yes"; then
1204      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.])
1205    fi
1206    
1207    AC_ARG_ENABLE(plugin-dir,
1208      [  --enable-plugin-dir
1209                              Directory where the sampler shall look for potential plugins,
1210                              that is 3rd party shared libraries that should be loaded by
1211                              the sampler on startup. By default the sampler will search
1212                              for plugins in the subdirectory "plugins" below its own
1213                              library directory.
1214                              (i.e. /usr/local/lib/linuxsampler/plugins)],
1215      [config_plugin_dir="${enableval}"],
1216      [config_plugin_dir="${libdir}/linuxsampler/plugins"]
1217    )
1218    AC_SUBST(config_plugin_dir)
1219    
1220    AC_ARG_ENABLE(default-instruments-db-location,
1221      [  --enable-default-instruments-db-location
1222                              Only when instruments DB feature is enabled: file name
1223                              which shall be taken as default location of the
1224                              instruments DB file. This location can still be
1225                              overridden at runtime with a command line switch.
1226                              (default: /var/lib/linuxsampler/instruments.db)],
1227      [config_default_instruments_db_file="${enableval}"],
1228      [config_default_instruments_db_file="/var/lib/linuxsampler/instruments.db"]
1229    )
1230    AC_DEFINE_UNQUOTED(
1231        CONFIG_DEFAULT_INSTRUMENTS_DB_LOCATION,
1232        "$config_default_instruments_db_file",
1233        [Only when instruments DB feature is enabled: default location of the DB file.]
1234    )
1235    AC_SUBST(config_default_instruments_db_file)
1236    
1237    
1238    ###########################################################################
1239    # Automatic Benchmarks (to detect the best algorithms for the system)
1240    
1241    if test "$config_signed_triang_algo" = "benchmark"; then
1242        echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
1243        AC_LANG_PUSH([C++])
1244        AC_RUN_IFELSE([AC_LANG_SOURCE([[
1245                #define SIGNED 1
1246                #define SILENT 1
1247                #include "${srcdir}/benchmarks/triang.cpp"
1248            ]])],
1249            triang_signed=0,
1250            triang_signed=$?,
1251            triang_signed=0
1252        )
1253        AC_LANG_POP([C++])
1254        if test "$triang_signed" = "2"; then
1255            config_signed_triang_algo="intmath"
1256            echo "integer math"
1257        elif test "$triang_signed" = "3"; then
1258            config_signed_triang_algo="diharmonic"
1259            echo "di harmonics"
1260        elif test "$triang_signed" = "5"; then
1261            config_signed_triang_algo="intmathabs"
1262            echo "integer math using abs()"
1263        else
1264            echo "Benchmark of signed triangular wave algorithms failed!"
1265            echo "Maybe you are doing cross compilation? In that case you have to select"
1266            echo "an algorithm manually with './configure --enable-signed-triang-algo=...'"
1267            echo "Call './configure --help' for further information or read configure.in."
1268            exit -1;
1269        fi
1270    else
1271        case "$config_signed_triang_algo" in
1272            intmath)
1273                triang_signed=2 ;;
1274            diharmonic)
1275                triang_signed=3 ;;
1276            intmathabs)
1277                triang_signed=5 ;;
1278        esac
1279    fi
1280    AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
1281    
1282    if test "$config_unsigned_triang_algo" = "benchmark"; then
1283        echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
1284        AC_LANG_PUSH([C++])
1285        AC_RUN_IFELSE([AC_LANG_SOURCE([[
1286                #define SIGNED 0
1287                #define SILENT 1
1288                #include "${srcdir}/benchmarks/triang.cpp"
1289            ]])],
1290            triang_unsigned=0,
1291            triang_unsigned=$?,
1292            triang_unsigned=0
1293        )
1294        AC_LANG_POP([C++])
1295        if test "$triang_unsigned" = "2"; then
1296            config_unsigned_triang_algo="intmath"
1297            echo "integer math"
1298        elif test "$triang_unsigned" = "3"; then
1299            config_unsigned_triang_algo="diharmonic"
1300            echo "di harmonics"
1301        elif test "$triang_unsigned" = "5"; then
1302            config_unsigned_triang_algo="intmathabs"
1303            echo "integer math using abs()"
1304        else
1305            echo "Benchmark of unsigned triangular wave algorithms failed!"
1306            echo "Maybe you are doing cross compilation? In that case you have to select"
1307            echo "an algorithm manually with './configure --enable-unsigned-triang-algo=...'"
1308            echo "Call './configure --help' for further information or read configure.in."
1309            exit -1;
1310        fi
1311    else
1312        case "$config_unsigned_triang_algo" in
1313            intmath)
1314                triang_unsigned=2 ;;
1315            diharmonic)
1316                triang_unsigned=3 ;;
1317            intmathabs)
1318                triang_unsigned=5 ;;
1319        esac
1320    fi
1321    AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
1322    
1323    
1324  ###########################################################################  ###########################################################################
1325  # Create Build Files  # Create Build Files
1326    
1327  AM_CONFIG_HEADER(config.h)  AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE(linuxsampler, 0.3.2)  
1328    
1329  AC_LANG_CPLUSPLUS  AC_LANG([C++])
 AC_PROG_CXX  
1330    
1331  # 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
1332  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
1333  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
1334    
1335  AM_PROG_LIBTOOL  AC_CONFIG_FILES([\
   
 AC_OUTPUT( \  
1336      Makefile \      Makefile \
1337      man/Makefile \      man/Makefile \
1338      man/linuxsampler.1 \      man/linuxsampler.1 \
1339        man/lscp.1 \
1340      src/Makefile \      src/Makefile \
1341        src/db/Makefile \
1342      src/network/Makefile \      src/network/Makefile \
1343      src/engines/Makefile \      src/engines/Makefile \
1344      src/engines/gig/Makefile \      src/engines/gig/Makefile \
1345        src/engines/sf2/Makefile \
1346        src/engines/sfz/Makefile \
1347      src/engines/common/Makefile \      src/engines/common/Makefile \
1348      src/common/Makefile src/lib/Makefile \      src/effects/Makefile \
1349      src/lib/fileloader/Makefile \      src/common/Makefile \
     src/lib/fileloader/libgig/Makefile \  
1350      src/testcases/Makefile \      src/testcases/Makefile \
1351      src/drivers/Makefile \      src/drivers/Makefile \
1352      src/drivers/audio/Makefile \      src/drivers/audio/Makefile \
1353      src/drivers/midi/Makefile \      src/drivers/midi/Makefile \
1354        src/plugins/Makefile \
1355        src/hostplugins/Makefile \
1356        src/hostplugins/dssi/Makefile \
1357        src/hostplugins/lv2/Makefile \
1358        src/hostplugins/lv2/manifest.ttl \
1359        src/hostplugins/vst/Makefile \
1360        src/hostplugins/au/Makefile \
1361        src/shell/Makefile \
1362      linuxsampler.spec \      linuxsampler.spec \
1363      debian/Makefile \      debian/Makefile \
1364      Artwork/Makefile \      Artwork/Makefile \
1365      scripts/Makefile \      scripts/Makefile \
1366      osx/Makefile \      osx/Makefile \
1367      osx/LinuxSampler.xcode/Makefile \      osx/linuxsampler.xcodeproj/Makefile \
1368      Documentation/Makefile \      Documentation/Makefile \
1369      Documentation/Engines/Makefile \      Documentation/Engines/Makefile \
1370      Documentation/Engines/gig/Makefile \      Documentation/Engines/gig/Makefile \
1371  )      linuxsampler.pc \
1372        Doxyfile \
1373    ])
1374    AC_OUTPUT
1375    
1376    # resolve all nested variables in '${config_plugin_dir}'
1377    # (merely for providing a human readable summary below)
1378    while test $config_plugin_dir != `eval echo ${config_plugin_dir}` ; do
1379            config_plugin_dir=`eval echo ${config_plugin_dir}`
1380    done
1381    
1382    
1383  ###########################################################################  ###########################################################################
# Line 595  echo "" Line 1387  echo ""
1387  echo "#####################################################################"  echo "#####################################################################"
1388  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
1389  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1390    echo "# Release Version: ${VERSION}"
1391    echo "# LSCP Version: ${LSCP_RELEASE_MAJOR}.${LSCP_RELEASE_MINOR}"
1392    echo "#-------------------------------------------------------------------"
1393  echo "# Assembly Optimizations: ${config_asm}"  echo "# Assembly Optimizations: ${config_asm}"
1394  echo "# Development Mode: ${config_dev_mode}"  echo "# Development Mode: ${config_dev_mode}"
1395  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
# Line 608  echo "# Streams to be refilled per Disk Line 1403  echo "# Streams to be refilled per Disk
1403  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
1404  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
1405  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
1406  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Default Maximum Disk Streams: ${config_max_streams}"
1407  echo "# Maximum Voices: ${config_max_voices}"  echo "# Default Maximum Voices: ${config_max_voices}"
1408    echo "# Default Subfragment Size: ${config_subfragment_size}"
1409    echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}"
1410  echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"  echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
1411    echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
1412    echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
1413  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"  echo "# SysEx Buffer Size: ${config_sysex_buffer_size} Byte"
1414  echo "# Filter Update Steps: ${config_filter_update_steps}"  echo "# Min. Portamento Time: ${config_portamento_time_min} s"
1415    echo "# Max. Portamento Time: ${config_portamento_time_max} s"
1416    echo "# Default Portamento Time: ${config_portamento_time_default} s"
1417  echo "# Force Filter Usage: ${config_force_filter}"  echo "# Force Filter Usage: ${config_force_filter}"
1418  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"  echo "# Filter Cutoff Minimum: ${config_filter_cutoff_min} Hz"
1419  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"  echo "# Filter Cutoff Maximum: ${config_filter_cutoff_max} Hz"
# Line 620  echo "# Override Filter Cutoff Controlle Line 1421  echo "# Override Filter Cutoff Controlle
1421  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"  echo "# Override Filter Resonance Controller: ${config_override_resonance_ctrl}"
1422  echo "# Override Filter Type: ${config_override_filter_type}"  echo "# Override Filter Type: ${config_override_filter_type}"
1423  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
1424    echo "# Process Muted Channels: ${config_process_muted_channels}"
1425    echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}"
1426    echo "# Apply global volume SysEx by MIDI port: ${config_master_volume_sysex_by_port}"
1427    echo "# Interpolate Volume: ${config_interpolate_volume}"
1428    echo "# Instruments database support: ${config_instruments_db}"
1429    if test "$config_instruments_db" = "yes"; then
1430    echo "# Instruments DB default location: ${config_default_instruments_db_file}"
1431    fi
1432    echo "# Plugin Path: ${config_plugin_dir}"
1433    echo "#-------------------------------------------------------------------"
1434    echo "# MIDI Input Drivers:"
1435    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack_midi}, CoreMIDI: ${config_have_coremidi}, MME: ${config_have_mme}, MidiShare: ${config_have_midishare}"
1436    echo "#-------------------------------------------------------------------"
1437    echo "# Audio Output Drivers:"
1438    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack}, ARTS: ${config_have_arts}, CoreAudio: ${config_have_coreaudio}, ASIO: ${config_have_asio}"
1439    echo "#-------------------------------------------------------------------"
1440    echo "# Sampler Engines:"
1441    echo "# GIG: yes, SF2: ${config_have_sf2}, SFZ: yes"
1442    echo "#-------------------------------------------------------------------"
1443    echo "# Effect plugin systems for internal effects:"
1444    echo "# LADSPA: yes"
1445    echo "#-------------------------------------------------------------------"
1446    echo "# Building sampler as plugin for following host standards:"
1447    echo "# DSSI: ${config_have_dssi}, LV2: ${config_have_lv2}, VST: ${config_have_vst}, AU: ${config_have_au}"
1448  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1449  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
1450  echo "#####################################################################"  echo "#####################################################################"

Legend:
Removed from v.677  
changed lines
  Added in v.2578

  ViewVC Help
Powered by ViewVC