--- linuxsampler/trunk/configure.in 2007/12/06 17:19:16 1560 +++ linuxsampler/trunk/configure.in 2008/12/07 01:26:46 1800 @@ -5,7 +5,7 @@ LINUXSAMPLER_RELEASE_MAJOR=0 LINUXSAMPLER_RELEASE_MINOR=5 -LINUXSAMPLER_RELEASE_BUILD=1 +LINUXSAMPLER_RELEASE_BUILD=1.8cvs #------------------------------------------------------------------------------------ # The following is the libtool / shared library version. This doesn't have to @@ -33,11 +33,13 @@ # the LSCP specification version this LinuSampler release complies with: LSCP_RELEASE_MAJOR=1 -LSCP_RELEASE_MINOR=3 +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 +AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL AC_SUBST(SHLIB_VERSION_ARG) @@ -52,6 +54,7 @@ AC_SUBST(target_os) AC_SUBST(target_vendor) +PKG_PROG_PKG_CONFIG ########################################################################### # General Checks @@ -59,7 +62,7 @@ AC_MSG_CHECKING([whether x86 architecture]) def_arch_x86=0 case $target_cpu in - "i386" | "i486" | "i586" | "i686" | "i786") + "i386" | "i486" | "i586" | "i686" | "i786" | "x86_64") echo "yes" def_arch_x86=1;; *) @@ -71,7 +74,7 @@ # (only if the user did not provide one) CXX_CPU_SWITCH= if ! echo "X $CXXFLAGS " | grep -q -- " \(-march=\|-mcpu=\|-mtune=\|-arch=\)" ; then - if test "$def_arch_x86" = 1; then + if test "$def_arch_x86" = 1 -a "$target_cpu" != "x86_64"; then CXX_CPU_SWITCH="-march=$target_cpu" elif test "$target_cpu" = "ppc"; then CXX_CPU_SWITCH="-arch=$target_cpu" @@ -160,6 +163,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) + ########################################################################### @@ -263,7 +271,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 @@ -272,6 +283,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 @@ -403,18 +437,45 @@ 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.]) + +# DSSI +AC_CHECK_HEADERS(dssi.h, + have_dssi=1, + have_dssi=0) +AM_CONDITIONAL(HAVE_DSSI, test $have_dssi = "1") + +# LV2 +PKG_CHECK_MODULES(LV2, lv2core, have_lv2=1, have_lv2=0) +if test $have_lv2 = "0"; then + AC_CHECK_HEADER(lv2.h, have_lv2=1, have_lv2=0) +fi +AM_CONDITIONAL(HAVE_LV2, test $have_lv2 = "1") + +# VST +AC_ARG_ENABLE(vstsdk-dir, + [ --enable-vstsdk-dir + Directory where the VST SDK is located. + This automatically enables the compilation + of the VST plugin.], + [VSTSDK_DIR="${enableval}"], + [VSTSDK_DIR=] +) +AC_SUBST(VSTSDK_DIR) +AM_CONDITIONAL(HAVE_VST, test "x$VSTSDK_DIR" != "x") + + # 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 @@ -532,6 +593,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 @@ -637,23 +709,25 @@ AC_ARG_ENABLE(max-streams, [ --enable-max-streams - Maximum amount of disk streams (default=90). This - value should always be higher than the maximum - amount of voices.], + Initial maximum amount of disk streams + (default=90). This value can be changed at + runtime. It should always be higher than the + maximum amount of voices.], [config_max_streams="${enableval}"], [config_max_streams="90"] ) -AC_DEFINE_UNQUOTED(CONFIG_MAX_STREAMS, $config_max_streams, [Define max. streams.]) +AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_STREAMS, $config_max_streams, [Define initial max. streams.]) AC_ARG_ENABLE(max-voices, [ --enable-max-voices - Maximum amount of voices (default=64). This value - should always be lower than the maximum amount of - disk streams.], + Initial maximum amount of voices (default=64). + This value can be changed at runtime. It should + always be lower than the maximum amount of disk + streams.], [config_max_voices="${enableval}"], [config_max_voices="64"] ) -AC_DEFINE_UNQUOTED(CONFIG_MAX_VOICES, $config_max_voices, [Define max. voices.]) +AC_DEFINE_UNQUOTED(CONFIG_DEFAULT_MAX_VOICES, $config_max_voices, [Define initial max. voices.]) AC_ARG_ENABLE(subfragment-size, [ --enable-subfragment-size @@ -955,6 +1029,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, @@ -1081,7 +1171,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 @@ -1104,12 +1193,17 @@ src/engines/Makefile \ src/engines/gig/Makefile \ src/engines/common/Makefile \ + src/effects/Makefile \ src/common/Makefile \ src/testcases/Makefile \ src/drivers/Makefile \ src/drivers/audio/Makefile \ src/drivers/midi/Makefile \ src/plugins/Makefile \ + src/hostplugins/Makefile \ + src/hostplugins/dssi/Makefile \ + src/hostplugins/lv2/Makefile \ + src/hostplugins/vst/Makefile \ linuxsampler.spec \ debian/Makefile \ Artwork/Makefile \ @@ -1150,8 +1244,8 @@ echo "# Minimum Stream Refill Size: ${config_stream_min_refill}" echo "# Maximum Stream Refill Size: ${config_stream_max_refill}" echo "# Stream Size: ${config_stream_size}" -echo "# Maximum Disk Streams: ${config_max_streams}" -echo "# Maximum Voices: ${config_max_voices}" +echo "# Default Maximum Disk Streams: ${config_max_streams}" +echo "# Default Maximum Voices: ${config_max_voices}" echo "# Default Subfragment Size: ${config_subfragment_size}" echo "# Default Global Volume Attenuation: ${config_global_attenuation_default}" echo "# Voice Stealing Algorithm: ${config_voice_steal_algo}" @@ -1170,6 +1264,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