--- qsampler/trunk/configure.ac 2017/08/25 10:39:58 3347 +++ qsampler/trunk/configure.ac 2021/03/30 23:31:09 3868 @@ -1,5 +1,5 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(Qsampler, 0.4.4, rncbc@rncbc.org, qsampler) +AC_INIT(Qsampler, 0.9.3, rncbc@rncbc.org, qsampler) AC_CONFIG_SRCDIR(src/qsampler.cpp) AC_CONFIG_HEADERS(src/config.h) @@ -9,7 +9,7 @@ AC_CACHE_VAL([ac_cv_build_version], [ ac_cv_build_version=$(git describe --tags --dirty --abbrev=6 2>/dev/null) if test -n "$ac_cv_build_version"; then - ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/^[[^_]]*[[_v]]//i') + ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/^[[^0-9]]\+//') ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/-g/git./') ac_cv_build_version=$(echo $ac_cv_build_version | sed 's/[[_|-]]\+/./g') ac_cv_build_version_extra=$(git rev-parse --abbrev-ref HEAD 2>/dev/null) @@ -64,7 +64,7 @@ # Enable debugging argument option. AC_ARG_ENABLE(debug, - AC_HELP_STRING([--enable-debug], [enable debugging (default=no)]), + AS_HELP_STRING([--enable-debug], [enable debugging (default=no)]), [ac_debug="$enableval"]) if test "x$ac_debug" = "xyes"; then @@ -78,61 +78,47 @@ AC_SUBST(ac_debug) -# Enable Qt4/5 availability. -AC_ARG_ENABLE(qt4, - AC_HELP_STRING([--enable-qt4], [enable Qt4 build (default=no)]), - [ac_qt4="$enableval"], - [ac_qt4="no"]) - - # Enable libgig availability. AC_ARG_ENABLE(libgig, - AC_HELP_STRING([--enable-libgig], [enable libgig interface (default=yes)]), + AS_HELP_STRING([--enable-libgig], [enable libgig interface (default=yes)]), [ac_libgig="$enableval"], [ac_libgig="yes"]) -# Enable X11 unique/single instance. +# Enable unique/single instance. AC_ARG_ENABLE(xunique, - AC_HELP_STRING([--enable-xunique], [enable X11 unique/single instance (default=yes)]), + AS_HELP_STRING([--enable-xunique], [enable 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)]), + AS_HELP_STRING([--enable-stacktrace], [enable debugger stack-trace (default=no)]), [ac_stacktrace="$enableval"]) # Standard installation base dirs. +ac_path=$PATH +ac_pkg_config_path=$PKG_CONFIG_PATH ac_with_paths="" -# 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_qt4="no" +# Set for alternate Qt installation dir. +AC_ARG_WITH(qt, + AS_HELP_STRING([--with-qt=PATH], [use alternate Qt install path]), + [ac_qt_path="$withval"], [ac_qt_path="no"]) + +if test "x$ac_qt_path" != "xno"; then + ac_path="$ac_qt_path/bin:$ac_path" + ac_pkg_config_path="$ac_qt_path/lib/pkgconfig:$ac_pkg_config_path" fi # Set for alternate liblscp installation dir. AC_ARG_WITH(liblscp, - AC_HELP_STRING([--with-liblscp=PATH], [use alternate liblscp install path]), + AS_HELP_STRING([--with-liblscp=PATH], [use alternate liblscp install path]), [ac_with_paths="$ac_with_paths $withval"]) # Set for alternate libgig installation dir. AC_ARG_WITH(libgig, - AC_HELP_STRING([--with-libgig=PATH], [use alternate libgig install path]), + AS_HELP_STRING([--with-libgig=PATH], [use alternate libgig install path]), [ac_with_paths="$ac_with_paths $withval"]) @@ -163,6 +149,10 @@ ac_gxx_version_major=$ac_cv_gxx_version_major if test $ac_gxx_version_major -ge 4 -a $ac_gxx_version_major -lt 6; then CXXFLAGS="-std=c++11 $CXXFLAGS" + ac_cflags="-std=c++11 $ac_cflags" +elif test $ac_gxx_version_major -ge 6 -a $ac_gxx_version_major -lt 11; then + CXXFLAGS="-std=c++17 $CXXFLAGS" + ac_cflags="-std=c++17 $ac_cflags" fi # Check for proper flags. @@ -179,54 +169,65 @@ 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" + ac_path="$X/bin:$ac_path" fi if test -d $X/include; then - CFLAGS="-I$X/include $CFLAGS " - CPPFLAGS="-I$X/include $CPPFLAGS" - ac_incpath="$X/include $ac_incpath" + CFLAGS="-I$X/include $CFLAGS " + CPPFLAGS="-I$X/include $CPPFLAGS" + ac_incpath="$X/include $ac_incpath" 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 + if test -d $X/$Y; then + LIBS="-L$X/$Y $LIBS" + ac_libs="-L$X/$Y $ac_libs" + if test -d $X/$Y/pkgconfig; then + ac_pkg_config_path="$X/$Y/pkgconfig:$ac_pkg_config_path" + fi + fi done done +# Set pkg-config path. +if test -n "$ac_pkg_config_path"; then + export PKG_CONFIG_PATH=$ac_pkg_config_path +fi + + # A common error message: ac_errmsg="not found in current PATH. Maybe QT development environment isn't available." -if test "x$ac_qt4" = "xyes"; then - AC_PATH_PROG(ac_qmake, qmake-qt4, [no], $ac_path) -else - AC_PATH_PROG(ac_qmake, qmake-qt5, [no], $ac_path) +# Check for qtchooser availability. +AC_PATH_TOOL(ac_qtchooser, qtchooser, [no], $ac_path) +if test -x $ac_qtchooser; then + export QT_SELECT=5 fi + +# Check for proper qmake path/version alternatives. +AC_PATH_TOOL(ac_qmake, qmake, [no], $ac_path) if test "x$ac_qmake" = "xno"; then - AC_PATH_PROG(ac_cv_qmake, qmake, [no], $ac_path) + AC_PATH_TOOL(ac_cv_qmake, qmake-qt5, [no], $ac_path) ac_qmake=$ac_cv_qmake fi if test "x$ac_qmake" = "xno"; then - AC_MSG_ERROR([qmake $ac_errmsg]) + AC_PATH_TOOL(ac_cv_qmake, qmake-qt6, [no], $ac_path) + ac_qmake=$ac_cv_qmake fi # Check for proper Qt major version. AC_CACHE_CHECK([for Qt major version], [ac_cv_qt_version_major], [ - ac_cv_qt_version_major=$($ac_qmake -query QT_VERSION | cut -d'.' -f1) + ac_cv_qt_version=$($ac_qmake -query QT_VERSION) + ac_cv_qt_version_major=$(echo $ac_cv_qt_version | cut -d'.' -f1) ac_cv_qt_version_major=$(($ac_cv_qt_version_major + 0)) ]) +ac_qt_version=$ac_cv_qt_version ac_qt_version_major=$ac_cv_qt_version_major -if test "x$ac_qt4" = "xyes"; then - if test $ac_qt_version_major -ne 4; then - AC_MSG_ERROR([qmake-qt4 $ac_errmsg (qt4-devel)]) - fi -else - if test $ac_qt_version_major -ne 5; then +if test "x$ac_qmake" = "xno"; then + if test $ac_qt_version_major -lt 6; then AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)]) + else + AC_MSG_ERROR([qmake-qt6 $ac_errmsg (qt6-devel)]) fi fi @@ -240,7 +241,7 @@ fi # Check it again, now with updated PATH, just in case... -AC_PATH_PROG(ac_cv_qmake, qmake, [no], $ac_path) +AC_PATH_TOOL(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]) @@ -267,58 +268,71 @@ ac_libs="-L$ac_qt_install_libs $ac_libs" fi -# Finally, 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_COMPILE([#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 - ]) - ]) -else - AC_CACHE_CHECK([for Qt library version >= 5.1], - ac_cv_qtversion, [ - AC_TRY_COMPILE([#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 - ]) +# Finally, check for proper Qt version. +AC_CACHE_CHECK([for Qt library version >= 5.1], + ac_cv_qtversion, [ + AC_TRY_COMPILE([#include "QtCore/qglobal.h"], [ + #if QT_VERSION < 0x050100 + #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) +AC_PATH_TOOL(ac_moc, moc, [no], $ac_path) if test "x$ac_moc" = "xno"; then AC_MSG_ERROR([moc $ac_errmsg]) fi AC_SUBST(ac_moc) # Check for Qt uic utility. -AC_PATH_PROG(ac_uic, uic, [no], $ac_path) +AC_PATH_TOOL(ac_uic, uic, [no], $ac_path) if test "x$ac_uic" = "xno"; then AC_MSG_ERROR([uic $ac_errmsg]) fi AC_SUBST(ac_uic) + # Check for Qt lupdate utility. -AC_PATH_PROG(ac_lupdate, lupdate, [no], $ac_path) +AC_PATH_TOOL(ac_lupdate, lupdate, [no], $ac_path) if test "x$ac_lupdate" = "xno"; then - AC_MSG_ERROR([lupdate $ac_errmsg]) + if test $ac_qt_version_major -lt 6; then + AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt5, [no], $ac_path) + else + AC_PATH_TOOL(ac_cv_lupdate, lupdate-qt6, [no], $ac_path) + fi + if test "x$ac_cv_lupdate" = "xno"; then + if test $ac_qt_version_major -lt 6; then + AC_MSG_ERROR([lupdate $ac_errmsg (qt5-linguist)]) + else + AC_MSG_ERROR([lupdate $ac_errmsg (qt6-linguist)]) + fi + else + ac_lupdate=$ac_cv_lupdate; + fi fi AC_SUBST(ac_lupdate) # Check for Qt lrelease utility. -AC_PATH_PROG(ac_lrelease, lrelease, [no], $ac_path) -if test "x$ac_release" = "xno"; then - AC_MSG_ERROR([lrelease $ac_errmsg]) +AC_PATH_TOOL(ac_lrelease, lrelease, [no], $ac_path) +if test "x$ac_lrelease" = "xno"; then + if test $ac_qt_version_major -lt 6; then + AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt5, [no], $ac_path) + else + AC_PATH_TOOL(ac_cv_lrelease, lrelease-qt6, [no], $ac_path) + fi + if test "x$ac_cv_lrelease" = "xno"; then + if test $ac_qt_version_major -lt 6; then + AC_MSG_ERROR([lrelease $ac_errmsg (qt5-linguist)]) + else + AC_MSG_ERROR([lrelease $ac_errmsg (qt6-linguist)]) + fi + else + ac_lrelease=$ac_cv_lrelease; + fi fi AC_SUBST(ac_lrelease) @@ -467,6 +481,11 @@ AC_DEFINE(CONFIG_MAX_VOICES, 1, [Define if max. voices / streams is available.]) fi +AC_CHECK_LIB(lscp, lscp_client_connection_lost, [ac_lscp_conn_lost="yes"], [ac_lscp_conn_lost="no"]) +if test "x$ac_lscp_conn_lost" = "xyes"; then + AC_DEFINE(CONFIG_LSCP_CLIENT_CONNECTION_LOST, 1, [Define if liblscp function lscp_client_connection_lost() is available.]) +fi + # Check for optional libraries. if test "x$ac_libgig" = "xyes"; then PKG_CHECK_MODULES([GIG], [gig >= 3.3.0], [ac_libgig="yes"], [ac_libgig="no"]) @@ -503,21 +522,19 @@ fi fi -# Check for X11 unique/single instance. -if test "x$ac_xunique" = "xyes" -a "x$ac_qt4" = "xno"; then - PKG_CHECK_MODULES([QT5X11EXTRAS], [Qt5X11Extras], [ac_xunique="yes"], [ac_xunique="no"]) -fi +# Check for unique/single instance support. if test "x$ac_xunique" = "xyes"; then - AC_DEFINE(CONFIG_XUNIQUE, 1, [Define if X11 unique/single instance is enabled.]) - if test "x$ac_qt4" = "xno"; then - ac_qx11extras="x11extras" - fi - # Some recent distros (eg. fedora, debian) require this. - if test "x$ac_cv_lib_X11_main" = "xyes"; then - ac_libs="$ac_libs -lX11" + if test $ac_qt_version_major -lt 6; then + PKG_CHECK_MODULES([QT5NETWORK], [Qt5Network], [ac_xunique="yes"], [ac_xunique="no"]) + else + PKG_CHECK_MODULES([QT6NETWORK], [Qt6Network], [ac_xunique="yes"], [ac_xunique="no"]) fi fi -AC_SUBST(ac_qx11extras) +if test "x$ac_xunique" = "xyes"; then + AC_DEFINE(CONFIG_XUNIQUE, 1, [Define if unique/single instance is enabled.]) + ac_qnetwork="network" +fi +AC_SUBST(ac_qnetwork) # Check for debugging stack-trace. if test "x$ac_stacktrace" = "xyes"; then @@ -544,7 +561,7 @@ # Output summary message echo -echo " $PACKAGE_NAME $ac_build_version" +echo " $PACKAGE_NAME $ac_build_version (Qt $ac_qt_version)" echo echo " Build target . . . . . . . . . . . . . . . . . . .: $ac_debug" echo @@ -565,8 +582,9 @@ 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 " LSCP connection loss support . . . . . . . . . . .: $ac_lscp_conn_lost" echo -echo " X11 Unique/Single instance . . . . . . . . . . . .: $ac_xunique" +echo " Unique/Single instance support . . . . . . . . . .: $ac_xunique" echo " Debugger stack-trace (gdb) . . . . . . . . . . . .: $ac_stacktrace" echo echo " Install prefix . . . . . . . . . . . . . . . . . .: $ac_prefix"