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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3118 - (show annotations) (download)
Fri Apr 21 13:33:03 2017 UTC (4 weeks, 3 days ago) by schoenebeck
File size: 58964 byte(s)
* NKSP: Fixed crash when using built-in script array variable "%ALL_EVENTS".
* NKSP: Added built-in function "change_amp_lfo_depth()".
* NKSP: Added built-in function "change_amp_lfo_freq()".
* NKSP: Added built-in function "change_pitch_lfo_depth()".
* NKSP: Added built-in function "change_pitch_lfo_freq()".
* Bumped version (2.0.0.svn44).

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

  ViewVC Help
Powered by ViewVC