]> git.ipfire.org Git - thirdparty/cups.git/blob - config-scripts/cups-pam.m4
0d7d9adb860189efb55dc681bd6dd5f4258e09ba
[thirdparty/cups.git] / config-scripts / cups-pam.m4
1 dnl
2 dnl "$Id$"
3 dnl
4 dnl PAM stuff for CUPS.
5 dnl
6 dnl Copyright 2007-2013 by Apple Inc.
7 dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
8 dnl
9 dnl These coded instructions, statements, and computer programs are the
10 dnl property of Apple Inc. and are protected by Federal copyright
11 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 dnl which should have been included with this file. If this file is
13 dnl file is missing or damaged, see the license at "http://www.cups.org/".
14 dnl
15
16 AC_ARG_ENABLE(pam, [ --disable-pam disable PAM support])
17 AC_ARG_WITH(pam_module, [ --with-pam-module specify the PAM module to use])
18
19 PAMDIR=""
20 PAMFILE="pam.std"
21 PAMLIBS=""
22 PAMMOD="pam_unknown.so"
23 PAMMODAUTH="pam_unknown.so"
24
25 if test x$enable_pam != xno; then
26 SAVELIBS="$LIBS"
27
28 AC_CHECK_LIB(dl,dlopen)
29 AC_CHECK_LIB(pam,pam_start)
30 AC_CHECK_LIB(pam,pam_set_item,AC_DEFINE(HAVE_PAM_SET_ITEM))
31 AC_CHECK_LIB(pam,pam_setcred,AC_DEFINE(HAVE_PAM_SETCRED))
32 AC_CHECK_HEADER(security/pam_appl.h)
33 if test x$ac_cv_header_security_pam_appl_h != xyes; then
34 AC_CHECK_HEADER(pam/pam_appl.h,
35 AC_DEFINE(HAVE_PAM_PAM_APPL_H))
36 fi
37
38 if test x$ac_cv_lib_pam_pam_start != xno; then
39 # Set the necessary libraries for PAM...
40 if test x$ac_cv_lib_dl_dlopen != xno; then
41 PAMLIBS="-lpam -ldl"
42 else
43 PAMLIBS="-lpam"
44 fi
45
46 # Find the PAM configuration directory, if any...
47 for dir in /private/etc/pam.d /etc/pam.d; do
48 if test -d $dir; then
49 PAMDIR=$dir
50 break;
51 fi
52 done
53 fi
54
55 LIBS="$SAVELIBS"
56
57 case "$uname" in
58 Darwin*)
59 # Darwin/OS X
60 if test "x$with_pam_module" != x; then
61 PAMFILE="pam.$with_pam_module"
62 elif test -f /usr/lib/pam/pam_opendirectory.so.2; then
63 PAMFILE="pam.opendirectory"
64 else
65 PAMFILE="pam.securityserver"
66 fi
67 ;;
68
69 *)
70 # All others; this test might need to be updated
71 # as Linux distributors move things around...
72 if test "x$with_pam_module" != x; then
73 PAMMOD="pam_${with_pam_module}.so"
74 elif test -f /lib/security/pam_unix2.so; then
75 PAMMOD="pam_unix2.so"
76 elif test -f /lib/security/pam_unix.so; then
77 PAMMOD="pam_unix.so"
78 fi
79
80 if test "x$PAMMOD" = xpam_unix.so; then
81 PAMMODAUTH="$PAMMOD shadow nodelay"
82 else
83 PAMMODAUTH="$PAMMOD nodelay"
84 fi
85 ;;
86 esac
87 fi
88
89 AC_SUBST(PAMDIR)
90 AC_SUBST(PAMFILE)
91 AC_SUBST(PAMLIBS)
92 AC_SUBST(PAMMOD)
93 AC_SUBST(PAMMODAUTH)
94
95 dnl
96 dnl End of "$Id$".
97 dnl