mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-25 01:20:10 +01:00
Avoid calling libtool to link every single test case, by building just one binary from all the sources. This binary is then given the task of choosing tests to run (based on user selection and individual test requirement), forking each test into its own process and accumulating the results.
131 lines
4 KiB
Text
131 lines
4 KiB
Text
dnl
|
|
dnl Non-failing checks for functions, headers, libraries, etc go here
|
|
dnl
|
|
|
|
dnl ====================================================================
|
|
dnl Feature checks
|
|
dnl ====================================================================
|
|
|
|
AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = "xyes")
|
|
CAIRO_BIGENDIAN
|
|
CAIRO_CHECK_NATIVE_ATOMIC_PRIMITIVES
|
|
CAIRO_CHECK_ATOMIC_OP_NEEDS_MEMORY_BARRIER
|
|
|
|
AC_MSG_CHECKING([for native Win32])
|
|
case "$host" in
|
|
*-*-mingw*)
|
|
cairo_os_win32=yes
|
|
;;
|
|
*)
|
|
cairo_os_win32=no
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT([$cairo_os_win32])
|
|
AM_CONDITIONAL(OS_WIN32, test "$cairo_os_win32" = "yes")
|
|
|
|
AC_MSG_CHECKING([for Sun Solaris (non-POSIX ctime_r)])
|
|
case "$host" in
|
|
*-*-solaris*)
|
|
CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS"
|
|
solaris_posix_pthread=yes
|
|
;;
|
|
*)
|
|
solaris_posix_pthread=no
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT([$solaris_posix_pthread])
|
|
|
|
dnl ====================================================================
|
|
dnl Library checks
|
|
dnl ====================================================================
|
|
|
|
AC_CHECK_LIBM
|
|
LIBS="$LIBS $LIBM"
|
|
|
|
AC_CHECK_LIB(rt, sched_yield, [RT_LIBS=-lrt], [RT_LIBS=])
|
|
CAIROPERF_LIBS=$RT_LIBS
|
|
AC_SUBST(CAIROPERF_LIBS)
|
|
|
|
dnl ====================================================================
|
|
dnl Header/function checks
|
|
dnl ====================================================================
|
|
|
|
dnl Checks for precise integer types
|
|
AC_CHECK_HEADERS([stdint.h inttypes.h sys/int_types.h])
|
|
AC_CHECK_TYPES([uint64_t, uint128_t])
|
|
|
|
dnl Check for socket support for any2ppm daemon
|
|
AC_CHECK_HEADERS([fcntl.h unistd.h signal.h sys/stat.h sys/socket.h sys/poll.h sys/un.h])
|
|
|
|
dnl check for CPU affinity support
|
|
AC_CHECK_HEADERS([sched.h],
|
|
[AC_CHECK_FUNCS([sched_getaffinity])])
|
|
|
|
dnl check for GNU-extensions to fenv
|
|
AC_CHECK_HEADER(fenv.h,
|
|
[AC_CHECK_FUNCS(feenableexcept fedisableexcept)])
|
|
|
|
dnl check for misc headers and functions
|
|
AC_CHECK_HEADERS([libgen.h byteswap.h signal.h setjmp.h])
|
|
AC_CHECK_FUNCS([vasnprintf link ctime_r drand48 flockfile])
|
|
|
|
dnl check for win32 headers (this detects mingw as well)
|
|
AC_CHECK_HEADERS([windows.h], have_windows=yes, have_windows=no)
|
|
|
|
|
|
dnl Possible headers for mkdir
|
|
AC_CHECK_HEADERS([sys/stat.h io.h])
|
|
AC_CHECK_FUNC(mkdir,
|
|
[AC_MSG_CHECKING([mkdir variant])
|
|
mkdir_variant="unknown"
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="-Werror -Wall $CFLAGS" # non-gcc compilers?
|
|
AC_TRY_COMPILE([
|
|
#ifdef HAVE_SYS_STAT_H
|
|
#include <sys/stat.h>
|
|
#endif
|
|
#ifdef HAVE_IO_H
|
|
#include <io.h>
|
|
#endif
|
|
],
|
|
[mkdir ("hello.world", 0777)],
|
|
mkdir_variant="mkdir(path, mode)",
|
|
[AC_TRY_COMPILE([
|
|
#ifdef HAVE_SYS_STAT_H
|
|
#include <sys/stat.h>
|
|
#endif
|
|
#ifdef HAVE_IO_H
|
|
#include <io.h>
|
|
#endif
|
|
],
|
|
[mkdir ("hello.world")],
|
|
mkdir_variant="mkdir(path)")])
|
|
AC_MSG_RESULT([$mkdir_variant])
|
|
CFLAGS="$save_CFLAGS"
|
|
if test "x$mkdir_variant" = "xmkdir(path, mode)"; then
|
|
AC_DEFINE(HAVE_MKDIR, 2,
|
|
[Define to non-zero if your system has mkdir, and to 2 if your version of mkdir requires a mode parameter])
|
|
else
|
|
AC_DEFINE(HAVE_MKDIR, 1,
|
|
[Define to non-zero if your system has mkdir, and to 2 if your version of mkdir requires a mode parameter])
|
|
fi])
|
|
|
|
# check for GNU-extensions to fenv
|
|
AC_CHECK_HEADER(fenv.h, [AC_CHECK_FUNCS(feenableexcept fedisableexcept)])
|
|
|
|
dnl ===========================================================================
|
|
dnl
|
|
dnl Test for the tools required for building one big test binary
|
|
dnl
|
|
AC_MSG_CHECKING([for the constructor attribute])
|
|
cairo_has_constructor_attribute="no"
|
|
AC_TRY_LINK([static void __attribute__((constructor)) constructor(void) {}], [],
|
|
cairo_has_constructor_attribute="yes"
|
|
)
|
|
AC_MSG_RESULT([$cairo_has_constructor_attribute])
|
|
if test "x$cairo_has_constructor_attribute" = "xyes"; then
|
|
AC_DEFINE(CAIRO_HAS_CONSTRUCTOR_ATTRIBUTE, 1, [Define to 1 if your compiler supports __attribute__(constructor)])
|
|
fi
|
|
AM_CONDITIONAL(CAIRO_HAS_CONSTRUCTOR_ATTRIBUTE, test "x$cairo_has_constructor_attribute" = "xyes")
|
|
|
|
AC_CHECK_FUNCS(fork waitpid raise)
|