1##*****************************************************************************
2#  AUTHOR:
3#    Morris Jette <jette1@llnl.gov>
4#
5#  SYNOPSIS:
6#    X_AC_PAM
7#
8#  DESCRIPTION:
9#    Test for PAM (Pluggable Authentication Module) support.
10#
11#  WARNINGS:
12#    This macro must be placed after AC_PROG_CC or equivalent.
13##*****************************************************************************
14
15AC_DEFUN([X_AC_PAM], [
16  AC_MSG_CHECKING([whether to enable PAM support])
17  AC_ARG_ENABLE(
18    [pam],
19    AS_HELP_STRING(--enable-pam,enable PAM (Pluggable Authentication Modules) support),
20    [ case "$enableval" in
21        yes) x_ac_pam=yes ;;
22         no) x_ac_pam=no ;;
23          *) AC_MSG_RESULT([doh!])
24             AC_MSG_ERROR([bad value "$enableval" for --enable-pam]) ;;
25      esac
26    ],
27    [x_ac_pam=yes]
28  )
29
30  if test "$x_ac_pam" = yes; then
31    AC_MSG_RESULT([yes])
32    AC_CHECK_LIB([pam],
33        [pam_get_user],
34        [ac_have_pam=yes; PAM_LIBS="-lpam"])
35
36    AC_CHECK_LIB([pam_misc],
37        [misc_conv],
38        [ac_have_pam_misc=yes; PAM_LIBS="$PAM_LIBS -lpam_misc"])
39
40    AC_SUBST(PAM_LIBS)
41    if test "x$ac_have_pam" = "xyes" -a "x$ac_have_pam_misc" = "xyes"; then
42      AC_DEFINE(HAVE_PAM,, [define if you have the PAM library])
43    else
44      AC_MSG_WARN([unable to locate PAM libraries])
45    fi
46  else
47    AC_MSG_RESULT([no])
48  fi
49  AM_CONDITIONAL(HAVE_PAM,
50      test "x$x_ac_pam" = "xyes" -a "x$ac_have_pam" = "xyes" -a "x$ac_have_pam_misc" = "xyes")
51
52
53  AC_ARG_WITH(pam_dir,
54    AS_HELP_STRING(--with-pam_dir=PATH,Specify path to PAM module installation),
55    [
56	if test -d $withval ; then
57	  PAM_DIR="$withval"
58	else
59	  AC_MSG_ERROR([bad value "$withval" for --with-pam_dir])
60	fi
61    ],
62    [
63	if test -d /lib64/security ; then
64	  PAM_DIR="/lib64/security"
65	else
66	  PAM_DIR="/lib/security"
67	fi
68     ]
69  )
70  AC_SUBST(PAM_DIR)
71  AC_DEFINE_UNQUOTED(PAM_DIR, "$pam_dir", [Define PAM module installation directory.])
72
73])
74
75