1dnl -*-m4-*-
2
3AC_INIT([Authen::PAM],[0.16],[],[Authen-PAM])
4
5AC_PREREQ([2.50])
6
7AC_CONFIG_HEADERS([PAM_config.h])
8
9AC_PROG_CC
10AC_PROG_CPP
11
12dnl Where is the PAM header file?
13
14AC_MSG_CHECKING([for pam header files in])
15AC_TRY_CPP([#include <security/pam_appl.h>],
16	      [pam_inc=security
17	       AC_DEFINE(HAVE_SECURITY_PAM_APPL_H,[1],
18			 [pam_appl.h in /usr/include/security])],
19AC_TRY_CPP([#include <pam/pam_appl.h>],
20              [pam_inc=pam
21	       AC_DEFINE(HAVE_PAM_PAM_APPL_H,[1],
22	                 [pam_appl.h in /usr/include/pam])],
23[pam_inc=no]))
24AC_MSG_RESULT([$pam_inc])
25if test $pam_inc = no; then
26  AC_MSG_ERROR([cannot find the pam_appl.h file])
27fi
28pam_appl_h="@%:@include <$pam_inc/pam_appl.h>"
29
30# This variable is only used in the tests and is not passed to the Makefile
31LIBS="-lpam $LIBS"
32
33# Checks if the pam library supports the environment handling functions
34AC_CHECK_FUNCS(pam_getenv)
35
36AC_CACHE_CHECK([if pam_strerror takes a pam_handle_t argument],
37[ac_cv_pam_strerror_needs_pamh],
38AC_TRY_COMPILE([$pam_appl_h],
39[pam_handle_t *pamh;
40pam_strerror(pamh, PAM_SUCCESS)],
41[ac_cv_pam_strerror_needs_pamh=yes],
42[ac_cv_pam_strerror_needs_pamh=no]))
43if test "$ac_cv_pam_strerror_needs_pamh" = yes; then
44    AC_DEFINE(PAM_STRERROR_NEEDS_PAMH,[1],
45    [Checks if pam_strerror() takes a pam_handle])
46fi
47
48dnl Checks for various PAM constants
49AC_DEFUN(AC_CHECK_PAM_CONST,
50[AC_CACHE_CHECK(for $1, ac_cv_have_$1,
51AC_TRY_COMPILE([$pam_appl_h],
52[int i = $1],
53[ac_cv_have_$1=yes], [ac_cv_have_$1=no]))
54if test "$ac_cv_have_$1" = yes; then
55    AC_DEFINE_UNQUOTED(HAVE_$1,[1],[Is the symbol $1 defined?])
56fi
57])
58
59AC_CHECK_PAM_CONST(PAM_AUTHTOKEN_REQD)
60AC_CHECK_PAM_CONST(PAM_NEW_AUTHTOK_REQD)
61AC_CHECK_PAM_CONST(PAM_AUTHTOK_EXPIRED)
62AC_CHECK_PAM_CONST(PAM_AUTHTOK_RECOVER)
63AC_CHECK_PAM_CONST(PAM_AUTHTOK_RECOVERY)
64AC_CHECK_PAM_CONST(PAM_BAD_ITEM)
65AC_CHECK_PAM_CONST(PAM_CONV_AGAIN)
66AC_CHECK_PAM_CONST(PAM_CRED_DELETE)
67AC_CHECK_PAM_CONST(PAM_CRED_ESTABLISH)
68AC_CHECK_PAM_CONST(PAM_CRED_REFRESH)
69AC_CHECK_PAM_CONST(PAM_CRED_REINITIALIZE)
70AC_CHECK_PAM_CONST(PAM_DELETE_CRED)
71AC_CHECK_PAM_CONST(PAM_ESTABLISH_CRED)
72AC_CHECK_PAM_CONST(PAM_REFRESH_CRED)
73AC_CHECK_PAM_CONST(PAM_REINITIALIZE_CRED)
74AC_CHECK_PAM_CONST(PAM_INCOMPLETE)
75AC_CHECK_PAM_CONST(PAM_MODULE_UNKNOWN)
76AC_CHECK_PAM_CONST(PAM_RADIO_TYPE)
77AC_CHECK_PAM_CONST(PAM_BINARY_PROMPT)
78
79# Checks if the dl library supports the RTLD_GLOBAL flag
80# but only if perl was compiled with the dl_open library
81
82if perl -V:dlsrc | grep dlopen >/dev/null 2>&1
83then
84  AC_CHECK_DECL([RTLD_GLOBAL],
85                [DL_LOAD_FLAGS='sub dl_load_flags { 0x01 }'],
86                [DL_LOAD_FLAGS=''],
87		[#include<dlfcn.h>])
88else
89  DL_LOAD_FLAGS=''
90fi
91AC_SUBST(DL_LOAD_FLAGS)
92
93AC_CONFIG_FILES([pam.cfg PAM.pm])
94AC_OUTPUT
95