diff options
Diffstat (limited to 'm4/pdns_check_os.m4')
-rw-r--r-- | m4/pdns_check_os.m4 | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/m4/pdns_check_os.m4 b/m4/pdns_check_os.m4 new file mode 100644 index 0000000..bb5f2fd --- /dev/null +++ b/m4/pdns_check_os.m4 @@ -0,0 +1,63 @@ +AC_DEFUN([PDNS_CHECK_OS],[ + THREADFLAGS="" + + case "$host_os" in + solaris2.1*) + LIBS="-lposix4 -lpthread $LIBS" + CXXFLAGS="-D_REENTRANT $CXXFLAGS" + have_solaris="yes" + ;; + solaris2.8 | solaris2.9 ) + AC_DEFINE(NEED_POSIX_TYPEDEF,,[If POSIX typedefs need to be defined]) + AC_DEFINE(NEED_INET_NTOP_PROTO,,[If your OS is so broken that it needs an additional prototype]) + LIBS="-lposix4 -lpthread $LIBS" + CXXFLAGS="-D_REENTRANT $CXXFLAGS" + have_solaris="yes" + ;; + linux*) + THREADFLAGS="-pthread" + have_linux="yes" + ;; + darwin*) + CXXFLAGS="-D__APPLE_USE_RFC_3542 -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE $CXXFLAGS" + have_darwin="yes" + ;; + freebsd*) + THREADFLAGS="-pthread" + have_freebsd="yes" + ;; + openbsd*) + THREADFLAGS="-pthread" + have_openbsd="yes" + ;; + *) + LDFLAGS="-pthread $LDFLAGS" + CXXFLAGS="-pthread $CXXFLAGS" + ;; + esac + + AM_CONDITIONAL([HAVE_FREEBSD], [test "x$have_freebsd" = "xyes"]) + AM_CONDITIONAL([HAVE_OPENBSD], [test "x$have_openbsd" = "xyes"]) + AM_CONDITIONAL([HAVE_LINUX], [test "x$have_linux" = "xyes"]) + AM_CONDITIONAL([HAVE_DARWIN], [test "x$have_darwin" = "xyes"]) + AM_CONDITIONAL([HAVE_SOLARIS], [test "x$have_solaris" = "xyes"]) + + AC_MSG_CHECKING([whether -latomic is needed for __atomic builtins]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include <stdint.h>]], + [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]] + )], + [AC_MSG_RESULT([no])], + [LIBS="$LIBS -latomic" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([[#include <stdint.h>]], + [[uint64_t val = 0; __atomic_add_fetch(&val, 1, __ATOMIC_RELAXED);]] + )], + [AC_MSG_RESULT([yes])], + [AC_MSG_FAILURE([libatomic needed, but linking with -latomic failed, cannot continue])] + )] + ) + + AC_SUBST(THREADFLAGS) + AC_SUBST([DYNLINKFLAGS], [-export-dynamic]) +]) |