1dnl   WZD_LIB_PAM()
2dnl
3dnl   Search for a useable version of the PAM client libs in a
4dnl   number of common places.
5dnl
6dnl   If we find a useable version, set WZD_PAM_INCLUDES and WZD_PAM_LIBS as
7dnl   appropriate, and set the shell variable 'wzd_have_pam' to
8dnl   'yes'. Otherwise, set 'wzd_have_pam' to 'no'.
9
10AC_DEFUN([WZD_LIB_PAM],
11[
12  AC_CHECK_HEADERS(pam/pam_appl.h security/pam_appl.h)
13
14# Check for PAM libs
15  wzd_have_pam=no
16  AC_ARG_WITH(pam,
17    [  --with-pam              Enable PAM support ],
18    [
19      if test "x$withval" != "x" -a "x$withval" != "xno" ; then
20        if test "x$ac_cv_header_security_pam_appl_h" != "xyes" && \
21          test "x$ac_cv_header_pam_pam_appl_h" != "xyes" ; then
22            AC_MSG_ERROR([PAM headers not found])
23        fi
24        AC_CHECK_HEADER(security/pam_misc.h)
25        if test "$ac_cv_header_security_pam_misc_h" = yes; then
26          AC_DEFINE(HAVE_PAM_MISC_H,,Have pam_misc.h)
27          AC_DEFINE(PAM_CONV_FUNC,misc_conv,Have misc_conv)
28          pam_conv_func="misc_conv"
29        fi
30	AC_CHECK_HEADER(security/pam_modules.h)
31	if test "$ac_cv_header_security_pam_modules_h" = yes; then
32	  AC_DEFINE(HAVE_PAM_MODULES_H,,Have pam_modules.h)
33	fi
34        AC_CHECK_HEADER(security/openpam.h)
35        if test "$ac_cv_header_security_openpam_h" = yes; then
36          AC_DEFINE(HAVE_OPENPAM_H,,Have openpam.h)
37          AC_DEFINE(PAM_CONV_FUNC,openpam_ttyconv,Have openpam_ttyconv)
38          pam_conv_func="openpam_ttyconv"
39        fi
40
41        AC_CHECK_LIB(pam, pam_set_item, WZD_PAM_LIBS="-lpam" , AC_MSG_ERROR([*** libpam missing]))
42        dnl AC_CHECK_FUNCS(pam_getenvlist)
43        dnl AC_CHECK_FUNCS(pam_putenv)
44
45        if test -z "$ac_cv_header_security_pam_misc_h$ac_cv_header_security_openpam_h" ; then
46          AC_MSG_WARN([*** pam support will not be built ***])
47          wzd_have_pam=no
48          AC_DEFINE(HAVE_PAM, 0, [Define if using pam])
49        else
50          wzd_have_pam=yes
51          AC_DEFINE(HAVE_PAM, 1, [Define if using pam])
52        fi
53
54        if test $ac_cv_lib_dl_dlopen = yes; then
55          WZD_PAM_LIBS="$WZD_PAM_LIBS -ldl"
56        fi
57        AC_SUBST(WZD_PAM_LIBS)
58      fi
59    ]
60  )
61]
62)
63
64