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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC