--- qsampler/trunk/configure.ac 2014/06/17 09:32:58 2643 +++ qsampler/trunk/configure.ac 2015/09/03 09:56:47 2842 @@ -1,5 +1,5 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(Qsampler, 0.2.3.10, rncbc@rncbc.org, qsampler) +AC_INIT(Qsampler, 0.3.1.5, rncbc@rncbc.org, qsampler) AC_CONFIG_SRCDIR(src/qsampler.cpp) AC_CONFIG_HEADERS(src/config.h) @@ -32,21 +32,15 @@ # Enable Qt4/5 availability. AC_ARG_ENABLE(qt4, - AC_HELP_STRING([--enable-qt4], [enable Qt4 build (default=yes)]), + AC_HELP_STRING([--enable-qt4], [enable Qt4 build (default=no)]), [ac_qt4="$enableval"], - [ac_qt4="yes"]) + [ac_qt4="no"]) AC_ARG_ENABLE(qt5, - AC_HELP_STRING([--enable-qt5], [enable Qt5 build (default=no)]), + AC_HELP_STRING([--enable-qt5], [enable Qt5 build (default=yes)]), [ac_qt5="$enableval"], - [ac_qt5="no"]) + [ac_qt5="yes"]) -if test "x$ac_qt4" = "xno"; then - ac_qt5="yes" -fi -if test "x$ac_qt5" = "xyes"; then - ac_qt4="no" -fi # Enable libgig availability. @@ -55,6 +49,12 @@ [ac_libgig="$enableval"], [ac_libgig="yes"]) +# Enable X11 unique/single instance. +AC_ARG_ENABLE(xunique, + AC_HELP_STRING([--enable-xunique], [enable X11 unique/single instance (default=yes)]), + [ac_xunique="$enableval"], + [ac_xunique="yes"]) + # Enable debugger stack-trace option (assumes --enable-debug). AC_ARG_ENABLE(stacktrace, AC_HELP_STRING([--enable-stacktrace], [enable debugger stack-trace (default=no)]), @@ -68,10 +68,31 @@ ac_with_paths="/usr /usr/local" fi -# Set for alternate Qt installation dir. -AC_ARG_WITH(qt, - AC_HELP_STRING([--with-qt=PATH], [use alternate Qt install path]), - [ac_with_paths="$ac_with_paths $withval"]) +# Set for alternate Qt4/5 installation dir. +AC_ARG_WITH(qt4, + AC_HELP_STRING([--with-qt4=PATH], [use alternate Qt4 install path]), + [ac_qt4_path="$withval"], [ac_qt4_path="no"]) + +AC_ARG_WITH(qt5, + AC_HELP_STRING([--with-qt5=PATH], [use alternate Qt5 install path]), + [ac_qt5_path="$withval"], [ac_qt5_path="no"]) + +if test "x$ac_qt4_path" != "xno"; then + ac_with_paths="$ac_with_paths $ac_qt4_path" + ac_qt4="yes" +fi + +if test "x$ac_qt5_path" != "xno"; then + ac_with_paths="$ac_with_paths $ac_qt5_path" + ac_qt5="yes" +fi + +if test "x$ac_qt5" = "xno"; then + ac_qt4="yes" +fi +if test "x$ac_qt4" = "xyes"; then + ac_qt5="no" +fi # Set for alternate liblscp installation dir. AC_ARG_WITH(liblscp, @@ -105,88 +126,118 @@ # Check for proper flags. ac_arch=`uname -m` -# Check for some a-la-debian alternatives... -ac_qtdirs="qt" - -if test "x$ac_qt4" = "xyes"; then - ac_qtdirs="qt4 $ac_qtdirs" -fi -if test "x$ac_qt5" = "xyes"; then - ac_qtdirs="qt5 $ac_qtdirs" -fi - -ac_topdirs="/usr/share /usr/lib" +# Check for install paths and alternatives... +ac_libdirs="lib" if test "x$ac_arch" = "xx86_64"; then - CFLAGS="-fPIC $CFLAGS" - CPPFLAGS="-fPIC $CPPFLAGS" - ac_topdirs="$ac_topdirs /usr/lib64" + ac_libdirs="$ac_libdirs lib64" fi -for X in $ac_topdirs; do - for Y in $ac_qtdirs; do - if test -d $X/$Y/bin; then - ac_with_paths="$X/$Y $ac_with_paths" - fi - done -done +CFLAGS="-fPIC $CFLAGS" +CPPFLAGS="-fPIC $CPPFLAGS" # Prepend alternate dependencies paths. ac_path=$PATH + for X in $ac_with_paths; do if test -d $X/bin; then ac_path="$X/bin:$ac_path" fi -# if test -x $X/qmake; then -# ac_path="$X:$ac_path" -# fi if test -d $X/include; then - for Y in $ac_qtdirs; do - if test -d $X/include/$Y; then - CFLAGS="-I$X/include/$Y $CFLAGS" - CPPFLAGS="-I$X/include/$Y $CPPFLAGS" - ac_incpath="$X/include/$Y $ac_incpath" - fi - done - CFLAGS="-I$X/include $CFLAGS" + CFLAGS="-I$X/include $CFLAGS " CPPFLAGS="-I$X/include $CPPFLAGS" ac_incpath="$X/include $ac_incpath" fi - if test "x$ac_arch" = "xx86_64" -a -d $X/lib64; then - LIBS="-L$X/lib64 $LIBS" - ac_libs="-L$X/lib64 $ac_libs" - fi - if test -d $X/lib; then - LIBS="-L$X/lib $LIBS" - ac_libs="-L$X/lib $ac_libs" - fi + for Y in $ac_libdirs; do + if test -d $X/$Y; then + LIBS="-L$X/$Y $LIBS" + ac_libs="-L$X/$Y $ac_libs" + fi + done done +# A common error message: +ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." -# Check for proper Qt version. -AC_CACHE_CHECK([for Qt library version >= 4.4], - ac_cv_qtversion, [ - AC_TRY_LINK([#include "QtCore/qglobal.h"], [ -#if QT_VERSION < 0x040400 -#error Qt library 4.4 or greater required. -#endif - ], ac_cv_qtversion="yes", [ - echo "no; Qt 4.4 or greater is required" - exit - ]) -]) +if test "x$ac_qt4" = "xyes"; then + AC_PATH_PROG(ac_qmake, qmake-qt4, [no], $ac_path) +fi +if test "x$ac_qt5" = "xyes"; then + AC_PATH_PROG(ac_qmake, qmake-qt5, [no], $ac_path) +fi +if test "x$ac_qmake" = "xno"; then + AC_PATH_PROG(ac_cv_qmake, qmake, [no], $ac_path) + ac_qmake=$ac_cv_qmake +fi +if test "x$ac_qmake" = "xno"; then + AC_MSG_ERROR([qmake $ac_errmsg]) +fi +# Check for proper Qt4/5 major version. +ac_qt_version_major=`$ac_qmake -query QT_VERSION | cut -d. -f1` +if test "x$ac_qt4" = "xyes" -a "x$ac_qt_version_major" != "x4"; then + AC_MSG_ERROR([qmake-qt4 $ac_errmsg (qt4-devel)]) +fi +if test "x$ac_qt5" = "xyes" -a "x$ac_qt_version_major" != "x5"; then + AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)]) +fi -# A common error message: -ac_errmsg="not found in current PATH. Maybe QT development environment isn't available (qt-devel)." +ac_qt_install_bins=`$ac_qmake -query QT_INSTALL_BINS` +if test -d $ac_qt_install_bins; then + ac_path="$ac_qt_install_bins:$ac_path" +fi -# Check for Qt qmake utility. -AC_PATH_PROG(ac_qmake, qmake, [no], $ac_path) +# Check it again, now with updated PATH, just in case... +AC_PATH_PROG(ac_cv_qmake, qmake, [no], $ac_path) +ac_qmake=$ac_cv_qmake if test "x$ac_qmake" = "xno"; then AC_MSG_ERROR([qmake $ac_errmsg]) fi + AC_SUBST(ac_qmake) +ac_qt_install_headers=`$ac_qmake -query QT_INSTALL_HEADERS` +if test -d $ac_qt_install_headers; then + CFLAGS="-I$ac_qt_install_headers $CFLAGS " + CPPFLAGS="-I$ac_qt_install_headers $CPPFLAGS" + ac_incpath="$ac_qt_install_headers $ac_incpath" +fi + +ac_qt_install_libs=`$ac_qmake -query QT_INSTALL_LIBS` +if test -d $ac_qt_install_libs; then + LIBS="-L$ac_qt_install_libs $LIBS" + ac_libs="-L$ac_qt_install_libs $ac_libs" +fi + +# Check for proper Qt4/5 version. +if test "x$ac_qt4" = "xyes"; then + AC_CACHE_CHECK([for Qt library version >= 4.4], + ac_cv_qtversion, [ + AC_TRY_LINK([#include "QtCore/qglobal.h"], [ + #if QT_VERSION < 0x040400 || QT_VERSION >= 0x050000 + #error Qt library 4.4 or greater required. + #endif + ], ac_cv_qtversion="yes", [ + echo "no; Qt 4.4 or greater is required" + exit 1 + ]) + ]) +fi + +if test "x$ac_qt5" = "xyes"; then + AC_CACHE_CHECK([for Qt library version >= 5.1], + ac_cv_qtversion, [ + AC_TRY_LINK([#include "QtCore/qglobal.h"], [ + #if QT_VERSION < 0x050100 || QT_VERSION >= 0x060000 + #error Qt library 5.1 or greater required. + #endif + ], ac_cv_qtversion="yes", [ + echo "no; Qt 5.1 or greater is required" + exit 1 + ]) + ]) +fi + # Check for Qt moc utility. AC_PATH_PROG(ac_moc, moc, [no], $ac_path) if test "x$ac_moc" = "xno"; then @@ -215,6 +266,7 @@ fi AC_SUBST(ac_lrelease) + # Checks for libraries. AC_CHECK_LIB(m, main) AC_CHECK_LIB(X11, main) @@ -355,14 +407,14 @@ # Check for optional libraries. if test "x$ac_libgig" = "xyes"; then PKG_CHECK_MODULES(LIBGIG, gig >= 3.3.0, [ac_libgig="yes"], [ac_libgig="no"]) - AC_SUBST(LIBGIG_CFLAGS) - AC_SUBST(LIBGIG_LIBS) - ac_cflags="$ac_cflags $LIBGIG_CFLAGS" - ac_libs="$ac_libs $LIBGIG_LIBS" if test "x$ac_libgig" = "xyes"; then AC_DEFINE(CONFIG_LIBGIG, 1, [Define if libgig is available.]) - AC_DEFINE(HAVE_LIBGIG_SETAUTOLOAD, 1, [Define if libgig provides gig::File::SetAutoLoad() method.]) - have_libgig_setautoload="yes" + AC_SUBST(LIBGIG_CFLAGS) + AC_SUBST(LIBGIG_LIBS) + ac_cflags="$ac_cflags $LIBGIG_CFLAGS" + ac_libs="$ac_libs $LIBGIG_LIBS" + AC_DEFINE(CONFIG_LIBGIG_SETAUTOLOAD, 1, [Define if libgig provides gig::File::SetAutoLoad() method.]) + ac_libgig_setautoload="yes" fi fi @@ -372,6 +424,11 @@ AC_DEFINE(CONFIG_ROUND, 1, [Define if round is available.]) fi +# Check for X11 unique/single instance. +if test "x$ac_xunique" = "xyes"; then + AC_DEFINE(CONFIG_XUNIQUE, 1, [Define if X11 unique/single instance is enabled.]) +fi + # Check for debugging stack-trace. if test "x$ac_stacktrace" = "xyes"; then AC_DEFINE(CONFIG_STACKTRACE, 1, [Define if debugger stack-trace is enabled.]) @@ -397,6 +454,13 @@ AC_MSG_ERROR([LSCP headers not found.]) fi +if test "x$ac_libgig" = "xyes"; then + AC_CHECK_HEADER(libgig/SF.h, [ac_libgig_sf2="yes"], [ac_libgig_sf2="no"]) + if test "x$ac_libgig_sf2" = "xyes"; then + AC_DEFINE(CONFIG_LIBGIG_SF2, 1, [Define if libgig/SF.h is available.]) + fi +fi + # Checks for typedefs, structures, and compiler characteristics. # AC_C_CONST @@ -426,12 +490,14 @@ echo " LSCP edit instrument support . . . . . . . . . . .: $ac_edit_instrument" echo " GigaSampler instrument file support (libgig) . . .: $ac_libgig" if test "x$ac_libgig" = "xyes"; then -echo " libgig supports fast information retrieval . . . .: $have_libgig_setautoload" +echo " libgig supports fast information retrieval . . . .: $ac_libgig_setautoload" +echo " libgig supports SoundFont2 instruments files . . .: $ac_libgig_sf2" fi echo " LSCP channel MIDI event support . . . . . . . . .: $ac_channel_midi_event" echo " LSCP device MIDI event support . . . . . . . . . .: $ac_device_midi_event" echo " LSCP runtime max. voices / disk streams support .: $ac_max_voices" echo +echo " X11 Unique/Single instance . . . . . . . . . . . .: $ac_xunique" echo " Debugger stack-trace (gdb) . . . . . . . . . . . .: $ac_stacktrace" echo echo " Install prefix . . . . . . . . . . . . . . . . . .: $ac_prefix"