xref: /netbsd-src/crypto/external/bsd/heimdal/dist/cf/pthreads.m4 (revision b9d004c6cc8d38329417ae29768c81e5f2a296cf)
1Dnl Id
2
3AC_DEFUN([KRB_PTHREADS], [
4AC_MSG_CHECKING(if compiling threadsafe libraries)
5
6AC_ARG_ENABLE(pthread-support,
7	AS_HELP_STRING([--enable-pthread-support],
8			[if you want thread safe libraries]),
9	[],[enable_pthread_support=maybe])
10
11case "$host" in
12*-*-solaris2*)
13	native_pthread_support=yes
14	if test "$GCC" = yes; then
15		PTHREAD_CFLAGS="-D_REENTRANT -D_TS_ERRNO"
16		PTHREAD_LIBADD=-lpthread
17	else
18		PTHREAD_CFLAGS="-mt -D_REENTRANT -D_TS_ERRNO"
19		PTHREAD_LDADD=-mt
20		PTHREAD_LIBADD="-mt -lpthread"
21	fi
22	;;
23*-*-netbsd[[12]]*)
24	native_pthread_support="if running netbsd 1.6T or newer"
25	dnl heim_threads.h knows this
26	PTHREAD_LIBADD="-lpthread"
27	;;
28*-*-netbsd[[3456789]]*)
29	native_pthread_support="netbsd 3 uses explict pthread"
30	dnl heim_threads.h knows this
31	PTHREAD_LIBADD="-lpthread"
32	;;
33*-*-freebsd[[1234]])
34    ;;
35*-*-freebsd*)
36	native_pthread_support=yes
37	PTHREAD_LIBADD="-pthread"
38	;;
39*-*-openbsd*)
40	native_pthread_support=yes
41	PTHREAD_CFLAGS=-pthread
42	PTHREAD_LIBADD=-pthread
43	;;
44*-*-gnu*)
45	native_pthread_support=yes
46	PTHREADS_CFLAGS=-pthread
47	PTHREAD_LIBADD="-pthread -lpthread"
48	;;
49*-*-linux* | *-*-linux-gnu)
50	case `uname -r` in
51	2.*|3.*)
52		native_pthread_support=yes
53		PTHREAD_CFLAGS=-pthread
54		PTHREAD_LIBADD=-pthread
55		;;
56	esac
57	;;
58*-*-kfreebsd*-gnu*)
59	native_pthread_support=yes
60	PTHREAD_CFLAGS=-pthread
61	PTHREAD_LIBADD=-pthread
62	;;
63*-*-aix*)
64	dnl AIX is disabled since we don't handle the utmp/utmpx
65        dnl problems that aix causes when compiling with pthread support
66        dnl (2016-11-14, we longer use utmp).  Original logic was:
67        dnl     if test "$GCC" = yes; then
68        dnl             native_pthread_support=yes
69        dnl             PTHREADS_LIBS="-pthread"
70        dnl     elif expr "$CC" : ".*_r" > /dev/null ; then
71        dnl             native_pthread_support=yes
72        dnl             PTHREADS_CFLAGS=""
73        dnl             PTHREADS_LIBS=""
74        dnl     else
75        dnl             native_pthread_support=no
76        dnl     fi
77	native_pthread_support=no
78	;;
79mips-sgi-irix6.[[5-9]])  # maybe works for earlier versions too
80	native_pthread_support=yes
81	PTHREAD_LIBADD="-lpthread"
82	;;
83*-*-darwin*)
84	native_pthread_support=yes
85	;;
86*)
87	native_pthread_support=no
88	;;
89esac
90
91if test "$enable_pthread_support" = maybe ; then
92	enable_pthread_support="$native_pthread_support"
93fi
94
95if test "$enable_pthread_support" != no; then
96    AC_DEFINE(ENABLE_PTHREAD_SUPPORT, 1,
97	[Define if you want have a thread safe libraries])
98    dnl This sucks, but libtool doesn't save the depenecy on -pthread
99    dnl for libraries.
100    LIBS="$PTHREAD_LIBADD $LIBS"
101else
102  PTHREAD_CFLAGS=""
103  PTHREAD_LIBADD=""
104fi
105
106AM_CONDITIONAL(ENABLE_PTHREAD_SUPPORT, test "$enable_pthread_support" != no)
107
108CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
109LDADD="$LDADD $PTHREAD_LDADD"
110LIBADD="$LIBADD $PTHREAD_LIBADD"
111
112AC_SUBST(PTHREAD_CFLAGS)
113AC_SUBST(PTHREAD_LDADD)
114AC_SUBST(PTHREAD_LIBADD)
115
116AC_MSG_RESULT($enable_pthread_support)
117])
118