--- qsampler/trunk/configure.ac 2016/09/23 11:42:50 2987 +++ qsampler/trunk/configure.ac 2017/01/13 16:35:41 3086 @@ -1,12 +1,30 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(Qsampler, 0.4.1.1, rncbc@rncbc.org, qsampler) +AC_INIT(Qsampler, 0.4.2, rncbc@rncbc.org, qsampler) AC_CONFIG_SRCDIR(src/qsampler.cpp) AC_CONFIG_HEADERS(src/config.h) AC_CONFIG_FILES(Makefile qsampler.spec src/src.pri src/qsampler.desktop) -# Sanitize version string. -ac_version=$(echo $PACKAGE_VERSION | sed -r 's/^([0-9|\.]+).*$/\1/') +# Build version string. +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 -r 's/^[[^_]]+_//') + ac_cv_build_version=$(echo $ac_cv_build_version | sed -r 's/-g/git./') + ac_cv_build_version=$(echo $ac_cv_build_version | sed -r 's/[[_|-]]+/./g') + else + ac_cv_build_version=$PACKAGE_VERSION + fi +]) +ac_build_version="$ac_cv_build_version" +AC_DEFINE_UNQUOTED(CONFIG_BUILD_VERSION, ["$ac_build_version"], [Build version string.]) + +# Sanitized version string. +AC_CACHE_VAL([ac_cv_version], [ + ac_cv_version=$(echo $ac_cv_build_version | sed -r 's/^([[0-9|\.]]+).*$/\1/') +]) +ac_version="$ac_cv_version" +AC_DEFINE_UNQUOTED(CONFIG_VERSION, ["$ac_version"], [Version string.]) AC_SUBST(ac_version) # Set default installation prefix. @@ -127,10 +145,24 @@ # Checks for languages. AC_LANG_CPLUSPLUS +# Check for pkg-config. PKG_PROG_PKG_CONFIG +# Check whether -std=c++11 support is necessary (4 < g++ version < 6). +AC_CACHE_CHECK([for g++ major version], [ac_cv_gxx_version_major], [ + ac_cv_gxx_version_major=$($CC -dumpversion) + if test -n "$ac_cv_gxx_version_major"; then + ac_cv_gxx_version_major=$(echo $ac_cv_gxx_version_major | cut -d'.' -f1); + fi + ac_gxx_version_major=$(($ac_cv_gxx_version_major + 0)) +]) +ac_gxx_version_major=$ac_cv_gxx_version_major +if test $ac_gxx_version_major -gt 4 -a $ac_gxx_version_major -lt 6; then + CXXFLAGS="-std=c++11 $CXXFLAGS" +fi + # Check for proper flags. -ac_arch=`uname -m` +ac_arch=$(uname -m) # Check for install paths and alternatives... ac_libdirs="lib" @@ -178,21 +210,29 @@ 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` +# 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_major=$(($ac_cv_qt_version_major + 0)) +]) +ac_qt_version_major=$ac_cv_qt_version_major if test "x$ac_qt4" = "xyes"; then - if test "x$ac_qt_version_major" != "x4"; then + if test $ac_qt_version_major -ne 4; then AC_MSG_ERROR([qmake-qt4 $ac_errmsg (qt4-devel)]) fi else - if test "x$ac_qt_version_major" != "x5"; then + if test $ac_qt_version_major -ne 5; then AC_MSG_ERROR([qmake-qt5 $ac_errmsg (qt5-devel)]) fi fi -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" +# Check for proper Qt install path. +AC_CACHE_CHECK([for Qt install path], [ac_cv_qt_install_path], [ + ac_cv_qt_install_path=$($ac_qmake -query QT_INSTALL_BINS) +]) +ac_qt_install_path=$ac_cv_qt_install_path +if test -d $ac_qt_install_path; then + ac_path="$ac_qt_install_path:$ac_path" fi # Check it again, now with updated PATH, just in case... @@ -204,20 +244,26 @@ AC_SUBST(ac_qmake) -ac_qt_install_headers=`$ac_qmake -query QT_INSTALL_HEADERS` +AC_CACHE_CHECK([for Qt install headers], [ac_cv_qt_install_headers], [ + ac_cv_qt_install_headers=$($ac_qmake -query QT_INSTALL_HEADERS) +]) +ac_qt_install_headers=$ac_cv_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` +AC_CACHE_CHECK([for Qt install libraries], [ac_cv_qt_install_libs], [ + ac_cv_qt_install_libs=$($ac_qmake -query QT_INSTALL_LIBS) +]) +ac_qt_install_libs=$ac_cv_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. +# 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, [ @@ -285,16 +331,23 @@ fi # Check for mandatory libraries. -AC_CHECK_LIB(lscp, main, [ac_liblscp="yes"], [ac_liblscp="no"]) -if test "x$ac_liblscp" = "xno"; then - AC_MSG_ERROR([LSCP library not found.]) +PKG_CHECK_MODULES([LSCP], [lscp], [ac_liblscp="yes"], [ac_liblscp="no"]) +if test "x$ac_liblscp" = "xyes"; then + AC_DEFINE(CONFIG_LIBLSCP, 1, [Define if liblscp is available.]) + ac_cflags="$ac_cflags $LSCP_CFLAGS" + ac_libs="$ac_libs $LSCP_LIBS" + CFLAGS="$CFLAGS $LSCP_CFLAGS" + CPPFLAGS="$CPPFLAGS $LSCP_CFLAGS" + LIBS="$LIBS $LSCP_LIBS" +else + AC_MSG_ERROR([*** LSCP library not found (liblscp).]) fi -ac_libs="$ac_libs -llscp" + case "{$host}" in - *mingw*) - ac_libs="$ac_libs -lws2_32" - LIBS="$LIBS -lws2_32" - ;; + *mingw*) + ac_libs="$ac_libs -lws2_32" + LIBS="$LIBS -lws2_32" + ;; esac AC_CACHE_CHECK([for instrument_name in lscp_channel_info_t], @@ -412,16 +465,19 @@ # 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"]) - if test "x$ac_libgig" = "xyes"; then - AC_DEFINE(CONFIG_LIBGIG, 1, [Define if libgig is available.]) - 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 + PKG_CHECK_MODULES([GIG], [gig >= 3.3.0], [ac_libgig="yes"], [ac_libgig="no"]) +fi +if test "x$ac_libgig" = "xyes"; then + AC_DEFINE(CONFIG_LIBGIG, 1, [Define if libgig is available.]) + ac_cflags="$ac_cflags $GIG_CFLAGS" + ac_libs="$ac_libs $GIG_LIBS" + CFLAGS="$CFLAGS $GIG_CFLAGS" + CPPFLAGS="$CPPFLAGS $GIG_CFLAGS" + LIBS="$LIBS $GIG_LIBS" + AC_DEFINE(CONFIG_LIBGIG_SETAUTOLOAD, 1, [Define if libgig provides gig::File::SetAutoLoad() method.]) + ac_libgig_setautoload="yes" +else + AC_MSG_WARN([*** GIG library not found (libgig).]) fi # Check for round math function. @@ -430,42 +486,45 @@ AC_DEFINE(CONFIG_ROUND, 1, [Define if round is available.]) fi + +# Checks for header files. +AC_HEADER_STDC +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(fcntl.h sys/ioctl.h unistd.h signal.h sys/socket.h) + +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 + # 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 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" + fi fi +AC_SUBST(ac_qx11extras) # Check for debugging stack-trace. if test "x$ac_stacktrace" = "xyes"; then AC_DEFINE(CONFIG_STACKTRACE, 1, [Define if debugger stack-trace is enabled.]) fi -# Some recent distros (eg. fedora, debian) require this. -if test "x$ac_cv_lib_X11_main" = "xyes"; then - ac_libs="$ac_libs -lX11" -fi - -AC_SUBST(ac_libs) -AC_SUBST(ac_incpath) AC_SUBST(ac_cflags) AC_SUBST(ac_ldflags) +AC_SUBST(ac_incpath) +AC_SUBST(ac_libs) -# Checks for header files. -AC_HEADER_STDC -AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h sys/ioctl.h unistd.h signal.h sys/socket.h) - -AC_CHECK_HEADER(lscp/client.h, [ac_lscp_h="yes"], [ac_lscp_h="no"]) -if test "x$ac_lscp_h" = "xno"; then - 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 @@ -481,7 +540,7 @@ # Output summary message echo -echo " $PACKAGE_NAME $PACKAGE_VERSION" +echo " $PACKAGE_NAME $ac_build_version" echo echo " Build target . . . . . . . . . . . . . . . . . . .: $ac_debug" echo