]> git.ozlabs.org Git - ppp.git/blob - m4/ax_check_pam.m4
pppd: Add support for registering ppp interface via Linux rtnetlink API
[ppp.git] / m4 / ax_check_pam.m4
1 # SYNOPSIS
2 #
3 #   AX_CHECK_PAM([action-if-found[, action-if-not-found]])
4 #
5 # DESCRIPTION
6 #
7 #   Look for libpam in a number of default locations, or in a provided location
8 #   (via --with-pam=). Sets
9 #       PAM_CFLAGS
10 #       PAM_LDFLAGS
11 #       PAM_LIBS
12 #
13 #   and calls ACTION-IF-FOUND or ACTION-IF-NOT-FOUND appropriately
14 #
15 # LICENSE
16 #
17 #   Copyright (c) 2021 Eivind Naess <eivnaes@yahoo.com>
18 #
19 #   Copying and distribution of this file, with or without modification, are
20 #   permitted in any medium without royalty provided the copyright notice
21 #   and this notice are preserved. This file is offered as-is, without any
22 #   warranty.
23
24 #serial 1
25
26 AC_DEFUN([AX_CHECK_PAM], [
27     AC_ARG_WITH([pam],
28         [AS_HELP_STRING([--with-pam=DIR],
29             [With libpam support, see ftp.redhat.com:/pub/pam])],
30         [
31             case "$withval" in
32             "" | y | ye | yes)
33                 pamdirs="/usr/local /usr/lib /usr"  
34               ;;
35             n | no)
36                 with_pam="no"
37               ;;
38             *)
39                 pamdirs="$withval"
40               ;;
41             esac
42         ])
43     
44     if [ test "x${with_pam}" != "xno" ] ; then
45         PAM_LIBS="-lpam"
46         for pamdir in $pamdirs; do
47             AC_MSG_CHECKING([for pam_appl.h in $pamdir])
48             if test -f "$pamdir/include/security/pam_appl.h"; then
49                 PAM_CFLAGS="-I$pamdir/include"
50                 PAM_LDFLAGS="-L$pamdir/lib"
51                 AC_MSG_RESULT([yes])
52                 break
53             else
54                 AC_MSG_RESULT([no])
55             fi
56         done
57
58         # try the preprocessor and linker with our new flags,
59         # being careful not to pollute the global LIBS, LDFLAGS, and CPPFLAGS
60
61         AC_MSG_CHECKING([if compiling and linking against libpam works])
62
63         save_LIBS="$LIBS"
64         save_LDFLAGS="$LDFLAGS"
65         save_CPPFLAGS="$CPPFLAGS"
66         LDFLAGS="$LDFLAGS $PAM_LDFLAGS"
67         LIBS="$PAM_LIBS $LIBS"
68         CPPFLAGS="$PAM_CFLAGS $CPPFLAGS"
69         AC_LINK_IFELSE(
70             [AC_LANG_PROGRAM(
71                 [#include <security/pam_appl.h>
72                  #include <stddef.h>], 
73                 [pam_authenticate(NULL, 0);])],
74             [
75                 AC_MSG_RESULT([yes])
76                 with_pam=yes
77                 $1
78             ], [
79                 AC_MSG_RESULT([no])
80                 with_pam=""
81                 $2
82             ])
83         CPPFLAGS="$save_CPPFLAGS"
84         LDFLAGS="$save_LDFLAGS"
85         LIBS="$save_LIBS"
86
87         AC_SUBST([PAM_CFLAGS])
88         AC_SUBST([PAM_LIBS])
89         AC_SUBST([PAM_LDFLAGS])
90     fi
91     AM_CONDITIONAL(WITH_LIBPAM, test -n "${with_pam}")
92 ])
93