]> git.ozlabs.org Git - ppp.git/blobdiff - m4/ax_check_pam.m4
Use pkg-config to detect PAM when possible (#479)
[ppp.git] / m4 / ax_check_pam.m4
index b17a7573c8741f3a379df93bc6bca501535985c3..3b2a48c102813f10709a0519619bf9da373490f5 100644 (file)
 
 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")
 ])