| 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 <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]) |
| |
| dnl =========================================================================== |
| dnl |
| dnl Test for the tools required for building one big test binary |
| dnl |
| |
| AC_CHECK_FUNCS(fork waitpid raise) |
| |