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

Legend:
Removed from v.716  
changed lines
  Added in v.2368

  ViewVC Help
Powered by ViewVC