/[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 832 by persson, Sun Feb 5 10:24:05 2006 UTC linuxsampler/trunk/configure.ac revision 3818 by schoenebeck, Sat Aug 29 16:37:35 2020 UTC
# Line 1  Line 1 
 AC_INIT(configure.in)  
   
1  #------------------------------------------------------------------------------------  #------------------------------------------------------------------------------------
2  # LinuxSampler's / liblinuxsampler's "official" release version:  # LinuxSampler's / liblinuxsampler's "official" release version:
3    
4  LINUXSAMPLER_RELEASE_MAJOR=0  m4_define(linuxsampler_release_major, 2)
5  LINUXSAMPLER_RELEASE_MINOR=3  m4_define(linuxsampler_release_minor, 1)
6  LINUXSAMPLER_RELEASE_BUILD=3cvs  m4_define(linuxsampler_release_build, 1.svn64)
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  # The following is the libtool / shared library version. This doesn't have to
# Line 24  LINUXSAMPLER_RELEASE_BUILD=3cvs Line 26  LINUXSAMPLER_RELEASE_BUILD=3cvs
26  #  6. If any interfaces have been removed since the last public release, then set age  #  6. If any interfaces have been removed since the last public release, then set age
27  #     to 0.  #     to 0.
28    
29  LIBLINUXSAMPLER_LT_CURRENT=0  LIBLINUXSAMPLER_LT_CURRENT=5
30  LIBLINUXSAMPLER_LT_REVISION=0  LIBLINUXSAMPLER_LT_REVISION=0
31  LIBLINUXSAMPLER_LT_AGE=0  LIBLINUXSAMPLER_LT_AGE=0
32  SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"  SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE"
33    
34  AM_PROG_LIBTOOL  #------------------------------------------------------------------------------------
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(SHLIB_VERSION_ARG)  AC_SUBST(SHLIB_VERSION_ARG)
52  AC_SUBST(SHARED_VERSION_INFO)  AC_SUBST(SHARED_VERSION_INFO)
53    
54  AC_C_BIGENDIAN  module=yes eval LIB_EXT=$shrext_cmds
55  AC_CANONICAL_SYSTEM  AC_SUBST(LIB_EXT)
56    
57  AC_SUBST(target)  AC_C_BIGENDIAN
58  AC_SUBST(target_alias)  AC_CANONICAL_HOST
 AC_SUBST(target_cpu)  
 AC_SUBST(target_os)  
 AC_SUBST(target_vendor)  
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    # make sure C++14 is supported by compiler
68    # (add CXXFLAGS if required [e.g. -std=c++14])
69    m4_ifdef([m4_include(m4/ax_cxx_compile_stdcxx.m4)],,
70                 [sinclude([m4/ax_cxx_compile_stdcxx.m4])])
71    AX_CXX_COMPILE_STDCXX(14, [], mandatory)
72    
73  AC_MSG_CHECKING([whether x86 architecture])  AC_MSG_CHECKING([whether x86 architecture])
74  def_arch_x86=0  def_arch_x86=0
75  case $target_cpu in  case $host_cpu in
76    "i386" | "i486" | "i586" | "i686" | "i786")    "i386" | "i486" | "i586" | "i686" | "i786" | "x86_64")
77      echo "yes"      echo "yes"
78      def_arch_x86=1;;      def_arch_x86=1;;
79    *)    *)
# Line 62  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x8 Line 85  AC_DEFINE_UNQUOTED(ARCH_X86,$def_arch_x8
85  # (only if the user did not provide one)  # (only if the user did not provide one)
86  CXX_CPU_SWITCH=  CXX_CPU_SWITCH=
87  if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then  if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then
88    if test "$def_arch_x86" = 1; then    if test "$def_arch_x86" = 1 -a "$host_cpu" != "x86_64"; then
89      CXX_CPU_SWITCH="-march=$target_cpu"      CXX_CPU_SWITCH="-march=$host_cpu"
90    elif test "$target_cpu" = "powerpc"; then    elif test "$target_cpu" = "ppc"; then
91      CXX_CPU_SWITCH="-arch=$target_cpu"      CXX_CPU_SWITCH="-arch=$host_cpu"
92    fi    fi
93  fi  fi
94  AC_SUBST([CXX_CPU_SWITCH])  AC_SUBST([CXX_CPU_SWITCH])
95    
96    mac=no
97    linux=no
98    case "$host" in
99        *-*-darwin*)
100            mac=yes
101            ;;
102        *-*-linux*)
103            linux=yes
104            ;;
105    esac
106    AM_CONDITIONAL(LINUX, test "$linux" = yes)
107    AM_CONDITIONAL(MAC, test "$mac" = yes)
108    
109    # check if we're on MS Windows
110    AC_CHECK_HEADERS(
111        mmsystem.h,
112        have_windows=1,
113        have_windows=0,
114        [#include <windef.h>]
115    )
116    AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1")
117    
118  AC_MSG_CHECKING([whether UNIX98 compatible])  AC_MSG_CHECKING([whether UNIX98 compatible])
119  AC_LANG_SAVE  AC_LANG_PUSH([C])
120  AC_LANG_C  AC_RUN_IFELSE([AC_LANG_SOURCE([[
 AC_TRY_RUN([  
121  #ifndef _GNU_SOURCE  #ifndef _GNU_SOURCE
122  #define _GNU_SOURCE 1  #define _GNU_SOURCE 1
123  #endif  #endif
# Line 85  exit(0); /* UNIX98 compatible */ Line 129  exit(0); /* UNIX98 compatible */
129  exit(-1); /* not UNIX98 compatible */  exit(-1); /* not UNIX98 compatible */
130  #endif  #endif
131  }  }
132  ],  ]])],
133  have_unix98="yes",  have_unix98="yes",
134  have_unix98="no",  have_unix98="no",
135  have_unix98="no"  have_unix98="no"
136  )  )
137  AC_LANG_RESTORE  AC_LANG_POP([C])
138  AC_MSG_RESULT([$have_unix98])  AC_MSG_RESULT([$have_unix98])
139  if test "$have_unix98" = "no"; then  if test "$have_unix98" = "no" -a "$have_windows" = "0" -a "$mac" = "no" ; then
140      if test "x$HAVE_UNIX98" = "x"; then      if test "x$HAVE_UNIX98" = "x"; then
141          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"          echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for"
142          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"
143          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"
144          echo "have a UNIX98 compatible system."          echo "have a UNIX98 compatible system."
145          exit -1;          exit -1;
146      fi      fi
# Line 105  fi Line 149  fi
149  # check for <features.h>  # check for <features.h>
150  AC_CHECK_HEADERS(features.h)  AC_CHECK_HEADERS(features.h)
151    
152    # test for POSIX thread library
153    m4_ifdef([m4_include(m4/pthread.m4)],,
154                 [sinclude([m4/pthread.m4])])
155    ACX_PTHREAD
156    LIBS="$PTHREAD_LIBS $LIBS"
157    CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
158    CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
159    CC="$PTHREAD_CC"
160    
161    
162    # check for compiler's pragma diagnostic capabilities
163    m4_ifdef([m4_include(m4/pragma_diagnostics.m4)],,
164                 [sinclude([m4/pragma_diagnostics.m4])])
165    ACX_CXX_PRAGMA_DIAGNOSTICS
166    
167    
168    # check for a bug in NPTL-enabled glibc
169    # (see Gentoo bug report #194076)
170    AC_ARG_ENABLE(nptl-bug-check,
171      [  --disable-nptl-bug-check
172                              Disable check for a bug in certain NPTL-enabled
173                              glibc versions that caused crashs.],
174      [config_check_nptl_bug="$enableval"],
175      [config_check_nptl_bug="yes"]
176    )
177    if test "$config_check_nptl_bug" = "yes"; then
178        m4_ifdef([m4_include(m4/nptl_bug.m4)],,
179                 [sinclude([m4/nptl_bug.m4])])
180        ACX_NPTL_GLIBC_BUG([
181            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
182            echo "You seem to have a buggy PTHREAD library! LinuxSampler would"
183            echo "probably crash due to this. Please report us the system you are"
184            echo "using and/or file a bug report to the bug tracking system of"
185            echo "your distribution."
186            echo "If you have a NPTL-enabled glibc AND it was compiled for TLS as"
187            echo "well, you can try to circumvent this problem for now by setting"
188            echo "the environment variable LD_ASSUME_KERNEL=\"2.4.1\" , which"
189            echo "should cause this test to pass."
190            echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
191            AC_MSG_ERROR([possibly NPTL glibc bug detected])
192        ])
193    else
194        echo "NPTL glibc bug check disabled"
195    fi
196    
197    
198    # check whether C++ compiler supports "designated initializers"
199    echo -n "Checking whether C++ compiler supports designated initializers (partly)... "
200    AC_LANG_PUSH([C++])
201    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
202        #include <stdlib.h>
203        struct Foo {
204            int   a;
205            float b;
206            bool  c;
207            char  d;
208        };
209        static void bar(Foo o) {
210        }
211        int main() {
212            bar({
213              .a = 2,
214              .b = 4.3f,
215              .c = true,
216              .d = 'z'
217            });
218            return 0;
219        }
220        ]])],
221        [cxx_designated_init_partly="yes"],
222        [cxx_designated_init_partly="no"]
223    )
224    AC_LANG_POP([C++])
225    if test $cxx_designated_init_partly = "yes"; then
226        echo "yes"
227    else
228        echo "NO"
229        echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
230        echo '!                                                             !'
231        echo '! ERROR: Selected C++ compiler does not support designated    !'
232        echo '! initializers at all, not even partly!                       !'
233        echo '!                                                             !'
234        echo '! Please either update your C++ compiler or select a          !'
235        echo '! different compiler (e.g. GCC >= 8 or clang >= 5). If you    !'
236        echo '! have several C++ compilers installed on your machine, you   !'
237        echo '! can easily select a different compiler by environment       !'
238        echo '! variable, e.g. to compile with clang instead:               !'
239        echo '!                                                             !'
240        echo '! CXX=clang++ CC=clang ./configure && make                    !'
241        echo '!                                                             !'
242        echo '!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'
243        exit -1
244    fi
245    echo -n "Checking whether C++ compiler fully supports designated initializers... "
246    AC_LANG_PUSH([C++])
247    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
248        #include <stdlib.h>
249        struct Foo {
250            int   a;
251            float b;
252            bool  c;
253            char  d;
254        };
255        static void bar(Foo o) {
256        }
257        int main() {
258            bar({
259              .d = 'z',
260              .a = 2
261            });
262            return 0;
263        }
264        ]])],
265        [cxx_designated_init_fully="yes"],
266        [cxx_designated_init_fully="no"]
267    )
268    AC_LANG_POP([C++])
269    if test $cxx_designated_init_fully = "yes"; then
270        echo "yes"
271    else
272        echo 'NO'
273        echo '***************************************************************'
274        echo '*                                                             *'
275        echo '* WARNING: Selected C++ compiler does not fully support       *'
276        echo '* designated initializers (only partly)!                      *'
277        echo '*                                                             *'
278        echo '* You will be able to compile LinuxSampler, but you will not  *'
279        echo '* be able to compile the test cases. Consider updating your   *'
280        echo '* C++ compiler or switching to a different compiler. Chances  *'
281        echo '* are that LinuxSampler will soon no longer support your      *'
282        echo '* compiler.                                                   *'
283        echo '*                                                             *'
284        echo '* If you have several C++ compilers installed on your machine,*'
285        echo '* you can easily select a different compiler by environment   *'
286        echo '* variable, e.g. to compile with clang instead:               *'
287        echo '*                                                             *'
288        echo '* CXX=clang++ CC=clang ./configure && make                    *'
289        echo '*                                                             *'
290        echo '***************************************************************'
291    fi
292    
293    
294    # In case Bison is available, determine the exact version, since we need to
295    # use different custom parser code for Bison 2.x vs. Bison 3.x generated
296    # parser yacc tables.
297    if echo "$YACC" | grep -q bison; then
298        # NOTE: m4 removes [], that's why it needs to be escaped
299        bison_version=[`$YACC --version | head -n 1 | sed -e 's/[^0-9.]*\([-0-9.]\+\)$/\1/'`]
300        bison_version_major=`echo $bison_version | cut -d. -f1`
301        bison_version_minor=`echo $bison_version | cut -d. -f2`
302        AC_DEFINE_UNQUOTED(HAVE_BISON_MAJ,$bison_version_major,[Define to the major version of the GNU Bison program installed.])
303        AC_DEFINE_UNQUOTED(HAVE_BISON_MIN,$bison_version_minor,[Define to the minor version of the GNU Bison program installed.])
304    fi
305    
306    
307    
308    ###########################################################################
309  # Checks for available audio and MIDI systems / drivers  # Checks for available audio and MIDI systems / drivers
310  # (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)
311    
312  have_midi_input_driver="false"  have_midi_input_driver="false"
313  have_audio_output_driver="false"  have_audio_output_driver="false"
314    
315  AC_CHECK_HEADER(alsa/asoundlib.h,  # ALSA
316      AC_CHECK_LIB(asound, main,  AC_ARG_ENABLE(alsa-driver,
317                               have_alsa=1    [  --disable-alsa-driver
318                               ,                            Disable support for the Advanced Linux Sound
319                               have_alsa=0                            Architecture (ALSA).],
320                  )    [config_alsa_driver="$enableval"],
321                  ,    [config_alsa_driver="yes"]
322                  have_alsa=0  )
323  )  have_alsa=0
324  if test "$have_alsa" = "1"; then  if test "$config_alsa_driver" = "yes"; then
325      have_midi_input_driver="true"      AC_CHECK_HEADER(alsa/asoundlib.h,
326      have_audio_output_driver="true";          AC_CHECK_LIB(asound, main,
327                                     have_alsa=1
328                                     ,
329                                     have_alsa=0
330                        )
331                        ,
332                        have_alsa=0
333        )
334        if test "$have_alsa" = "1"; then
335            have_midi_input_driver="true"
336            have_audio_output_driver="true";
337        fi
338    
339        echo -n "checking Alsa version... "
340        AC_LANG_PUSH([C])
341        AC_RUN_IFELSE([AC_LANG_SOURCE([[
342            #include <alsa/asoundlib.h>
343            void main(void) {
344                /* ensure backward compatibility */
345                #if !defined(SND_LIB_MAJOR) && defined(SOUNDLIB_VERSION_MAJOR)
346                #define SND_LIB_MAJOR SOUNDLIB_VERSION_MAJOR
347                #endif
348                exit(SND_LIB_MAJOR);
349            }
350        ]])],
351        alsa_major=0,
352        alsa_major=$?,
353        alsa_major=0
354        )
355        AC_RUN_IFELSE([AC_LANG_SOURCE([[
356            #include <alsa/asoundlib.h>
357            void main(void) {
358                /* ensure backward compatibility */
359                #if !defined(SND_LIB_MINOR) && defined(SOUNDLIB_VERSION_MINOR)
360                #define SND_LIB_MINOR SOUNDLIB_VERSION_MINOR
361                #endif
362                exit(SND_LIB_MINOR);
363            }
364        ]])],
365        alsa_minor=0,
366        alsa_minor=$?,
367        alsa_minor=0
368        )
369        AC_RUN_IFELSE([AC_LANG_SOURCE([[
370            #include <alsa/asoundlib.h>
371            void main(void) {
372                /* ensure backward compatibility */
373                #if !defined(SND_LIB_SUBMINOR) && defined(SOUNDLIB_VERSION_SUBMINOR)
374                #define SND_LIB_SUBMINOR SOUNDLIB_VERSION_SUBMINOR
375                #endif
376                exit(SND_LIB_SUBMINOR);
377            }
378        ]])],
379        alsa_subminor=0,
380        alsa_subminor=$?,
381        alsa_subminor=0
382        )
383        AC_LANG_POP([C])
384        echo "$alsa_major.$alsa_minor.$alsa_subminor";
385        AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.])
386        AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.])
387        AC_DEFINE_UNQUOTED(ALSA_SUBMINOR,$alsa_subminor,[Define to the subminor version number of your Alsa installation.])
388    else
389        echo "ALSA support disabled by configure script parameter"
390  fi  fi
391  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")  AM_CONDITIONAL(HAVE_ALSA, test $have_alsa = "1")
392  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.])
393    config_have_alsa="no"
394  echo -n "checking Alsa version... "  if test $have_alsa = "1"; then
395  AC_LANG_SAVE      config_have_alsa="yes"
396  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.])  
397    
398  # JACK  # JACK
399  PKG_CHECK_MODULES(JACK, jack, HAVE_JACK=true, HAVE_JACK=false)  AC_ARG_ENABLE(jack-driver,
400  AC_SUBST(JACK_LIBS)    [  --disable-jack-driver
401  AC_SUBST(JACK_CFLAGS)                            Disable support for the Jack Audio Connection Kit
402  if test $HAVE_JACK = false; then                            (JACK).],
403      HAVE_JACK=0;    [config_jack_driver="$enableval"],
404  else    [config_jack_driver="yes"]
405      HAVE_JACK=1  )
406      have_audio_output_driver="true";  have_jack=0
407      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
408        PKG_CHECK_MODULES(JACK, jack, have_jack=1, have_jack=0)
409        if test $have_jack = "1"; then
410            AC_SUBST(JACK_LIBS)
411            AC_SUBST(JACK_CFLAGS)
412            linuxsampler_save_LIBS=$LIBS
413            LIBS="$JACK_LIBS $LIBS"
414            AC_CHECK_FUNCS(jack_client_name_size jack_client_open \
415                           jack_on_info_shutdown)
416            LIBS=$linuxsampler_save_LIBS
417            have_audio_output_driver="true";
418        fi
419    else
420        echo "JACK support disabled by configure script parameter"
421    fi
422    AM_CONDITIONAL(HAVE_JACK, test $have_jack = "1")
423    AC_DEFINE_UNQUOTED(HAVE_JACK,$have_jack,[Define to 1 if you have JACK installed.])
424    config_have_jack="no"
425    if test $have_jack = "1"; then
426        config_have_jack="yes"
427    fi
428    
429    # JACK MIDI
430    have_jack_midi=0
431    if test $have_jack = "1"; then
432        linuxsampler_save_CFLAGS=$CFLAGS
433        linuxsampler_save_LIBS=$LIBS
434        CFLAGS="$JACK_CFLAGS $CFLAGS"
435        LIBS="$JACK_LIBS $LIBS"
436        AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0)
437        if test $have_jack_midi = "1"; then
438            AC_CHECK_FUNCS(jack_midi_get_event_count)
439            AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <jack/midiport.h>]], [[
440                jack_midi_clear_buffer(0, 0);
441            ]])], [AC_DEFINE(JACK_MIDI_FUNCS_NEED_NFRAMES, 1,
442                      [Define to 1 if you have the old jack midi functions that need an nframes argument.])])
443            have_midi_input_driver="true"
444        fi
445        CFLAGS=$linuxsampler_save_CFLAGS
446        LIBS=$linuxsampler_save_LIBS
447    fi
448    AM_CONDITIONAL(HAVE_JACK_MIDI, test $have_jack_midi = "1")
449    AC_DEFINE_UNQUOTED(HAVE_JACK_MIDI, $have_jack_midi,
450                       [Define to 1 if you have JACK with MIDI support installed.])
451    config_have_jack_midi="no"
452    if test $have_jack_midi = "1"; then
453        config_have_jack_midi="yes"
454    fi
455    
456    # ARTS
457    AC_ARG_ENABLE(arts-driver,
458      [  --disable-arts-driver
459                              Disable support for the Analogue Realtime System
460                              (aRts).],
461      [config_arts_driver="$enableval"],
462      [config_arts_driver="yes"]
463    )
464    have_arts=0
465    if test "$config_arts_driver" = "yes"; then
466        m4_ifdef([m4_include(m4/arts.m4)],,
467                 [sinclude([m4/arts.m4])])
468        AM_PATH_ARTS(0.9.5, have_arts=1, have_arts=0)
469        if test "$have_arts" = "1"; then
470            have_audio_output_driver="true"
471        fi
472    else
473        echo "ARTS support disabled by configure script parameter"
474    fi
475    AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1")
476    AC_DEFINE_UNQUOTED(HAVE_ARTS,$have_arts,[Define to 1 if you have aRts installed.])
477    config_have_arts="no"
478    if test $have_arts = "1"; then
479        config_have_arts="yes"
480    fi
481    
482    # ASIO AUDIO (Win32)
483    AC_ARG_ENABLE(asiosdk-dir,
484      [  --enable-asiosdk-dir
485                              Directory where the ASIO SDK is located, this automatically
486                              enables the compilation of the ASIO audio output driver.],
487      [config_asiosdk_dir="${enableval}"],
488      [config_asiosdk_dir="."]
489    )
490    AC_SUBST(config_asiosdk_dir)
491    
492    AC_ARG_ENABLE(asio-driver,
493      [  --disable-asio-driver
494                              Disable support for the Windows ASIO driver.],
495      [config_asio_driver="$enableval"],
496      [config_asio_driver="yes"]
497    )
498    have_asio=0
499    ASIOSDK_BASEDIR=
500    if test "$config_asio_driver" = "yes"; then
501        asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h
502        echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...."
503        if test -e $asiosdk_headerfile ; then
504            echo yes
505            have_asio=1
506            ASIOSDK_BASEDIR="$config_asiosdk_dir"
507        else
508            echo no
509            have_asio=0
510        fi
511        if test "$have_asio" = "1"; then
512            have_audio_output_driver="true"
513        fi
514    else
515        echo "Windows ASIO support disabled by configure script parameter"
516    fi
517    AC_SUBST(ASIOSDK_BASEDIR)
518    AM_CONDITIONAL(HAVE_ASIO, test $have_asio = "1")
519    AC_DEFINE_UNQUOTED(HAVE_ASIO,$have_asio,[Define to 1 if you have ASIO installed.])
520    config_have_asio="no"
521    if test $have_asio = "1"; then
522        config_have_asio="yes"
523  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.])  
524    
525  # MidiShare (Linux, OS X, Windows)  # MidiShare (Linux, OS X, Windows)
526  AC_CHECK_HEADER(MidiShare.h,  AC_ARG_ENABLE(midishare-driver,
527      AC_CHECK_LIB(MidiShare, MidiCountEvs,    [  --disable-midishare-driver
528                              have_midishare=1,                            Disable support for the MidiShare system.],
529                              have_midishare=0    [config_midishare_driver="$enableval"],
530                  )    [config_midishare_driver="yes"]
531                  ,  )
532                  have_midishare=0  have_midishare=0
533  )  if test "$config_midishare_driver" = "yes"; then
534  if test "$have_midishare" = "1"; then      AC_CHECK_HEADER(MidiShare.h,
535      have_midi_input_driver="true"          AC_CHECK_LIB(MidiShare, MidiCountEvs,
536                                    have_midishare=1,
537                                    have_midishare=0
538                        )
539                        ,
540                        have_midishare=0
541        )
542        if test "$have_midishare" = "1"; then
543            have_midi_input_driver="true"
544        fi
545    else
546        echo "MidiShare support disabled by configure script parameter"
547  fi  fi
548  AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")  AM_CONDITIONAL(HAVE_MIDISHARE, test $have_midishare = "1")
549  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.])
550    config_have_midishare="no"
551    if test $have_midishare = "1"; then
552        config_have_midishare="yes"
553    fi
554    
555  # CoreMIDI (OS X)  # CoreMIDI (OS X)
556  AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,  AC_ARG_ENABLE(coremidi-driver,
557                  have_coremidi=1,    [  --disable-coremidi-driver
558                  have_coremidi=0                            Disable support for the Apple CoreMIDI system.],
559  )    [config_coremidi_driver="$enableval"],
560  if test "$have_coremidi" = "1"; then    [config_coremidi_driver="yes"]
561      have_midi_input_driver="true"  )
562    have_coremidi=0
563    if test "$config_coremidi_driver" = "yes"; then
564        AC_CHECK_HEADER(CoreMIDI/CoreMIDI.h,
565            have_coremidi=1,
566            have_coremidi=0
567        )
568        if test "$have_coremidi" = "1"; then
569            have_midi_input_driver="true"
570        fi
571    else
572        echo "CoreMIDI support disabled by configure script parameter"
573  fi  fi
574  AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")  AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1")
575  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.])
576    config_have_coremidi="no"
577    if test $have_coremidi = "1"; then
578        config_have_coremidi="yes"
579    fi
580    
581    # CoreAudio (OS X)
582    AC_ARG_ENABLE(coreaudio-driver,
583      [  --disable-coreaudio-driver
584                              Disable support for the Apple CoreAudio system.],
585      [config_coreaudio_driver="$enableval"],
586      [config_coreaudio_driver="yes"]
587    )
588    have_coreaudio=0
589    if test "$config_coreaudio_driver" = "yes"; then
590        AC_CHECK_HEADER(CoreAudio/CoreAudio.h,
591            have_coreaudio=1,
592            have_coreaudio=0
593        )
594        if test "$have_coreaudio" = "1"; then
595            have_audio_output_driver="true"
596        fi
597    else
598        echo "CoreAudio support disabled by configure script parameter"
599    fi
600    AM_CONDITIONAL(HAVE_COREAUDIO, test $have_coreaudio = "1")
601    AC_DEFINE_UNQUOTED(HAVE_COREAUDIO,$have_coreaudio,[Define to 1 if you have CoreAudio installed.])
602    config_have_coreaudio="no"
603    if test $have_coreaudio = "1"; then
604        config_have_coreaudio="yes"
605    fi
606    
607    # MME MIDI (Win32)
608    AC_ARG_ENABLE(mmemidi-driver,
609      [  --disable-mmemidi-driver
610                              Disable support for the Windows MME MIDI system.],
611      [config_mmemidi_driver="$enableval"],
612      [config_mmemidi_driver="yes"]
613    )
614    have_mmemidi=0
615    if test "$config_mmemidi_driver" = "yes"; then
616        AC_CHECK_HEADERS(mmsystem.h,
617            have_mmemidi=1,
618            have_mmemidi=0
619        )
620        if test "$have_mmemidi" = "1"; then
621            have_midi_input_driver="true"
622        fi
623    else
624        echo "MME MIDI support disabled by configure script parameter"
625    fi
626    AM_CONDITIONAL(HAVE_MME_MIDI, test $have_mmemidi = "1")
627    AC_DEFINE_UNQUOTED(HAVE_MME_MIDI,$have_mmemidi,[Define to 1 if you have MME MIDI installed.])
628    config_have_mme="no"
629    if test $have_mmemidi = "1"; then
630        config_have_mme="yes"
631    fi
632    
633    # DSSI
634    AC_CHECK_HEADERS(dssi.h,
635            config_have_dssi="yes",
636            config_have_dssi="no")
637    AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes")
638    
639    # LV2
640    PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no")
641    if test "$config_have_lv2" != "yes"; then
642        PKG_CHECK_MODULES(LV2, lv2core >= 1.0.0, config_have_lv2="yes", config_have_lv2="no")
643    fi
644    AC_SUBST(LV2_CFLAGS)
645    AC_SUBST(LV2_LIBS)
646    AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes")
647    
648    # VST
649    AC_ARG_ENABLE(vstsdk-dir,
650      [  --enable-vstsdk-dir
651                              Directory where the VST SDK is located.
652                              This automatically enables the compilation
653                              of the VST plugin.],
654      [VSTSDK_DIR="${enableval}"],
655      [VSTSDK_DIR=]
656    )
657    AC_SUBST(VSTSDK_DIR)
658    AM_CONDITIONAL(HAVE_VST, test "x$VSTSDK_DIR" != "x")
659    config_have_vst="no"
660    if test "x$VSTSDK_DIR" != "x"; then
661        config_have_vst="yes"
662    fi
663    
664    # AU
665    AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
666            config_have_au="yes",
667            config_have_au="no")
668    AM_CONDITIONAL(HAVE_AU, test $config_have_au = "yes")
669    AM_CONDITIONAL(HAVE_AUFLAGS, test "$AUFLAGS" != "")
670    
671    if test $config_have_au = "yes" ; then
672        if test "x$DEVELOPER_EXTRAS_DIR" = "x" ; then
673            if test -d /Developer/Extras ; then
674                DEVELOPER_EXTRAS_DIR=/Developer/Extras
675            else      
676                DEVELOPER_EXTRAS_DIR=/Developer/Examples
677            fi
678        fi
679        AC_SUBST(DEVELOPER_EXTRAS_DIR)
680    fi
681    
682    if test "x$MAC_PLUGIN_INSTALL_DIR" = "x" ; then
683        MAC_PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins
684    fi
685    AC_SUBST(MAC_PLUGIN_INSTALL_DIR)
686    
687    # have we found at least one MIDI input and one audio output driver ?
688    if test "$have_midi_input_driver" = "false"; then
689        echo "No supported MIDI input system found!"
690        echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"
691        echo "ALSA, JACK, MIDIShare, CoreMIDI, MME."
692        echo "If you think you have one of those available on your system, make sure you"
693        echo "also have the respective development (header) files installed."
694        exit -1;
695    fi
696    if test "$have_audio_output_driver" = "false"; then
697        echo "No supported audio output system found!"
698        echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output"
699        echo "driver at the moment!"
700        exit -1;
701    fi
702    
703    
704    
705    ###########################################################################
706    # Checks for various DLL libraries
707    
708  # Check presence of libgig  # Check presence of libgig
709  libgig_version="2.0.2"  libgig_version="4.2.0"
710  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)  PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false)
711  if test "$HAVE_GIG" = "false"; then  if test "$HAVE_GIG" = "false"; then
712      echo "Required libgig version not found!"      echo "Required libgig version not found!"
# Line 230  fi Line 718  fi
718  AC_SUBST(GIG_CFLAGS)  AC_SUBST(GIG_CFLAGS)
719  AC_SUBST(GIG_LIBS)  AC_SUBST(GIG_LIBS)
720    
721  # SQLITE3  # SF2 Engine (requires libgig)
722  PKG_CHECK_MODULES(SQLITE3, sqlite3, HAVE_SQLITE3=true, HAVE_SQLITE3=false)  AC_ARG_ENABLE(sf2-engine,
723  AC_SUBST(SQLITE3_LIBS)    [  --disable-sf2-engine
724  AC_SUBST(SQLITE3_CFLAGS)                            Disable compilation of the SF2 engine.
725  if test $HAVE_SQLITE3 = false; then                            You need to have libgig installed.],
726      HAVE_SQLITE3=0;    [config_sf2_engine="$enableval"],
727      echo "no, support for instrument DB will be disabled!"    [config_sf2_engine="yes"]
728    )
729    HAVE_SF2=0;
730    if test "$config_sf2_engine" = "yes"; then
731        HAVE_SF2=1
732  else  else
733      HAVE_SQLITE3=1      echo "SF2 engine disabled by configure script parameter"
734      echo "yes"  fi
735    AM_CONDITIONAL(HAVE_SF2, test $HAVE_SF2 = 1)
736    AC_DEFINE_UNQUOTED(HAVE_SF2,$HAVE_SF2,[Define to 1 if you want SF2 engine and have libsf2 installed.])
737    config_have_sf2="no"
738    if test $HAVE_SF2 = "1"; then
739        config_have_sf2="yes"
740  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.])  
741    
742  if test "$have_midi_input_driver" = "false"; then  # Check presence of libsndfile
743      echo "No supported MIDI input system found!"  libsndfile_version="1.0"
744      echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:"  PKG_CHECK_MODULES(SNDFILE, sndfile >= $libsndfile_version, HAVE_SNDFILE=true, HAVE_SNDFILE=false)
745      echo "ALSA, MIDIShare, CoreMIDI."  if test "$HAVE_SNDFILE" = "false"; then
746      echo "If you think you have one of those available on your system, make sure you"      echo "Required libsndfile version not found!"
747      echo "also have the respective development (header) files installed."      echo "You need to have libsndfile version ${libsndfile_version} installed!"
748      exit -1;      exit -1;
749    else
750        echo "yes, found libsndfile $libsndfile_version"
751  fi  fi
752  if test "$have_audio_output_driver" = "false"; then  AC_SUBST(SNDFILE_CFLAGS)
753      echo "No supported audio output system found!"  AC_SUBST(SNDFILE_LIBS)
754      echo "Sorry, LinuxSampler only supports ALSA and JACK as audio output driver at the moment!"  
755      exit -1;  # Check for Vorbis and FLAC support in libsndfile
756    linuxsampler_save_CFLAGS=$CFLAGS
757    CFLAGS="$SNDFILE_CFLAGS $CFLAGS"
758    AC_CHECK_DECLS([SF_FORMAT_VORBIS, SF_FORMAT_FLAC], [], [], [[#include <sndfile.h>]])
759    
760    # Check for loop functionality in libsndfile
761    AC_CHECK_MEMBERS([SF_INSTRUMENT.loops],,
762                     [AC_MSG_WARN([Your version of libsndfile does not support
763        reading of loop information. LinuxSampler will not be able to
764        extract loop information from sample files.])],
765                     [#include <sndfile.h>])
766    CFLAGS=$linuxsampler_save_CFLAGS
767    
768    # Instruments DB feature (requires SQLite 3.3)
769    AC_ARG_ENABLE(instruments-db,
770      [  --disable-instruments-db
771                              Disable compilation of the sampler's instruments
772                              database feature. You need to have SQLite 3.3
773                              or younger installed for this feature.],
774      [config_instruments_db="$enableval"],
775      [config_instruments_db="yes"]
776    )
777    HAVE_SQLITE3=0;
778    if test "$config_instruments_db" = "yes"; then
779        # Check presence of sqlite3
780        sqlite_version="3.3"
781        PKG_CHECK_MODULES(SQLITE3, sqlite3 >= $sqlite_version, HAVE_SQLITE3=true, HAVE_SQLITE3=false)
782        AC_SUBST(SQLITE3_LIBS)
783        AC_SUBST(SQLITE3_CFLAGS)
784        if test $HAVE_SQLITE3 = false; then
785            HAVE_SQLITE3=0
786            config_instruments_db="no"
787            echo "*** Required sqlite version not found!"
788            echo "*** You need to have sqlite version ${sqlite_version} or higher"
789            echo "*** for instruments database support to be enabled."
790            echo "*** Support for instruments DB will be disabled!"
791        else
792            HAVE_SQLITE3=1
793        fi
794    else
795        echo "Instruments DB feature disabled by configure script parameter"
796  fi  fi
797    AM_CONDITIONAL(HAVE_SQLITE3, test $HAVE_SQLITE3 = 1)
798    AC_DEFINE_UNQUOTED(HAVE_SQLITE3,$HAVE_SQLITE3,[Define to 1 if you want the instruments DB feature and have SQLITE3 installed.])
799    
800    
801    
802  ###########################################################################  ###########################################################################
# Line 265  fi Line 805  fi
805  # TODO: should we use AC_ARG_VAR(variable, description) instead?  # TODO: should we use AC_ARG_VAR(variable, description) instead?
806    
807  AC_ARG_ENABLE(asm,  AC_ARG_ENABLE(asm,
808    [  --enable-asm    [  --disable-asm
809                            Enable hand-crafted assembly optimizations                            Enable hand-crafted assembly optimizations
810                            (default=off). LinuxSampler provides CPU specific                            (default=on). LinuxSampler provides CPU specific
811                            assembly optimizations for the most important                            assembly optimizations. This is currently limited
812                            synthesis algorithms. This is currently disabled                            to just enter a fast (denormal) FPU mode on x86
813                            by default since current asm code is broken.],                            platforms. There are currently no synthesis core
814    [config_asm="yes"],                            assembly optimizations anymore since LS 0.4.0],
815    [config_asm="no"]    [config_asm="$enableval"],
816      [config_asm="yes"]
817  )  )
818  if test "$config_asm" = "yes"; then  if test "$config_asm" = "yes"; then
819    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.])
820  fi  fi
821    
822  AC_ARG_ENABLE(dev-mode,  AC_ARG_ENABLE(dev-mode,
823    [  --disable-dev-mode    [  --enable-dev-mode
824                            Disable development mode (default=on). In that mode                            Enable development mode (default=off). In that mode
825                            we do some extra sanity checks here and there.                            we do some extra sanity checks here and there.
826                            This helps to spot possible problems, but reduces                            This helps to spot possible problems, but reduces
827                            efficiency a bit],                            efficiency a bit],
828    [config_dev_mode="no"],    [config_dev_mode="$enableval"],
829    [config_dev_mode="yes"]    [config_dev_mode="no"]
830  )  )
831  if test "$config_dev_mode" = "yes"; then  if test "$config_dev_mode" = "yes"; then
832    AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.])    AC_DEFINE_UNQUOTED(CONFIG_DEVMODE, 1, [Define to 1 if you want to enable development mode.])
# Line 312  AC_ARG_ENABLE(rt-exceptions, Line 853  AC_ARG_ENABLE(rt-exceptions,
853                            context as well. Otherwise if disabled                            context as well. Otherwise if disabled
854                            segmentation faults will be forced by the                            segmentation faults will be forced by the
855                            application on critical errors.],                            application on critical errors.],
856    [config_rt_exceptions="yes"],    [config_rt_exceptions="$enableval"],
857    [config_rt_exceptions="no"]    [config_rt_exceptions="no"]
858  )  )
859  if test "$config_rt_exceptions" = "yes"; then  if test "$config_rt_exceptions" = "yes"; then
860    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.])
861  fi  fi
862    
863    AC_CHECK_FUNC(pthread_testcancel,
864      [config_pthread_testcancel="yes"],
865      [config_pthread_testcancel="no"]
866    )
867    if test "$config_pthread_testcancel" = "yes"; then
868      AC_DEFINE_UNQUOTED(CONFIG_PTHREAD_TESTCANCEL, 1, [Define to 1 if pthread_testcancel() is available.])
869    fi
870    
871  AC_ARG_ENABLE(preload-samples,  AC_ARG_ENABLE(preload-samples,
872    [  --enable-preload-samples    [  --enable-preload-samples
873                            Due to seeking and latency issues with hard drives                            Due to seeking and latency issues with hard drives
# Line 424  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_ Line 973  AC_DEFINE_UNQUOTED(CONFIG_STREAM_BUFFER_
973    
974  AC_ARG_ENABLE(max-streams,  AC_ARG_ENABLE(max-streams,
975    [  --enable-max-streams    [  --enable-max-streams
976                            Maximum amount of disk streams (default=90). This                            Initial maximum amount of disk streams
977                            value should always be higher than the maximum                            (default=90). This value can be changed at
978                            amount of voices.],                            runtime. It should always be higher than the
979                              maximum amount of voices.],
980    [config_max_streams="${enableval}"],    [config_max_streams="${enableval}"],
981    [config_max_streams="90"]    [config_max_streams="90"]
982  )  )
983  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.])
984    
985  AC_ARG_ENABLE(max-voices,  AC_ARG_ENABLE(max-voices,
986    [  --enable-max-voices    [  --enable-max-voices
987                            Maximum amount of voices (default=64). This value                            Initial maximum amount of voices (default=64).
988                            should always be lower than the maximum amount of                            This value can be changed at runtime. It should
989                            disk streams.],                            always be lower than the maximum amount of disk
990                              streams.],
991    [config_max_voices="${enableval}"],    [config_max_voices="${enableval}"],
992    [config_max_voices="64"]    [config_max_voices="64"]
993  )  )
994  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.])
995    
996  AC_ARG_ENABLE(subfragment-size,  AC_ARG_ENABLE(subfragment-size,
997    [  --enable-subfragment-size    [  --enable-subfragment-size
# Line 457  AC_ARG_ENABLE(subfragment-size, Line 1008  AC_ARG_ENABLE(subfragment-size,
1008  )  )
1009  AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])  AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_SUBFRAGMENT_SIZE, $config_subfragment_size, [Define default subfragment size (in sample points).])
1010    
1011  AC_ARG_ENABLE(global-attenuation,  AC_ARG_ENABLE(global-attenuation-default,
1012    [  --enable-global-attenuation    [  --enable-global-attenuation-default
1013                            To prevent clipping all samples will be lowered                            To prevent clipping all samples will be lowered
1014                            in amplitude by this given factor.                            in amplitude by this given default factor (can
1015                              be overridden at runtime).
1016                            (default=0.35)],                            (default=0.35)],
1017    [config_global_attenuation="${enableval}"],    [config_global_attenuation_default="${enableval}"],
1018    [config_global_attenuation="0.35"]    [config_global_attenuation_default="0.35"]
1019  )  )
1020  AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION, $config_global_attenuation, [Define global volume attenuation (as floating point factor).])  AC_DEFINE_UNQUOTED(CONFIG_GLOBAL_ATTENUATION_DEFAULT, $config_global_attenuation_default, [Define default global volume attenuation (as floating point factor).])
1021    
1022  AC_ARG_ENABLE(voice-steal-algo,  AC_ARG_ENABLE(voice-steal-algo,
1023    [  --enable-voice-steal-algo    [  --enable-voice-steal-algo
# Line 505  AC_ARG_ENABLE(force-filter, Line 1057  AC_ARG_ENABLE(force-filter,
1057                            If enabled will force filter to be used even if                            If enabled will force filter to be used even if
1058                            no usage was define in instrument patch files.                            no usage was define in instrument patch files.
1059                            (default=no).],                            (default=no).],
1060    [config_force_filter="yes"],    [config_force_filter="$enableval"],
1061    [config_force_filter="no"]    [config_force_filter="no"]
1062  )  )
1063  if test "$config_force_filter" = "yes"; then  if test "$config_force_filter" = "yes"; then
# Line 595  AC_ARG_ENABLE(gs-checksum, Line 1147  AC_ARG_ENABLE(gs-checksum,
1147                            messages which do not provide a correct checksum                            messages which do not provide a correct checksum
1148                            will be ignored. This is disabled by default as                            will be ignored. This is disabled by default as
1149                            not all devices honor GS checksums.],                            not all devices honor GS checksums.],
1150    [config_assert_gs_sysex_checksum="yes"],    [config_assert_gs_sysex_checksum="$enableval"],
1151    [config_assert_gs_sysex_checksum="no"]    [config_assert_gs_sysex_checksum="no"]
1152  )  )
1153  if test "config_assert_gs_sysex_checksum" = "yes"; then  if test "config_assert_gs_sysex_checksum" = "yes"; then
# Line 641  AC_ARG_ENABLE(signed-triang-algo, Line 1193  AC_ARG_ENABLE(signed-triang-algo,
1193                                Similar to intmath but uses abs() function.                                Similar to intmath but uses abs() function.
1194                                Depending on compiler and platrofm this could                                Depending on compiler and platrofm this could
1195                                perform better than integer math as it avoids                                perform better than integer math as it avoids
1196                                an extra integer multiply instruction.                                an extra integer multiply instruction.
   
1197                              diharmonic:                              diharmonic:
1198                                The triangular wave will be approximated by adding two                                The triangular wave will be approximated by adding two
1199                                sinusoidials. This solution might especially hurt on                                sinusoidials. This solution might especially hurt on
# Line 676  AC_ARG_ENABLE(unsigned-triang-algo, Line 1227  AC_ARG_ENABLE(unsigned-triang-algo,
1227                                Similar to intmath but uses abs() function.                                Similar to intmath but uses abs() function.
1228                                Depending on compiler and platrofm this could                                Depending on compiler and platrofm this could
1229                                perform better than integer math as it avoids                                perform better than integer math as it avoids
1230                                an extra integer multiply instruction.                                an extra integer multiply instruction.
   
1231                              diharmonic:                              diharmonic:
1232                                The triangular wave will be approximated by adding two                                The triangular wave will be approximated by adding two
1233                                sinusoidials. This solution might especially hurt on                                sinusoidials. This solution might especially hurt on
# Line 708  AC_ARG_ENABLE(process-muted-channels, Line 1258  AC_ARG_ENABLE(process-muted-channels,
1258                            will not discard notes, triggered in mute mode,                            will not discard notes, triggered in mute mode,
1259                            when the channel is unmuted. But also will reduce                            when the channel is unmuted. But also will reduce
1260                            the efficiency.],                            the efficiency.],
1261    [config_process_muted_channels="yes"],    [config_process_muted_channels="$enableval"],
1262    [config_process_muted_channels="no"]    [config_process_muted_channels="no"]
1263  )  )
1264  if test "$config_process_muted_channels" = "yes"; then  if test "$config_process_muted_channels" = "yes"; then
1265    AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])    AC_DEFINE_UNQUOTED(CONFIG_PROCESS_MUTED_CHANNELS, 1, [Define to 1 if you want to enable processing of muted channels.])
1266  fi  fi
1267    
1268    AC_ARG_ENABLE(process-all-notes-off,
1269      [  --disable-process-all-notes-off
1270                              Disable interpretation of All-Notes-Off MIDI
1271                              messages (default=on). By default LS will release
1272                              all voices whenever it receives an All-Notes-Off
1273                              MIDI message. You can disable this behavior, so
1274                              that LS simply ignores such messages.],
1275      [config_process_all_notes_off="$enableval"],
1276      [config_process_all_notes_off="yes"]
1277    )
1278    if test "$config_process_all_notes_off" = "yes"; then
1279      AC_DEFINE_UNQUOTED(CONFIG_PROCESS_ALL_NOTES_OFF, 1, [Define to 1 if you want to enable processing of All-Notes-Off MIDI messages.])
1280    fi
1281    
1282  AC_ARG_ENABLE(interpolate-volume,  AC_ARG_ENABLE(interpolate-volume,
1283    [  --disable-interpolate-volume    [  --disable-interpolate-volume
1284                            Disable interpolation of volume modulation                            Disable interpolation of volume modulation
# Line 722  AC_ARG_ENABLE(interpolate-volume, Line 1286  AC_ARG_ENABLE(interpolate-volume,
1286                            generated by for example the envelope generator                            generated by for example the envelope generator
1287                            will be smoother, minimizing the risk for audio                            will be smoother, minimizing the risk for audio
1288                            clicks. Disable it to reduce CPU usage.],                            clicks. Disable it to reduce CPU usage.],
1289    [config_interpolate_volume="no"],    [config_interpolate_volume="$enableval"],
1290    [config_interpolate_volume="yes"]    [config_interpolate_volume="yes"]
1291  )  )
1292  if test "$config_interpolate_volume" = "yes"; then  if test "$config_interpolate_volume" = "yes"; then
1293    AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.])    AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.])
1294  fi  fi
1295    
1296    AC_ARG_ENABLE(master-volume-sysex-by-port,
1297      [  --enable-master-volume-sysex-by-port
1298                              Whether global volume sysex message should be
1299                              applied globally to the whole sampler or only to
1300                              the sampler channels connected to the same MIDI
1301                              input port on which the sysex message arrived on.
1302                              By default global volume sysex messages apply
1303                              globally to the whole sampler, since many MIDI
1304                              devices behave that way.],
1305      [config_master_volume_sysex_by_port="$enableval"],
1306      [config_master_volume_sysex_by_port="no"]
1307    )
1308    if test "$config_master_volume_sysex_by_port" = "yes"; then
1309      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.])
1310    fi
1311    
1312    AC_ARG_ENABLE(plugin-dir,
1313      [  --enable-plugin-dir
1314                              Directory where the sampler shall look for potential plugins,
1315                              that is 3rd party shared libraries that should be loaded by
1316                              the sampler on startup. By default the sampler will search
1317                              for plugins in the subdirectory "plugins" below its own
1318                              library directory.
1319                              (i.e. /usr/local/lib/linuxsampler/plugins)],
1320      [config_plugin_dir="${enableval}"],
1321      [config_plugin_dir="${libdir}/linuxsampler/plugins"]
1322    )
1323    AC_SUBST(config_plugin_dir)
1324    
1325    AC_ARG_ENABLE(default-instruments-db-location,
1326      [  --enable-default-instruments-db-location
1327                              Only when instruments DB feature is enabled: file name
1328                              which shall be taken as default location of the
1329                              instruments DB file. This location can still be
1330                              overridden at runtime with a command line switch.
1331                              (default: /var/lib/linuxsampler/instruments.db)],
1332      [config_default_instruments_db_file="${enableval}"],
1333      [config_default_instruments_db_file="/var/lib/linuxsampler/instruments.db"]
1334    )
1335    AC_DEFINE_UNQUOTED(
1336        CONFIG_DEFAULT_INSTRUMENTS_DB_LOCATION,
1337        "$config_default_instruments_db_file",
1338        [Only when instruments DB feature is enabled: default location of the DB file.]
1339    )
1340    AC_SUBST(config_default_instruments_db_file)
1341    
1342    
1343  ###########################################################################  ###########################################################################
1344  # Automatic Benchmarks (to detect the best algorithms for the system)  # Automatic Benchmarks (to detect the best algorithms for the system)
1345    
 AC_LANG_SAVE  
   
1346  if test "$config_signed_triang_algo" = "benchmark"; then  if test "$config_signed_triang_algo" = "benchmark"; then
1347      echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "      echo -n "benchmarking for the best (signed) triangular oscillator algorithm... "
1348      AC_LANG_CPLUSPLUS      AC_LANG_PUSH([C++])
1349      AC_TRY_RUN([      AC_RUN_IFELSE([AC_LANG_SOURCE([[
1350              #define SIGNED 1              #define SIGNED 1
1351              #define SILENT 1              #define SILENT 1
1352              #include "${srcdir}/benchmarks/triang.cpp"              #include "${srcdir}/benchmarks/triang.cpp"
1353          ],          ]])],
1354          triang_signed=0,          triang_signed=0,
1355          triang_signed=$?,          triang_signed=$?,
1356          triang_signed=0          triang_signed=0
1357      )      )
1358        AC_LANG_POP([C++])
1359      if test "$triang_signed" = "2"; then      if test "$triang_signed" = "2"; then
1360          config_signed_triang_algo="intmath"          config_signed_triang_algo="intmath"
1361          echo "integer math"          echo "integer math"
# Line 763  if test "$config_signed_triang_algo" = " Line 1372  if test "$config_signed_triang_algo" = "
1372          echo "Call './configure --help' for further information or read configure.in."          echo "Call './configure --help' for further information or read configure.in."
1373          exit -1;          exit -1;
1374      fi      fi
1375    else
1376        case "$config_signed_triang_algo" in
1377            intmath)
1378                triang_signed=2 ;;
1379            diharmonic)
1380                triang_signed=3 ;;
1381            intmathabs)
1382                triang_signed=5 ;;
1383        esac
1384  fi  fi
1385  AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])  AC_DEFINE_UNQUOTED(CONFIG_SIGNED_TRIANG_ALGO, ${triang_signed}, [Define signed triangular wave algorithm to be used.])
1386    
1387  if test "$config_unsigned_triang_algo" = "benchmark"; then  if test "$config_unsigned_triang_algo" = "benchmark"; then
1388      echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "      echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... "
1389      AC_LANG_CPLUSPLUS      AC_LANG_PUSH([C++])
1390      AC_TRY_RUN([      AC_RUN_IFELSE([AC_LANG_SOURCE([[
1391              #define SIGNED 0              #define SIGNED 0
1392              #define SILENT 1              #define SILENT 1
1393              #include "${srcdir}/benchmarks/triang.cpp"              #include "${srcdir}/benchmarks/triang.cpp"
1394          ],          ]])],
1395          triang_unsigned=0,          triang_unsigned=0,
1396          triang_unsigned=$?,          triang_unsigned=$?,
1397          triang_unsigned=0          triang_unsigned=0
1398      )      )
1399        AC_LANG_POP([C++])
1400      if test "$triang_unsigned" = "2"; then      if test "$triang_unsigned" = "2"; then
1401          config_unsigned_triang_algo="intmath"          config_unsigned_triang_algo="intmath"
1402          echo "integer math"          echo "integer math"
# Line 794  if test "$config_unsigned_triang_algo" = Line 1413  if test "$config_unsigned_triang_algo" =
1413          echo "Call './configure --help' for further information or read configure.in."          echo "Call './configure --help' for further information or read configure.in."
1414          exit -1;          exit -1;
1415      fi      fi
1416    else
1417        case "$config_unsigned_triang_algo" in
1418            intmath)
1419                triang_unsigned=2 ;;
1420            diharmonic)
1421                triang_unsigned=3 ;;
1422            intmathabs)
1423                triang_unsigned=5 ;;
1424        esac
1425  fi  fi
1426  AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])  AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.])
1427    
 AC_LANG_RESTORE  
   
1428    
1429  ###########################################################################  ###########################################################################
1430  # Create Build Files  # Create Build Files
1431    
1432  AM_CONFIG_HEADER(config.h)  AC_CONFIG_HEADERS([config.h])
 AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD")  
1433    
1434  AC_LANG_CPLUSPLUS  AC_LANG([C++])
 AC_PROG_CXX  
   
 # some gcc 4.0 versions need -msse for SSE register allocations  
 if test "$config_asm" = "yes"; then  
   if test "$def_arch_x86" = 1; then  
     CXXFLAGS="$CXXFLAGS -msse"  
   fi  
 fi  
1435    
1436  # 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
1437  # this, the dlfcn.h check in am_prog_libtool may fail.  # this, the dlfcn.h check in am_prog_libtool may fail.
1438  AC_CHECK_HEADER(stdlib.h)  AC_CHECK_HEADER(stdlib.h)
1439    
1440  AC_OUTPUT( \  AC_CONFIG_FILES([\
1441      Makefile \      Makefile \
1442      man/Makefile \      man/Makefile \
1443      man/linuxsampler.1 \      man/linuxsampler.1 \
1444        man/lscp.1 \
1445      src/Makefile \      src/Makefile \
1446        src/db/Makefile \
1447      src/network/Makefile \      src/network/Makefile \
1448      src/engines/Makefile \      src/engines/Makefile \
1449      src/engines/gig/Makefile \      src/engines/gig/Makefile \
1450        src/engines/sf2/Makefile \
1451        src/engines/sfz/Makefile \
1452      src/engines/common/Makefile \      src/engines/common/Makefile \
1453      src/common/Makefile src/lib/Makefile \      src/effects/Makefile \
1454      src/lib/fileloader/Makefile \      src/common/Makefile \
     src/lib/fileloader/libgig/Makefile \  
1455      src/testcases/Makefile \      src/testcases/Makefile \
1456      src/drivers/Makefile \      src/drivers/Makefile \
1457      src/drivers/audio/Makefile \      src/drivers/audio/Makefile \
1458      src/drivers/midi/Makefile \      src/drivers/midi/Makefile \
1459        src/plugins/Makefile \
1460        src/hostplugins/Makefile \
1461        src/hostplugins/dssi/Makefile \
1462        src/hostplugins/lv2/Makefile \
1463        src/hostplugins/lv2/manifest.ttl \
1464        src/hostplugins/vst/Makefile \
1465        src/hostplugins/au/Makefile \
1466        src/scriptvm/Makefile \
1467        src/scriptvm/editor/Makefile \
1468        src/shell/Makefile \
1469      linuxsampler.spec \      linuxsampler.spec \
1470      debian/Makefile \      debian/Makefile \
1471      Artwork/Makefile \      Artwork/Makefile \
1472      scripts/Makefile \      scripts/Makefile \
1473      osx/Makefile \      osx/Makefile \
1474      osx/LinuxSampler.xcode/Makefile \      osx/linuxsampler.xcodeproj/Makefile \
1475      Documentation/Makefile \      Documentation/Makefile \
1476      Documentation/Engines/Makefile \      Documentation/Engines/Makefile \
1477      Documentation/Engines/gig/Makefile \      Documentation/Engines/gig/Makefile \
1478      linuxsampler.pc \      linuxsampler.pc \
1479      Doxyfile \      Doxyfile \
1480  )  ])
1481    AC_OUTPUT
1482    
1483    # resolve all nested variables in '${config_plugin_dir}'
1484    # (merely for providing a human readable summary below)
1485    while test $config_plugin_dir != `eval echo ${config_plugin_dir}` ; do
1486            config_plugin_dir=`eval echo ${config_plugin_dir}`
1487    done
1488    
1489    
1490  ###########################################################################  ###########################################################################
# Line 857  echo "" Line 1494  echo ""
1494  echo "#####################################################################"  echo "#####################################################################"
1495  echo "# LinuxSampler Configuration                                        #"  echo "# LinuxSampler Configuration                                        #"
1496  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1497    echo "# Release Version: ${VERSION}"
1498    echo "# LSCP Version: ${LSCP_RELEASE_MAJOR}.${LSCP_RELEASE_MINOR}"
1499    echo "#-------------------------------------------------------------------"
1500  echo "# Assembly Optimizations: ${config_asm}"  echo "# Assembly Optimizations: ${config_asm}"
1501  echo "# Development Mode: ${config_dev_mode}"  echo "# Development Mode: ${config_dev_mode}"
1502  echo "# Debug Level: ${config_debug_level}"  echo "# Debug Level: ${config_debug_level}"
# Line 870  echo "# Streams to be refilled per Disk Line 1510  echo "# Streams to be refilled per Disk
1510  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"  echo "# Minimum Stream Refill Size: ${config_stream_min_refill}"
1511  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"  echo "# Maximum Stream Refill Size: ${config_stream_max_refill}"
1512  echo "# Stream Size: ${config_stream_size}"  echo "# Stream Size: ${config_stream_size}"
1513  echo "# Maximum Disk Streams: ${config_max_streams}"  echo "# Default Maximum Disk Streams: ${config_max_streams}"
1514  echo "# Maximum Voices: ${config_max_voices}"  echo "# Default Maximum Voices: ${config_max_voices}"
1515  echo "# Default Subfragment Size: ${config_subfragment_size}"  echo "# Default Subfragment Size: ${config_subfragment_size}"
1516  echo "# Global Volume Attenuation: ${config_global_attenuation}"  echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}"
1517  echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"  echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}"
1518  echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"  echo "# Signed Triangular Oscillator Algorithm: ${config_signed_triang_algo}"
1519  echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"  echo "# Unsigned Triangular Oscillator Algorithm: ${config_unsigned_triang_algo}"
# Line 889  echo "# Override Filter Resonance Contro Line 1529  echo "# Override Filter Resonance Contro
1529  echo "# Override Filter Type: ${config_override_filter_type}"  echo "# Override Filter Type: ${config_override_filter_type}"
1530  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"  echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}"
1531  echo "# Process Muted Channels: ${config_process_muted_channels}"  echo "# Process Muted Channels: ${config_process_muted_channels}"
1532    echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}"
1533    echo "# Apply global volume SysEx by MIDI port: ${config_master_volume_sysex_by_port}"
1534  echo "# Interpolate Volume: ${config_interpolate_volume}"  echo "# Interpolate Volume: ${config_interpolate_volume}"
1535    echo "# Instruments database support: ${config_instruments_db}"
1536    if test "$config_instruments_db" = "yes"; then
1537    echo "# Instruments DB default location: ${config_default_instruments_db_file}"
1538    fi
1539    echo "# Plugin Path: ${config_plugin_dir}"
1540    echo "#-------------------------------------------------------------------"
1541    echo "# MIDI Input Drivers:"
1542    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack_midi}, CoreMIDI: ${config_have_coremidi}, MME: ${config_have_mme}, MidiShare: ${config_have_midishare}"
1543    echo "#-------------------------------------------------------------------"
1544    echo "# Audio Output Drivers:"
1545    echo "# ALSA: ${config_have_alsa}, JACK: ${config_have_jack}, ARTS: ${config_have_arts}, CoreAudio: ${config_have_coreaudio}, ASIO: ${config_have_asio}"
1546    echo "#-------------------------------------------------------------------"
1547    echo "# Sampler Engines:"
1548    echo "# GIG: yes, SF2: ${config_have_sf2}, SFZ: yes"
1549    echo "#-------------------------------------------------------------------"
1550    echo "# Effect plugin systems for internal effects:"
1551    echo "# LADSPA: yes"
1552    echo "#-------------------------------------------------------------------"
1553    echo "# Building sampler as plugin for following host standards:"
1554    echo "# DSSI: ${config_have_dssi}, LV2: ${config_have_lv2}, VST: ${config_have_vst}, AU: ${config_have_au}"
1555  echo "#-------------------------------------------------------------------#"  echo "#-------------------------------------------------------------------#"
1556  echo "# Read './configure --help' or file 'configure.in' for details.     #"  echo "# Read './configure --help' or file 'configure.in' for details.     #"
1557  echo "#####################################################################"  echo "#####################################################################"

Legend:
Removed from v.832  
changed lines
  Added in v.3818

  ViewVC Help
Powered by ViewVC