--- linuxsampler/trunk/configure.in 2009/10/27 19:04:57 2018 +++ linuxsampler/trunk/configure.ac 2014/02/23 19:10:36 2523 @@ -1,11 +1,13 @@ -AC_INIT(configure.in) - #------------------------------------------------------------------------------------ # LinuxSampler's / liblinuxsampler's "official" release version: -LINUXSAMPLER_RELEASE_MAJOR=1 -LINUXSAMPLER_RELEASE_MINOR=0 -LINUXSAMPLER_RELEASE_BUILD=0.cvs2 +m4_define(linuxsampler_release_major, 1) +m4_define(linuxsampler_release_minor, 0) +m4_define(linuxsampler_release_build, 0.svn33) + + +AC_INIT([linuxsampler],[linuxsampler_release_major.linuxsampler_release_minor.linuxsampler_release_build]) +AC_CONFIG_SRCDIR([configure.ac]) #------------------------------------------------------------------------------------ # The following is the libtool / shared library version. This doesn't have to @@ -33,18 +35,22 @@ # the LSCP specification version this LinuSampler release complies with: LSCP_RELEASE_MAJOR=1 -LSCP_RELEASE_MINOR=4 +LSCP_RELEASE_MINOR=6 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_PROG_LIBTOOL +AC_PROG_YACC AC_SUBST(SHLIB_VERSION_ARG) AC_SUBST(SHARED_VERSION_INFO) +module=yes eval LIB_EXT=$shrext_cmds +AC_SUBST(LIB_EXT) + AC_C_BIGENDIAN AC_CANONICAL_HOST @@ -78,6 +84,19 @@ fi AC_SUBST([CXX_CPU_SWITCH]) +mac=no +linux=no +case "$host" in + *-*-darwin*) + mac=yes + ;; + *-*-linux*) + linux=yes + ;; +esac +AM_CONDITIONAL(LINUX, test "$linux" = yes) +AM_CONDITIONAL(MAC, test "$mac" = yes) + # check if we're on MS Windows AC_CHECK_HEADERS( mmsystem.h, @@ -88,9 +107,8 @@ AM_CONDITIONAL(HAVE_WINDOWS, test $have_windows = "1") AC_MSG_CHECKING([whether UNIX98 compatible]) -AC_LANG_SAVE -AC_LANG_C -AC_TRY_RUN([ +AC_LANG_PUSH([C]) +AC_RUN_IFELSE([AC_LANG_SOURCE([[ #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif @@ -102,18 +120,18 @@ exit(-1); /* not UNIX98 compatible */ #endif } -], +]])], have_unix98="yes", have_unix98="no", have_unix98="no" ) -AC_LANG_RESTORE +AC_LANG_POP([C]) AC_MSG_RESULT([$have_unix98]) -if test "$have_unix98" = "no" -a "have_windows" = "0"; then +if test "$have_unix98" = "no" -a "$have_windows" = "0" -a "$mac" = "no" ; 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 - echo "./configure with environment variable HAVE_UNIX98=1 in case you think you + echo "pthread_mutexattr_settype() call in Mutex.cpp. You may want to run" + echo "./configure with environment variable HAVE_UNIX98=1 in case you think you" echo "have a UNIX98 compatible system." exit -1; fi @@ -165,6 +183,18 @@ AC_CHECK_HEADERS(uuid/uuid.h) AC_SEARCH_LIBS(uuid_generate, uuid) +# In case Bison is available, determine the exact version, since we need to +# use different custom parser code for Bison 2.x vs. Bison 3.x generated +# parser yacc tables. +if echo "$YACC" | grep -q bison; then + # NOTE: m4 removes [], that's why it needs to be escaped + bison_version=[`$YACC --version | head -n 1 | sed -e 's/[^0-9.]*\([-0-9.]\+\)$/\1/'`] + bison_version_major=`echo $bison_version | cut -d. -f1` + bison_version_minor=`echo $bison_version | cut -d. -f2` + AC_DEFINE_UNQUOTED(HAVE_BISON_MAJ,$bison_version_major,[Define to the major version of the GNU Bison program installed.]) + AC_DEFINE_UNQUOTED(HAVE_BISON_MIN,$bison_version_minor,[Define to the minor version of the GNU Bison program installed.]) +fi + ########################################################################### @@ -199,9 +229,8 @@ fi echo -n "checking Alsa version... " - AC_LANG_SAVE - AC_LANG_C - AC_TRY_RUN([ + AC_LANG_PUSH([C]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void main(void) { /* ensure backward compatibility */ @@ -210,12 +239,12 @@ #endif exit(SND_LIB_MAJOR); } - ], + ]])], alsa_major=0, alsa_major=$?, alsa_major=0 ) - AC_TRY_RUN([ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void main(void) { /* ensure backward compatibility */ @@ -224,12 +253,12 @@ #endif exit(SND_LIB_MINOR); } - ], + ]])], alsa_minor=0, alsa_minor=$?, alsa_minor=0 ) - AC_TRY_RUN([ + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include void main(void) { /* ensure backward compatibility */ @@ -238,12 +267,12 @@ #endif exit(SND_LIB_SUBMINOR); } - ], + ]])], alsa_subminor=0, alsa_subminor=$?, alsa_subminor=0 ) - AC_LANG_RESTORE + AC_LANG_POP([C]) echo "$alsa_major.$alsa_minor.$alsa_subminor"; AC_DEFINE_UNQUOTED(ALSA_MAJOR,$alsa_major,[Define to the major version number of your Alsa installation.]) AC_DEFINE_UNQUOTED(ALSA_MINOR,$alsa_minor,[Define to the minor version number of your Alsa installation.]) @@ -274,7 +303,8 @@ AC_SUBST(JACK_CFLAGS) linuxsampler_save_LIBS=$LIBS LIBS="$JACK_LIBS $LIBS" - AC_CHECK_FUNCS(jack_client_name_size jack_client_open) + AC_CHECK_FUNCS(jack_client_name_size jack_client_open \ + jack_on_info_shutdown) LIBS=$linuxsampler_save_LIBS have_audio_output_driver="true"; fi @@ -499,10 +529,9 @@ AM_CONDITIONAL(HAVE_DSSI, test $config_have_dssi = "yes") # LV2 -PKG_CHECK_MODULES(LV2, lv2core, config_have_lv2="yes", config_have_lv2="no") -if test $config_have_lv2 = "no"; then - AC_CHECK_HEADER(lv2.h, config_have_lv2="yes", config_have_lv2="no") -fi +PKG_CHECK_MODULES(LV2, lv2 >= 1.0.0, config_have_lv2="yes", config_have_lv2="no") +AC_SUBST(LV2_CFLAGS) +AC_SUBST(LV2_LIBS) AM_CONDITIONAL(HAVE_LV2, test $config_have_lv2 = "yes") # VST @@ -528,6 +557,21 @@ AM_CONDITIONAL(HAVE_AU, test $config_have_au = "yes") AM_CONDITIONAL(HAVE_AUFLAGS, test "$AUFLAGS" != "") +if test $config_have_au = "yes" ; then + if test "x$DEVELOPER_EXTRAS_DIR" = "x" ; then + if test -d /Developer/Extras ; then + DEVELOPER_EXTRAS_DIR=/Developer/Extras + else + DEVELOPER_EXTRAS_DIR=/Developer/Examples + fi + fi + AC_SUBST(DEVELOPER_EXTRAS_DIR) +fi + +if test "x$MAC_PLUGIN_INSTALL_DIR" = "x" ; then + MAC_PLUGIN_INSTALL_DIR=/Library/Audio/Plug-Ins +fi +AC_SUBST(MAC_PLUGIN_INSTALL_DIR) # have we found at least one MIDI input and one audio output driver ? if test "$have_midi_input_driver" = "false"; then @@ -597,6 +641,19 @@ AC_SUBST(SNDFILE_CFLAGS) AC_SUBST(SNDFILE_LIBS) +# Check for Vorbis and FLAC support in libsndfile +linuxsampler_save_CFLAGS=$CFLAGS +CFLAGS="$SNDFILE_CFLAGS $CFLAGS" +AC_CHECK_DECLS([SF_FORMAT_VORBIS, SF_FORMAT_FLAC], [], [], [[#include ]]) + +# Check for loop functionality in libsndfile +AC_CHECK_MEMBERS([SF_INSTRUMENT.loops],, + [AC_MSG_WARN([Your version of libsndfile does not support + reading of loop information. LinuxSampler will not be able to + extract loop information from sample files.])], + [#include ]) +CFLAGS=$linuxsampler_save_CFLAGS + # Instruments DB feature (requires SQLite 3.3) AC_ARG_ENABLE(instruments-db, [ --disable-instruments-db @@ -692,13 +749,14 @@ AC_DEFINE_UNQUOTED(CONFIG_RT_EXCEPTIONS, 1, [Define to 1 to allow exceptions in the realtime context.]) fi +config_pthread_testcancel="$mac" AC_ARG_ENABLE(pthread-testcancel, [ --enable-pthread-testcancel - Enable pthread_testcancel() calls and avoid asynchronous - cancel of pthreads (default=no).], + Enable pthread_testcancel() calls and avoid + asynchronous cancel of pthreads (default=yes + for Mac targets, no otherwise).], [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 @@ -1178,20 +1236,19 @@ ########################################################################### # Automatic Benchmarks (to detect the best algorithms for the system) -AC_LANG_SAVE - if test "$config_signed_triang_algo" = "benchmark"; then echo -n "benchmarking for the best (signed) triangular oscillator algorithm... " - AC_LANG_CPLUSPLUS - AC_TRY_RUN([ + AC_LANG_PUSH([C++]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #define SIGNED 1 #define SILENT 1 #include "${srcdir}/benchmarks/triang.cpp" - ], + ]])], triang_signed=0, triang_signed=$?, triang_signed=0 ) + AC_LANG_POP([C++]) if test "$triang_signed" = "2"; then config_signed_triang_algo="intmath" echo "integer math" @@ -1222,16 +1279,17 @@ if test "$config_unsigned_triang_algo" = "benchmark"; then echo -n "benchmarking for the best (unsigned) triangular oscillator algorithm... " - AC_LANG_CPLUSPLUS - AC_TRY_RUN([ + AC_LANG_PUSH([C++]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ #define SIGNED 0 #define SILENT 1 #include "${srcdir}/benchmarks/triang.cpp" - ], + ]])], triang_unsigned=0, triang_unsigned=$?, triang_unsigned=0 ) + AC_LANG_POP([C++]) if test "$triang_unsigned" = "2"; then config_unsigned_triang_algo="intmath" echo "integer math" @@ -1260,25 +1318,24 @@ fi AC_DEFINE_UNQUOTED(CONFIG_UNSIGNED_TRIANG_ALGO, ${triang_unsigned}, [Define unsigned triangular wave algorithm to be used.]) -AC_LANG_RESTORE - ########################################################################### # Create Build Files -AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(linuxsampler, "$LINUXSAMPLER_RELEASE_MAJOR.$LINUXSAMPLER_RELEASE_MINOR.$LINUXSAMPLER_RELEASE_BUILD") +AC_CONFIG_HEADERS([config.h]) +AM_INIT_AUTOMAKE([subdir-objects]) -AC_LANG_CPLUSPLUS +AC_LANG([C++]) # autoconf 2.59/libtool 1.5.12 bug? work-around. Without a check like # this, the dlfcn.h check in am_prog_libtool may fail. AC_CHECK_HEADER(stdlib.h) -AC_OUTPUT( \ +AC_CONFIG_FILES([\ Makefile \ man/Makefile \ man/linuxsampler.1 \ + man/lscp.1 \ src/Makefile \ src/db/Makefile \ src/network/Makefile \ @@ -1297,8 +1354,10 @@ src/hostplugins/Makefile \ src/hostplugins/dssi/Makefile \ src/hostplugins/lv2/Makefile \ + src/hostplugins/lv2/manifest.ttl \ src/hostplugins/vst/Makefile \ src/hostplugins/au/Makefile \ + src/shell/Makefile \ linuxsampler.spec \ debian/Makefile \ Artwork/Makefile \ @@ -1310,7 +1369,8 @@ Documentation/Engines/gig/Makefile \ linuxsampler.pc \ Doxyfile \ -) +]) +AC_OUTPUT # resolve all nested variables in '${config_plugin_dir}' # (merely for providing a human readable summary below) @@ -1326,7 +1386,7 @@ echo "#####################################################################" echo "# LinuxSampler Configuration #" echo "#-------------------------------------------------------------------#" -echo "# Release Version: ${LINUXSAMPLER_RELEASE_MAJOR}.${LINUXSAMPLER_RELEASE_MINOR}.${LINUXSAMPLER_RELEASE_BUILD}" +echo "# Release Version: ${VERSION}" echo "# LSCP Version: ${LSCP_RELEASE_MAJOR}.${LSCP_RELEASE_MINOR}" echo "#-------------------------------------------------------------------" echo "# Assembly Optimizations: ${config_asm}" @@ -1379,6 +1439,9 @@ echo "# Sampler Engines:" echo "# GIG: yes, SF2: ${config_have_sf2}, SFZ: yes" echo "#-------------------------------------------------------------------" +echo "# Effect plugin systems for internal effects:" +echo "# LADSPA: yes" +echo "#-------------------------------------------------------------------" echo "# Building sampler as plugin for following host standards:" echo "# DSSI: ${config_have_dssi}, LV2: ${config_have_lv2}, VST: ${config_have_vst}, AU: ${config_have_au}" echo "#-------------------------------------------------------------------#"