1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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])
])
|