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

Contents of /linuxsampler/trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2360 - (show annotations) (download)
Thu Aug 16 17:01:35 2012 UTC (11 years, 7 months ago) by persson
Original Path: linuxsampler/trunk/configure.in
File size: 57686 byte(s)
* LV2: fixed save/restore of SFZ state (patch by David Robillard)
* LV2: made LV2 plugin buildable on Windows and Mac

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

  ViewVC Help
Powered by ViewVC