diff --git a/m4/ax_check_pam.m4 b/m4/ax_check_pam.m4 index b17a7573..3b2a48c1 100644 --- a/m4/ax_check_pam.m4 +++ b/m4/ax_check_pam.m4 @@ -25,35 +25,33 @@ AC_DEFUN([AX_CHECK_PAM], [ AC_ARG_WITH([pam], - [AS_HELP_STRING([--with-pam=DIR], - [With libpam support, see ftp.redhat.com:/pub/pam])], - [ - case "$withval" in - "" | y | ye | yes) - pamdirs="/usr/local /usr/lib /usr" - ;; - n | no) - with_pam="no" - ;; - *) - pamdirs="$withval" - ;; - esac - ]) + [AS_HELP_STRING([--with-pam=yes|no|DIR], + [With libpam support, see ftp.redhat.com:/pub/pam])]) + + AS_CASE(["$with_pam"], + [ye|y], [with_pam=yes], + [n], [with_pam=no]) - if [ test "x${with_pam}" != "xno" ] ; then - PAM_LIBS="-lpam" - for pamdir in $pamdirs; do - AC_MSG_CHECKING([for pam_appl.h in $pamdir]) - if test -f "$pamdir/include/security/pam_appl.h"; then - PAM_CFLAGS="-I$pamdir/include" - PAM_LDFLAGS="-L$pamdir/lib" - AC_MSG_RESULT([yes]) - break - else - AC_MSG_RESULT([no]) - fi - done + AS_IF([test "x$with_pam" != "xno"], [ + AS_CASE(["$with_pam"], + [""|yes], [PKG_CHECK_MODULES([PAM], [pam], [pamdirs=], + [pamdirs="/usr/local /usr/lib /usr"])], + [pamdirs="$with_pam"]) + + AS_IF([test -n "$pamdirs"], [ + PAM_LIBS="-lpam" + for pamdir in $pamdirs; do + AC_MSG_CHECKING([for pam_appl.h in $pamdir]) + if test -f "$pamdir/include/security/pam_appl.h"; then + PAM_CFLAGS="-I$pamdir/include" + PAM_LDFLAGS="-L$pamdir/lib" + AC_MSG_RESULT([yes]) + break + else + AC_MSG_RESULT([no]) + fi + done + ]) # try the preprocessor and linker with our new flags, # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS @@ -87,7 +85,7 @@ AC_DEFUN([AX_CHECK_PAM], [ AC_SUBST([PAM_CFLAGS]) AC_SUBST([PAM_LIBS]) AC_SUBST([PAM_LDFLAGS]) - fi + ]) AM_CONDITIONAL(WITH_LIBPAM, test "x${with_pam}" != "xno") ])