--- linuxsampler/trunk/configure.in 2007/10/19 17:52:15 1454 +++ linuxsampler/trunk/configure.in 2008/08/29 17:33:02 1762 @@ -5,7 +5,7 @@ LINUXSAMPLER_RELEASE_MAJOR=0 LINUXSAMPLER_RELEASE_MINOR=5 -LINUXSAMPLER_RELEASE_BUILD=0 +LINUXSAMPLER_RELEASE_BUILD=1.7cvs #------------------------------------------------------------------------------------ # The following is the libtool / shared library version. This doesn't have to @@ -24,20 +24,21 @@ # 6. If any interfaces have been removed since the last public release, then set age # to 0. -LIBLINUXSAMPLER_LT_CURRENT=1 +LIBLINUXSAMPLER_LT_CURRENT=2 LIBLINUXSAMPLER_LT_REVISION=0 -LIBLINUXSAMPLER_LT_AGE=0 +LIBLINUXSAMPLER_LT_AGE=1 SHARED_VERSION_INFO="$LIBLINUXSAMPLER_LT_CURRENT:$LIBLINUXSAMPLER_LT_REVISION:$LIBLINUXSAMPLER_LT_AGE" #------------------------------------------------------------------------------------ # the LSCP specification version this LinuSampler release complies with: LSCP_RELEASE_MAJOR=1 -LSCP_RELEASE_MINOR=2 +LSCP_RELEASE_MINOR=4 AC_DEFINE_UNQUOTED(LSCP_RELEASE_MAJOR, ${LSCP_RELEASE_MAJOR}, [LSCP spec major version this release complies with.]) AC_DEFINE_UNQUOTED(LSCP_RELEASE_MINOR, ${LSCP_RELEASE_MINOR}, [LSCP spec minor version this release complies with.]) +AC_PROG_CXX AM_PROG_LIBTOOL AC_SUBST(SHLIB_VERSION_ARG) @@ -52,6 +53,7 @@ AC_SUBST(target_os) AC_SUBST(target_vendor) +PKG_PROG_PKG_CONFIG ########################################################################### # General Checks @@ -79,6 +81,14 @@ fi AC_SUBST([CXX_CPU_SWITCH]) +# check if we're on MS Windows +AC_CHECK_HEADERS( + mmsystem.h, + have_windows=1, + have_windows=0 +) +AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1") + AC_MSG_CHECKING([whether UNIX98 compatible]) AC_LANG_SAVE AC_LANG_C @@ -101,7 +111,7 @@ ) AC_LANG_RESTORE AC_MSG_RESULT([$have_unix98]) -if test "$have_unix98" = "no"; then +if test "$have_unix98" = "no" -a "have_windows" = "0"; then if test "x$HAVE_UNIX98" = "x"; then echo "LinuxSampler only runs on UNIX98 compatible systems, which is mandatory for" echo "pthread_mutexattr_settype() call in Mutex.cpp. You may want to run @@ -152,6 +162,11 @@ echo "NPTL glibc bug check disabled" fi +# FIXME: this is actually a dependency of libgig, not of LS directly, why +# isn't it hidden by libgig? +AC_CHECK_HEADERS(uuid/uuid.h) +AC_SEARCH_LIBS(uuid_generate, uuid) + ########################################################################### @@ -255,7 +270,10 @@ if test $have_jack = "1"; then AC_SUBST(JACK_LIBS) AC_SUBST(JACK_CFLAGS) - AC_CHECK_LIB(jack, jack_client_name_size, [AC_DEFINE(HAVE_JACK_CLIENT_NAME_SIZE, 1, [Define to 1 if you have the `jack_client_name_size' function.])], , $JACK_LIBS) + linuxsampler_save_LIBS=$LIBS + LIBS="$JACK_LIBS $LIBS" + AC_CHECK_FUNCS(jack_client_name_size jack_client_open) + LIBS=$linuxsampler_save_LIBS have_audio_output_driver="true"; fi else @@ -264,6 +282,29 @@ AM_CONDITIONAL(HAVE_JACK, test $have_jack = "1") AC_DEFINE_UNQUOTED(HAVE_JACK,$have_jack,[Define to 1 if you have JACK installed.]) +# JACK MIDI +have_jack_midi=0 +if test $have_jack = "1"; then + linuxsampler_save_CFLAGS=$CFLAGS + linuxsampler_save_LIBS=$LIBS + CFLAGS="$JACK_CFLAGS $CFLAGS" + LIBS="$JACK_LIBS $LIBS" + AC_CHECK_HEADER(jack/midiport.h, have_jack_midi=1, have_jack_midi=0) + if test $have_jack_midi = "1"; then + AC_CHECK_FUNCS(jack_midi_get_event_count) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ + jack_midi_clear_buffer(0, 0); + ]])], [AC_DEFINE(JACK_MIDI_FUNCS_NEED_NFRAMES, 1, + [Define to 1 if you have the old jack midi functions that need an nframes argument.])]) + have_midi_input_driver="true" + fi + CFLAGS=$linuxsampler_save_CFLAGS + LIBS=$linuxsampler_save_LIBS +fi +AM_CONDITIONAL(HAVE_JACK_MIDI, test $have_jack_midi = "1") +AC_DEFINE_UNQUOTED(HAVE_JACK_MIDI, $have_jack_midi, + [Define to 1 if you have JACK with MIDI support installed.]) + # ARTS AC_ARG_ENABLE(arts-driver, [ --disable-arts-driver @@ -286,6 +327,45 @@ AM_CONDITIONAL(HAVE_ARTS, test "$have_arts" = "1") AC_DEFINE_UNQUOTED(HAVE_ARTS,$have_arts,[Define to 1 if you have aRts installed.]) +# ASIO AUDIO (Win32) +AC_ARG_ENABLE(asiosdk-dir, + [ --enable-asiosdk-dir + Directory where the ASIO SDK is located, this automatically + enables the compilation of the ASIO audio output driver.], + [config_asiosdk_dir="${enableval}"], + [config_asiosdk_dir="."] +) +AC_SUBST(config_asiosdk_dir) + +AC_ARG_ENABLE(asio-driver, + [ --disable-asio-driver + Disable support for the Windows ASIO driver.], + [config_asio_driver="$enableval"], + [config_asio_driver="yes"] +) +have_asio=0 +ASIOSDK_BASEDIR= +if test "$config_asio_driver" = "yes"; then + asiosdk_headerfile=$config_asiosdk_dir/ASIOSDK2/common/asio.h + echo -n "checking for ASIO headerfile: $asiosdk_headerfile ...." + if test -e $asiosdk_headerfile ; then + echo yes + have_asio=1 + ASIOSDK_BASEDIR="$config_asiosdk_dir" + else + echo no + have_asio=0 + fi + if test "$have_asio" = "1"; then + have_audio_output_driver="true" + fi +else + echo "Windows ASIO support disabled by configure script parameter" +fi +AC_SUBST(ASIOSDK_BASEDIR) +AM_CONDITIONAL(HAVE_ASIO, test $have_asio = "1") +AC_DEFINE_UNQUOTED(HAVE_ASIO,$have_asio,[Define to 1 if you have ASIO installed.]) + # MidiShare (Linux, OS X, Windows) AC_ARG_ENABLE(midishare-driver, [ --disable-midishare-driver @@ -334,18 +414,40 @@ AM_CONDITIONAL(HAVE_COREMIDI, test $have_coremidi = "1") AC_DEFINE_UNQUOTED(HAVE_COREMIDI,$have_coremidi,[Define to 1 if you have CoreMIDI installed.]) +# MME MIDI (Win32) +AC_ARG_ENABLE(mmemidi-driver, + [ --disable-mmemidi-driver + Disable support for the Windows MME MIDI system.], + [config_mmemidi_driver="$enableval"], + [config_mmemidi_driver="yes"] +) +have_mmemidi=0 +if test "$config_mmemidi_driver" = "yes"; then + AC_CHECK_HEADERS(mmsystem.h, + have_mmemidi=1, + have_mmemidi=0 + ) + if test "$have_mmemidi" = "1"; then + have_midi_input_driver="true" + fi +else + echo "MME MIDI support disabled by configure script parameter" +fi +AM_CONDITIONAL(HAVE_MME_MIDI, test $have_mmemidi = "1") +AC_DEFINE_UNQUOTED(HAVE_MME_MIDI,$have_mmemidi,[Define to 1 if you have MME MIDI installed.]) + # have we found at least one MIDI input and one audio output driver ? if test "$have_midi_input_driver" = "false"; then echo "No supported MIDI input system found!" echo "Sorry, LinuxSampler only supports the following MIDI drivers at the moment:" - echo "ALSA, MIDIShare, CoreMIDI." + echo "ALSA, JACK, MIDIShare, CoreMIDI, MME." echo "If you think you have one of those available on your system, make sure you" echo "also have the respective development (header) files installed." exit -1; fi if test "$have_audio_output_driver" = "false"; then echo "No supported audio output system found!" - echo "Sorry, LinuxSampler only supports ALSA, JACK and ARTS as audio output" + echo "Sorry, LinuxSampler only supports ALSA, JACK, ARTS and ASIO as audio output" echo "driver at the moment!" exit -1; fi @@ -356,7 +458,7 @@ # Checks for various DLL libraries # Check presence of libgig -libgig_version="3.2.0" +libgig_version="3.2.1" PKG_CHECK_MODULES(GIG, gig >= $libgig_version, HAVE_GIG=true, HAVE_GIG=false) if test "$HAVE_GIG" = "false"; then echo "Required libgig version not found!" @@ -463,6 +565,17 @@ AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.]) fi +AC_ARG_ENABLE(pthread-testcancel, + [ --enable-pthread-testcancel + Enable pthread_testcancel() calls and avoid asynchronous + cancel of pthreads (default=no).], + [config_pthread_testcancel="$enableval"], + [config_pthread_testcancel="no"] +) +if test "$config_pthread_testcancel" = "yes"; then + AC_DEFINE_UNQUOTED(CONFIG_PTHREAD_TESTCANCEL, 1, [Define to 1 to enable pthread_testcancel() calls.]) +fi + AC_ARG_ENABLE(preload-samples, [ --enable-preload-samples Due to seeking and latency issues with hard drives @@ -886,6 +999,22 @@ AC_DEFINE_UNQUOTED(CONFIG_INTERPOLATE_VOLUME, 1, [Define to 1 if you want to enable interpolation of volume modulation.]) fi +AC_ARG_ENABLE(master-volume-sysex-by-port, + [ --enable-master-volume-sysex-by-port + Whether global volume sysex message should be + applied globally to the whole sampler or only to + the sampler channels connected to the same MIDI + input port on which the sysex message arrived on. + By default global volume sysex messages apply + globally to the whole sampler, since many MIDI + devices behave that way.], + [config_master_volume_sysex_by_port="$enableval"], + [config_master_volume_sysex_by_port="no"] +) +if test "$config_master_volume_sysex_by_port" = "yes"; then + 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.]) +fi + AC_ARG_ENABLE(plugin-dir, [ --enable-plugin-dir Directory where the sampler shall look for potential plugins, @@ -1012,7 +1141,6 @@ AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD") AC_LANG_CPLUSPLUS -AC_PROG_CXX # some gcc 4.0 versions need -msse for SSE register allocations if test "$config_asm" = "yes"; then @@ -1035,6 +1163,7 @@ src/engines/Makefile \ src/engines/gig/Makefile \ src/engines/common/Makefile \ + src/effects/Makefile \ src/common/Makefile \ src/testcases/Makefile \ src/drivers/Makefile \ @@ -1101,6 +1230,7 @@ echo "# Assert GS SysEx Checksum: ${config_assert_gs_sysex_checksum}" echo "# Process Muted Channels: ${config_process_muted_channels}" echo "# Process All-Notes-Off MIDI message: ${config_process_all_notes_off}" +echo "# Apply global volume SysEx by MIDI port: ${config_master_volume_sysex_by_port}" echo "# Interpolate Volume: ${config_interpolate_volume}" echo "# Instruments database support: ${config_instruments_db}" if test "$config_instruments_db" = "yes"; then