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
$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.
.intel_syntax noprefix
.globl foo
foo:
- adcd var, 0
+ adc dword ptr var, 0
ret
.data
var: .long 1
;;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.
*) 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.
])
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 <syslog.h>],
+ [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])
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=""
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--------------------------------------------------------------------------