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

Contents of /linuxsampler/trunk/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1762 - (show annotations) (download)
Fri Aug 29 17:33:02 2008 UTC (10 years, 11 months ago) by schoenebeck
File size: 51187 byte(s)
* global volume sysex message can now be selected at compile time to be
  only applied to the sampler channels that are connected to the respective
  MIDI input port the SysEx message arrived on (by default global volume
  SysEx messages apply globally to the whole sampler)
* bumped version to 0.5.1.7cvs

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

  ViewVC Help
Powered by ViewVC