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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2521 - (show annotations) (download)
Wed Feb 19 19:02:43 2014 UTC (10 years ago) by schoenebeck
File size: 58725 byte(s)
* VirtualMidiDevice: implemented support for program change, bank select
  and pitch bend.
* Bumped version (1.0.0.svn32).

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

  ViewVC Help
Powered by ViewVC