1#check whether to use and where to place pidfile
2unset NOPIDFILE
3AC_MSG_CHECKING([whether to use server pidfile])
4AC_ARG_ENABLE(pidfile,
5[  --disable-pidfile       disable server pidfile creation],
6[if test x"$enableval" = xno; then
7    NOPIDFILE="Disabled, using --disable-pidfile"
8 fi])
9if test x"$NOPIDFILE" = x; then
10   AC_MSG_RESULT([yes])
11   AC_DEFINE(HAVE_ENABLED_PIDFILE, 1, [using pidfile for server])
12else
13   AC_MSG_RESULT([no])
14fi
15
16unset PIDFILEPATH
17AC_MSG_CHECKING([for pid file location])
18AC_ARG_WITH(pidfile,
19[  --with-pidfile=FILE     change location of server pidfile],
20[PIDFILEPATH="$withval"],
21[#default per-platform pidfile locations
22 case $host in
23     *-*-aix*)
24	 PIDFILEPATH="/etc/${SERVNAME}.pid"
25	 ;;
26     *)
27	 PIDFILEPATH="/var/run/${SERVNAME}.pid"
28	 ;;
29 esac])
30AC_MSG_RESULT($PIDFILEPATH)
31AC_DEFINE_UNQUOTED(SOCKD_PIDFILE, "$PIDFILEPATH", [pid file location])
32
33#SOCKD_IOMAX/NEGOTIATEMAX override?
34AC_MSG_CHECKING([for SOCKD_IOMAX value])
35AC_ARG_WITH(iomax,
36[  --with-iomax=NUMBER     change number of clients per io process],
37[AC_MSG_RESULT($withval)
38 FEAT="$FEAT${FEAT:+ }iomax-$withval"
39 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_IOMAX=$withval"],
40[AC_MSG_RESULT(default)])
41
42AC_MSG_CHECKING([for SOCKD_NEGOTIATEMAX value])
43AC_ARG_WITH(negmax,
44[  --with-negmax=NUMBER    change number of clients per negotiate process],
45[AC_MSG_RESULT($withval)
46 FEAT="$FEAT${FEAT:+ }negmax-$withval"
47 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_NEGOTIATEMAX=$withval"],
48[AC_MSG_RESULT(default)])
49
50AC_MSG_CHECKING([for SOCKD_BUFSIZE value])
51AC_ARG_WITH(bufsize,
52[  --with-bufsize=NUMBER    change size of data buffers],
53[AC_MSG_RESULT($withval)
54 FEAT="$FEAT${FEAT:+ }bufsize-$withval"
55 CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-DSOCKD_BUFSIZE=$withval"],
56[AC_MSG_RESULT(default)])
57
58#math library used in server
59AC_CHECK_LIB(m, lround,
60 [SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }-lm"])
61
62#XXX for backwards compatibility
63unset NOLIBWRAP
64AC_ARG_WITH(libwrap,
65[  --without-libwrap       never use libwrap, even if it is available],
66[if test x"$withval" = xno; then
67    NOLIBWRAP="Disabled, using --without-libwrap"
68 fi])
69
70AC_ARG_ENABLE(libwrap,
71[  --disable-libwrap       deprecated, use --without-libwrap],
72[AC_MSG_WARN(--disable/enable-libwrap is deprecated, use --without-libwrap)
73 if test x"$NOLIBWRAP" != x; then
74    AC_MSG_WARN(cannot specify both --without-libwrap and --disable-libwrap)
75    exit 1
76 fi
77 if test x"$enableval" = xno; then
78    NOLIBWRAP="Disabled, using --disable-libwrap"
79 fi])
80
81if test x"$NOLIBWRAP" != x; then
82    AC_MSG_CHECKING([for libwrap])
83    AC_MSG_RESULT([disabled])
84else
85    AC_CHECK_HEADERS(tcpd.h)
86    if test x"${ac_cv_header_tcpd_h}" != xyes; then
87	AC_MSG_CHECKING([for libwrap])
88	AC_MSG_RESULT([no, usable tcpd.h not found])
89	NOLIBWRAP="Disabled, tcpd.h missing"
90    else
91	case $host in
92	    *-*-linux-*)
93	        #XXX needed on at least RedHat
94		AC_SEARCH_LIBS(yp_get_default_domain, nsl)
95		;;
96	esac
97	oLIBS=$LIBS
98	AC_MSG_CHECKING([for libwrap])
99	#normal library testing does not work for libwrap (will not link
100	#without allow/deny_severity)
101	#XXX include header in compilation test?
102	LIBS="$LIBS -lwrap"
103	AC_TRY_LINK([
104int allow_severity;
105int deny_severity;
106], [hosts_access(0);],
107        [AC_MSG_RESULT(yes)
108	 SOCKDDEPS="${SOCKDDEPS}${SOCKDDEPS:+ }-lwrap"
109         AC_DEFINE(HAVE_COND_LIBWRAP, 1, [use tcpwrappers])
110         FEAT="$FEAT${FEAT:+ }libwrap"],
111        [AC_MSG_RESULT(no)
112         NOLIBWRAP="Disabled, -lwrap not found"])
113        LIBS="$oLIBS"
114    fi
115fi
116
117unset NOPAM
118AC_CHECK_HEADERS(security/pam_appl.h)
119AC_SEARCH_LIBS(pam_start, pam)
120AC_MSG_CHECKING([for pam])
121AC_ARG_WITH(pam,
122[  --without-pam           disable pam support @<:@default=detect@:>@],
123[if test x"$withval" = xno; then
124    NOPAM="Disabled, using --without-pam"
125 fi])
126
127if test x"$NOPAM" != x; then
128    AC_MSG_RESULT([disabled])
129else
130    #look for PAM header and lib
131    if test x"${ac_cv_header_security_pam_appl_h}" = xno; then
132	NOPAM="Disabled, security/pam_appl.h missing"
133	AC_MSG_RESULT([no, usable security/pam_appl.h not found])
134    else
135        if test x"${ac_cv_search_pam_start}" = xno; then
136	    NOPAM="Disabled, pam library not found"
137	    AC_MSG_RESULT([no, pam library not found])
138	else
139	    AC_DEFINE(HAVE_COND_PAM, 1, [PAM support])
140	    AC_MSG_RESULT([yes])
141	    FEAT="$FEAT${FEAT:+ }pam"
142	fi
143    fi
144fi
145
146AC_MSG_CHECKING([whether libcfail should be enabled])
147AC_ARG_ENABLE(libcfail,
148[  --enable-libcfail       testing option, enable unreliable libc @<:@default=disabled@:>@])
149if test x"${enable_libcfail}" = xyes; then
150    AC_MSG_RESULT([yes])
151    AC_DEFINE(HAVE_LIBCFAIL, 1, [use libcfail])
152    have_libcfail=t
153    FEAT="$FEAT${FEAT:+ }libcfail"
154else
155    AC_MSG_RESULT([no])
156fi
157