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

Legend:
Removed from v.617  
changed lines
  Added in v.3228

  ViewVC Help
Powered by ViewVC