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 AC_ARG_ENABLE(atomic, [AS_HELP_STRING([--disable-atomic], [disable use of native atomic operations])], [use_atomic=$enableval], [use_atomic=yes]) AS_IF([test "x$use_atomic" = "xyes"], [ CAIRO_CHECK_NATIVE_ATOMIC_PRIMITIVES CAIRO_CHECK_ATOMIC_OP_NEEDS_MEMORY_BARRIER ]) AC_CHECK_SIZEOF(void *) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(size_t) 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) has_shm_open= AC_CHECK_LIB(rt, shm_open, [ SHM_LIBS=-lrt has_shm_open=yes ], [SHM_LIBS=]) AM_CONDITIONAL(HAVE_SHM, test "x$has_shm_open" = "xyes") AC_SUBST(SHM_LIBS) AC_CHECK_LIB(socket, connect, [SOCKET_LIBS=-lsocket], [SOCKET_LIBS=]) CAIROBOILERPLATE_LIBS=$SOCKET_LIBS AC_SUBST(CAIROBOILERPLATE_LIBS) dnl ==================================================================== dnl Header/function checks dnl ==================================================================== dnl check if we have a __builtin_return_address for the cairo-trace dnl utility. AC_MSG_CHECKING([for __builtin_return_address(0)]) AC_TRY_COMPILE([],[__builtin_return_address(0);], [have_builtin_return_address=yes], [have_builtin_return_address=no]) AC_MSG_RESULT($have_builtin_return_address) if test "x$have_builtin_return_address" = "xyes"; then AC_DEFINE(HAVE_BUILTIN_RETURN_ADDRESS, 1, [Define to 1 if your compiler supports the __builtin_return_address() intrinsic.]) fi dnl Checks for precise integer types AC_CHECK_HEADERS([stdint.h inttypes.h sys/int_types.h]) AC_CHECK_TYPES([uint64_t, uint128_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 infinite loops AC_CHECK_FUNCS([alarm]) dnl check for CPU affinity support AC_CHECK_HEADERS([sched.h], [AC_CHECK_FUNCS([sched_getaffinity])]) dnl check for mmap support AC_CHECK_HEADERS([sys/mman.h], [AC_CHECK_FUNCS([mmap])]) dnl check for clock_gettime() support AC_CHECK_HEADERS([time.h], [AC_CHECK_FUNCS([clock_gettime])]) dnl check for GNU-extensions to fenv AC_CHECK_HEADER(fenv.h, [AC_CHECK_FUNCS(feenableexcept fedisableexcept feclearexcept)]) dnl check for misc headers and functions AC_CHECK_HEADERS([libgen.h byteswap.h signal.h setjmp.h fenv.h sys/wait.h]) AC_CHECK_FUNCS([ctime_r drand48 flockfile funlockfile getline link strndup]) 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=$WARN_CFLAGS AC_TRY_COMPILE([ #ifdef HAVE_SYS_STAT_H #include #endif #ifdef HAVE_IO_H #include #endif ], [mkdir ("hello.world", 0777)], mkdir_variant="mkdir(path, mode)", [AC_TRY_COMPILE([ #ifdef HAVE_SYS_STAT_H #include #endif #ifdef HAVE_IO_H #include #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]) dnl =========================================================================== dnl dnl Test for the tools required for building one big test binary dnl AC_CHECK_FUNCS(fork waitpid raise)