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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2618 - (show annotations) (download)
Wed Jun 11 11:39:44 2014 UTC (9 years, 9 months ago) by schoenebeck
File size: 58776 byte(s)
* Fixed execution of "init" instrument script handler.
* Fixed further crashes.
* Bumped version (1.0.0.svn50).

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

  ViewVC Help
Powered by ViewVC