annotate acinclude.m4 @ 281:c8162c2992f8 piper-nopiper

Further test updates. The AF results should match to 3dp with different MAD builds. The onset position results hopefully should match completely now prefix sorted, let's see.
author Chris Cannam
date Tue, 29 Nov 2016 17:14:21 +0000
parents 6153429ebf89
children 9d547101e7cd
rev   line source
Chris@42 1
Chris@42 2 AC_DEFUN([SV_MODULE_REQUIRED],
Chris@42 3 [
Chris@42 4 SV_MODULE_MODULE=$1
Chris@42 5 SV_MODULE_VERSION_TEST="$2"
Chris@42 6 SV_MODULE_HEADER=$3
Chris@42 7 SV_MODULE_LIB=$4
Chris@42 8 SV_MODULE_FUNC=$5
Chris@42 9 SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
Chris@42 10 SV_MODULE_FAILED=1
Chris@48 11 if test -n "$$1_LIBS" ; then
Chris@48 12 AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
Chris@48 13 CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
Chris@48 14 LIBS="$LIBS $$1_LIBS"
Chris@48 15 SV_MODULE_FAILED=""
Chris@48 16 fi
Chris@42 17 if test -z "$SV_MODULE_VERSION_TEST" ; then
Chris@42 18 SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
Chris@42 19 fi
Chris@48 20 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
Chris@42 21 PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find required module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
Chris@42 22 fi
Chris@42 23 if test -n "$SV_MODULE_FAILED"; then
Chris@42 24 AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE"],[AC_MSG_ERROR([Failed to find header $SV_MODULE_HEADER for required module $SV_MODULE_MODULE])])
Chris@42 25 if test -n "$SV_MODULE_LIB"; then
Chris@42 26 AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_ERROR([Failed to find library $SV_MODULE_LIB for required module $SV_MODULE_MODULE])])
Chris@42 27 fi
Chris@42 28 fi
Chris@42 29 ])
Chris@42 30
Chris@42 31 AC_DEFUN([SV_MODULE_OPTIONAL],
Chris@42 32 [
Chris@42 33 SV_MODULE_MODULE=$1
Chris@42 34 SV_MODULE_VERSION_TEST="$2"
Chris@42 35 SV_MODULE_HEADER=$3
Chris@42 36 SV_MODULE_LIB=$4
Chris@42 37 SV_MODULE_FUNC=$5
Chris@42 38 SV_MODULE_HAVE=HAVE_$(echo $1 | tr '[a-z]' '[A-Z]')
Chris@42 39 SV_MODULE_FAILED=1
Chris@48 40 if test -n "$$1_LIBS" ; then
Chris@48 41 AC_MSG_NOTICE([User set ${SV_MODULE_MODULE}_LIBS explicitly, skipping test for $SV_MODULE_MODULE])
Chris@48 42 CXXFLAGS="$CXXFLAGS $$1_CFLAGS"
Chris@48 43 LIBS="$LIBS $$1_LIBS"
Chris@48 44 SV_MODULE_FAILED=""
Chris@48 45 fi
Chris@42 46 if test -z "$SV_MODULE_VERSION_TEST" ; then
Chris@42 47 SV_MODULE_VERSION_TEST=$SV_MODULE_MODULE
Chris@42 48 fi
Chris@48 49 if test -n "$SV_MODULE_FAILED" && test -n "$PKG_CONFIG"; then
Chris@42 50 PKG_CHECK_MODULES($1,[$SV_MODULE_VERSION_TEST],[HAVES="$HAVES $SV_MODULE_HAVE";CXXFLAGS="$CXXFLAGS $$1_CFLAGS";LIBS="$LIBS $$1_LIBS";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find optional module $SV_MODULE_MODULE using pkg-config, trying again by old-fashioned means])])
Chris@42 51 fi
Chris@42 52 if test -n "$SV_MODULE_FAILED"; then
Chris@42 53 AC_CHECK_HEADER([$SV_MODULE_HEADER],[HAVES="$HAVES $SV_MODULE_HAVE";SV_MODULE_FAILED=""],[AC_MSG_NOTICE([Failed to find header $SV_MODULE_HEADER for optional module $SV_MODULE_MODULE])])
Chris@42 54 if test -z "$SV_MODULE_FAILED"; then
Chris@42 55 if test -n "$SV_MODULE_LIB"; then
Chris@42 56 AC_CHECK_LIB([$SV_MODULE_LIB],[$SV_MODULE_FUNC],[LIBS="$LIBS -l$SV_MODULE_LIB"],[AC_MSG_NOTICE([Failed to find library $SV_MODULE_LIB for optional module $SV_MODULE_MODULE])])
Chris@42 57 fi
Chris@42 58 fi
Chris@42 59 fi
Chris@42 60 ])
Chris@42 61
Chris@42 62 # Check for Qt. The only part of Qt we use directly is qmake.
Chris@42 63
Chris@42 64 AC_DEFUN([SV_CHECK_QT],
Chris@42 65 [
Chris@42 66 AC_REQUIRE([AC_PROG_CXX])
Chris@42 67
Chris@42 68 if test x$QMAKE = x ; then
Chris@74 69 AC_CHECK_PROG(QMAKE, qmake-qt5, $QTDIR/bin/qmake-qt5,,$QTDIR/bin/)
Chris@42 70 fi
Chris@42 71 if test x$QMAKE = x ; then
Chris@222 72 AC_CHECK_PROG(QMAKE, qt5-qmake, $QTDIR/bin/qt5-qmake,,$QTDIR/bin/)
Chris@222 73 fi
Chris@222 74 if test x$QMAKE = x ; then
Chris@42 75 AC_CHECK_PROG(QMAKE, qmake, $QTDIR/bin/qmake,,$QTDIR/bin/)
Chris@42 76 fi
Chris@42 77 if test x$QMAKE = x ; then
Chris@42 78 AC_CHECK_PROG(QMAKE, qmake.exe, $QTDIR/bin/qmake.exe,,$QTDIR/bin/)
Chris@42 79 fi
Chris@42 80 if test x$QMAKE = x ; then
Chris@74 81 AC_CHECK_PROG(QMAKE, qmake-qt5, qmake-qt5,,$PATH)
Chris@42 82 fi
Chris@42 83 if test x$QMAKE = x ; then
Chris@222 84 AC_CHECK_PROG(QMAKE, qt5-qmake, qt5-qmake,,$PATH)
Chris@222 85 fi
Chris@222 86 if test x$QMAKE = x ; then
Chris@42 87 AC_CHECK_PROG(QMAKE, qmake, qmake,,$PATH)
Chris@42 88 fi
Chris@42 89 if test x$QMAKE = x ; then
Chris@42 90 AC_MSG_ERROR([
Chris@74 91 Failed to find the required qmake-qt5 or qmake program. Please
Chris@74 92 ensure you have the necessary Qt5 development files installed, and
Chris@74 93 if necessary set QTDIR to the location of your Qt5 installation.
Chris@42 94 ])
Chris@42 95 fi
Chris@42 96
Chris@42 97 # Suitable versions of qmake should print out something like:
Chris@42 98 #
Chris@42 99 # QMake version 2.01a
Chris@42 100 # Using Qt version 4.6.3 in /usr/lib
Chris@42 101 #
Chris@42 102 # This may be translated, so we check only for the numbers (2.x and 4.x
Chris@42 103 # in that order).
Chris@42 104 #
Chris@42 105 QMAKE_VERSION_OUTPUT=`$QMAKE -v`
Chris@42 106 case "$QMAKE_VERSION_OUTPUT" in
Chris@74 107 *5.*) ;;
Chris@42 108 *) AC_MSG_WARN([
Chris@42 109 *** The version of qmake found in "$QMAKE" looks like it might be
Chris@74 110 from the wrong version of Qt (Qt5 is required). Please check
Chris@74 111 that this is the correct version of qmake for Qt5 builds.
Chris@42 112 ])
Chris@42 113 esac
Chris@42 114
Chris@42 115 case "`uname`" in
Chris@42 116 *Darwin*) QMAKE="$QMAKE -spec macx-g++";;
Chris@42 117 esac
Chris@42 118
Chris@42 119 ])
Chris@42 120
Chris@222 121 # From autoconf archive:
Chris@222 122
Chris@222 123 # ============================================================================
Chris@222 124 # http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
Chris@222 125 # ============================================================================
Chris@222 126 #
Chris@222 127 # SYNOPSIS
Chris@222 128 #
Chris@222 129 # AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
Chris@222 130 #
Chris@222 131 # DESCRIPTION
Chris@222 132 #
Chris@222 133 # Check for baseline language coverage in the compiler for the C++11
Chris@222 134 # standard; if necessary, add switches to CXXFLAGS to enable support.
Chris@222 135 #
Chris@222 136 # The first argument, if specified, indicates whether you insist on an
Chris@222 137 # extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
Chris@222 138 # -std=c++11). If neither is specified, you get whatever works, with
Chris@222 139 # preference for an extended mode.
Chris@222 140 #
Chris@222 141 # The second argument, if specified 'mandatory' or if left unspecified,
Chris@222 142 # indicates that baseline C++11 support is required and that the macro
Chris@222 143 # should error out if no mode with that support is found. If specified
Chris@222 144 # 'optional', then configuration proceeds regardless, after defining
Chris@222 145 # HAVE_CXX11 if and only if a supporting mode is found.
Chris@222 146 #
Chris@222 147 # LICENSE
Chris@222 148 #
Chris@222 149 # Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
Chris@222 150 # Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
Chris@222 151 # Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
Chris@222 152 # Copyright (c) 2014 Alexey Sokolov <sokolov@google.com>
Chris@222 153 #
Chris@222 154 # Copying and distribution of this file, with or without modification, are
Chris@222 155 # permitted in any medium without royalty provided the copyright notice
Chris@222 156 # and this notice are preserved. This file is offered as-is, without any
Chris@222 157 # warranty.
Chris@222 158
Chris@222 159 m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [[
Chris@222 160 template <typename T>
Chris@222 161 struct check
Chris@222 162 {
Chris@222 163 static_assert(sizeof(int) <= sizeof(T), "not big enough");
Chris@222 164 };
Chris@222 165
Chris@222 166 struct Base {
Chris@222 167 virtual void f() {}
Chris@222 168 };
Chris@222 169 struct Child : public Base {
Chris@222 170 virtual void f() override {}
Chris@222 171 };
Chris@222 172
Chris@222 173 typedef check<check<bool>> right_angle_brackets;
Chris@222 174
Chris@222 175 int a;
Chris@222 176 decltype(a) b;
Chris@222 177
Chris@222 178 typedef check<int> check_type;
Chris@222 179 check_type c;
Chris@222 180 check_type&& cr = static_cast<check_type&&>(c);
Chris@222 181
Chris@222 182 auto d = a;
Chris@222 183 auto l = [](){};
Chris@222 184 ]])
Chris@222 185
Chris@222 186 AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
Chris@222 187 m4_if([$1], [], [],
Chris@222 188 [$1], [ext], [],
Chris@222 189 [$1], [noext], [],
Chris@222 190 [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
Chris@222 191 m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
Chris@222 192 [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
Chris@222 193 [$2], [optional], [ax_cxx_compile_cxx11_required=false],
Chris@222 194 [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])
Chris@222 195 AC_LANG_PUSH([C++])dnl
Chris@222 196 ac_success=no
Chris@222 197 AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
Chris@222 198 ax_cv_cxx_compile_cxx11,
Chris@222 199 [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
Chris@222 200 [ax_cv_cxx_compile_cxx11=yes],
Chris@222 201 [ax_cv_cxx_compile_cxx11=no])])
Chris@222 202 if test x$ax_cv_cxx_compile_cxx11 = xyes; then
Chris@222 203 ac_success=yes
Chris@222 204 fi
Chris@222 205
Chris@222 206 m4_if([$1], [noext], [], [dnl
Chris@222 207 if test x$ac_success = xno; then
Chris@222 208 for switch in -std=gnu++11 -std=gnu++0x; do
Chris@222 209 cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
Chris@222 210 AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
Chris@222 211 $cachevar,
Chris@222 212 [ac_save_CXXFLAGS="$CXXFLAGS"
Chris@222 213 CXXFLAGS="$CXXFLAGS $switch"
Chris@222 214 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
Chris@222 215 [eval $cachevar=yes],
Chris@222 216 [eval $cachevar=no])
Chris@222 217 CXXFLAGS="$ac_save_CXXFLAGS"])
Chris@222 218 if eval test x\$$cachevar = xyes; then
Chris@222 219 CXXFLAGS="$CXXFLAGS $switch"
Chris@222 220 ac_success=yes
Chris@222 221 break
Chris@222 222 fi
Chris@222 223 done
Chris@222 224 fi])
Chris@222 225
Chris@222 226 m4_if([$1], [ext], [], [dnl
Chris@222 227 if test x$ac_success = xno; then
Chris@222 228 for switch in -std=c++11 -std=c++0x; do
Chris@222 229 cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
Chris@222 230 AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
Chris@222 231 $cachevar,
Chris@222 232 [ac_save_CXXFLAGS="$CXXFLAGS"
Chris@222 233 CXXFLAGS="$CXXFLAGS $switch"
Chris@222 234 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
Chris@222 235 [eval $cachevar=yes],
Chris@222 236 [eval $cachevar=no])
Chris@222 237 CXXFLAGS="$ac_save_CXXFLAGS"])
Chris@222 238 if eval test x\$$cachevar = xyes; then
Chris@222 239 CXXFLAGS="$CXXFLAGS $switch"
Chris@222 240 ac_success=yes
Chris@222 241 break
Chris@222 242 fi
Chris@222 243 done
Chris@222 244 fi])
Chris@222 245 AC_LANG_POP([C++])
Chris@222 246 if test x$ax_cxx_compile_cxx11_required = xtrue; then
Chris@222 247 if test x$ac_success = xno; then
Chris@222 248 AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
Chris@222 249 fi
Chris@222 250 else
Chris@222 251 if test x$ac_success = xno; then
Chris@222 252 HAVE_CXX11=0
Chris@222 253 AC_MSG_NOTICE([No compiler with C++11 support was found])
Chris@222 254 else
Chris@222 255 HAVE_CXX11=1
Chris@222 256 AC_DEFINE(HAVE_CXX11,1,
Chris@222 257 [define if the compiler supports basic C++11 syntax])
Chris@222 258 fi
Chris@222 259
Chris@222 260 AC_SUBST(HAVE_CXX11)
Chris@222 261 fi
Chris@222 262 ])
Chris@222 263