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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1800 - (show annotations) (download)
Sun Dec 7 01:26:46 2008 UTC (10 years, 3 months ago) by schoenebeck
Original Path: linuxsampler/trunk/configure.in
File size: 52230 byte(s)
* maximum voices and disk streams can now be altered at runtime (added new
  LSCP commands "GET VOICES", "SET VOICES", "GET STREAMS", "SET STREAMS"
  and accordingly new LSCP events "GLOBAL_INFO:VOICES" and
  "GLOBAL_INFO:STREAMS")
* bumped version to 0.5.1.8cvs

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

  ViewVC Help
Powered by ViewVC