X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/8ed49b833de82dd5f8cf4c010a37cf8d2dc0e4ea..8f2287ef5c05d496fcb9b012629af007fe56f897:/configure.ac diff --git a/configure.ac b/configure.ac index bdc94be7..e5bf8d88 100644 --- a/configure.ac +++ b/configure.ac @@ -39,6 +39,13 @@ AC_PROG_CC AX_CFLAGS_WARN_ALL AM_PROG_LIBTOOL mdw_LIBTOOL_VERSION_INFO +case $host_os in + cygwin* | mingw* | pw32* | os2* | darwin* | cegcc*) + TEST_LDFLAGS=-no-fast-install ;; + *) + TEST_LDFLAGS=-no-install ;; +esac +AC_SUBST([TEST_LDFLAGS]) AM_PROG_AS @@ -78,8 +85,8 @@ AC_DEFUN([catacomb_CPU_FAMILIES], $1([i[[3-6]]86,*], [x86], [sysv]) $1([x86_64,cygwin], [amd64], [win]) $1([x86_64,*], [amd64], [sysv]) - $1([arm,*-gnueabi | arm,*-gnueabihf | dnl - armv*,*-gnueabi | armv*,*-gnueabihf], [armel], [gnueabi])]) + $1([arm,* | armv*,*], [armel], [std]) + $1([aarch64,*], [arm64], [std])]) dnl A utility to clear the `seen' flags, used so as to process each CPU or dnl ABI once. @@ -145,7 +152,7 @@ m4_define([catacomb_DEFINE_CPU_OR_ABI], ;;m4_define([catacomb_seen_$3/$$2], [t])])]) catacomb_CPU_FAMILIES([_def]) nil) ;; - *) AC_MSG_ERROR([BUG: unexpected $1 \`$1']) ;; + *) AC_MSG_ERROR([BUG: unexpected $1 \`$$1']) ;; esac]) dnl Now that's out the way, we can explain what we're doing. @@ -179,6 +186,26 @@ case $CPUFAM in *) AC_MSG_RESULT([$CPUFAM/$ABI]) ;; esac +dnl Consider enabling support for assembler-level debugging toys. +AC_ARG_ENABLE([asm-debug], + AS_HELP_STRING([--enable-asm-debug], + [enable assembler debugging features]), + [mdw_asm_debug=$enableval], [mdw_asm_debug=no]) +case $CPUFAM in nil) mdw_asm_debug=no ;; esac +case $mdw_asm_debug in + no) ;; + *) AC_DEFINE([ENABLE_ASM_DEBUG], [1], + [Define to enable assembler-level debugging.]) ;; +esac +AM_CONDITIONAL([ASM_DEBUG], [test x$mdw_asm_debug != xno]) + +dnl Check for leading underscores on C symbols. +LT_SYS_SYMBOL_USCORE +case $sys_symbol_underscore in + yes) AC_DEFINE([SYM_USCORE], [1], + [Define if C symbols are prefixed with an underscore.]) ;; +esac + dnl-------------------------------------------------------------------------- dnl CPU-specific assembler features. @@ -239,11 +266,33 @@ AC_CHECK_TYPE([socklen_t], [], ]) dnl The maths library. -mdw_ORIG_LIBS=$LIBS LIBS= +mdw_ORIG_LIBS=$LIBS LIBS=$CATACOMB_LIBS AC_SEARCH_LIBS([log], [m]) AC_SEARCH_LIBS([sqrt], [m]) -AC_SUBST([MATHLIBS], [$LIBS]) -LIBS=$mdw_ORIG_LIBS +CATACOMB_LIBS=$LIBS LIBS=$mdw_ORIG_LIBS + +dnl Logging is weird under Termux. Unfortunately, it involves macros, so we +dnl have to do this the hard way. +AC_CACHE_CHECK( + [library needed for syslog], [mdw_cv_syslog_lib], + [mdw_ORIG_LIBS=$LIBS LIBS= + for i in 0 1; do + AC_TRY_LINK([#include ], + [openlog("test", LOG_PID, LOG_DAEMON); + syslog(LOG_ERR, "this is a test");], + [ok=t], [ok=nil]) + case $i,$ok in + *,t) mdw_cv_syslog_lib=${LIBS:-none}; break ;; + 0,nil) LIBS="-llog" ;; + 1,nil) AC_MSG_ERROR("failed to link test program") ;; + esac + done + LIBS=$mdw_ORIG_LIBS]) +case $mdw_cv_syslog_lib in + none) LOGLIBS= ;; + *) LOGLIBS=$mdw_cv_syslog_lib ;; +esac +AC_SUBST([LOGLIBS]) dnl Find out whether very long integer types are available. AC_CHECK_HEADERS([stdint.h]) @@ -256,6 +305,9 @@ AC_CHECK_HEADERS([sys/auxv.h]) AC_CHECK_HEADERS([linux/auxvec.h]) AC_CHECK_FUNCS([getauxval]) +dnl Some equipment for measuring CPU performance. +AC_CHECK_HEADERS([linux/perf_event.h]) + dnl Find the bit lengths of the obvious integer types. This will be useful dnl when deciding on a representation for multiprecision integers. type_bits="" type_bits_sep="" @@ -368,11 +420,17 @@ LIBS=$mdw_ORIG_LIBS dnl Memory locking support. AC_CHECK_FUNCS([mlock]) +dnl See if we can find Valgrind's header files. +AC_CHECK_HEADER([valgrind/memcheck.h], + AC_DEFINE([HAVE_VALGRIND_H], [1], + [Define if the Valgrind header files are available.]) + []) + dnl Set the master libraries we need. AC_SUBST([CATACOMB_LIBS]) dnl Necessary support libraries. -PKG_CHECK_MODULES([mLib], [mLib >= 2.2.2.1]) +PKG_CHECK_MODULES([mLib], [mLib >= 2.4.1]) AM_CFLAGS="$AM_CFLAGS $mLib_CFLAGS" dnl--------------------------------------------------------------------------