2 # Copyright (c) 1998 Juniper Networks, Inc.
4 # Copyright (c) 2002 Networks Associates Technology, Inc.
7 # Portions of this software was developed for the FreeBSD Project by
8 # ThinkSec AS and NAI Labs, the Security Research Division of Network
9 # Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035
10 # ("CBOSS"), as part of the DARPA CHATS research program.
12 # Redistribution and use in source and binary forms, with or without
13 # modification, are permitted provided that the following conditions
15 # 1. Redistributions of source code must retain the above copyright
16 # notice, this list of conditions and the following disclaimer.
17 # 2. Redistributions in binary form must reproduce the above copyright
18 # notice, this list of conditions and the following disclaimer in the
19 # documentation and/or other materials provided with the distribution.
20 # 3. The name of the author may not be used to endorse or promote
21 # products derived from this software without specific prior written
24 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
25 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
28 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
38 OPENPAM= ${.CURDIR}/../../../contrib/openpam
39 .PATH: ${OPENPAM}/include ${OPENPAM}/lib/libpam ${OPENPAM}/doc/man
44 SRCS= openpam_borrow_cred.c \
45 openpam_check_owner_perms.c \
53 openpam_free_envlist.c \
54 openpam_get_feature.c \
55 openpam_get_option.c \
62 openpam_restore_cred.c \
63 openpam_set_feature.c \
64 openpam_set_option.c \
94 SRCS+= pam_debug_log.c
97 openpam_borrow_cred.3 \
99 openpam_free_envlist.3 \
100 openpam_get_feature.3 \
101 openpam_get_option.3 \
105 openpam_readlinev.3 \
107 openpam_restore_cred.3 \
108 openpam_set_feature.3 \
109 openpam_set_option.3 \
117 pam_close_session.3 \
136 pam_sm_authenticate.3 \
138 pam_sm_close_session.3 \
139 pam_sm_open_session.3 \
148 MLINKS= pam.conf.5 pam.d.5
151 CFLAGS+= -I${.CURDIR} -I${OPENPAM}/include
152 CFLAGS+= -DLIB_MAJ=${SHLIB_MAJOR}
153 CFLAGS+= -DOPENPAM_MODULES_DIR='"${PAM_MOD_DIR:C/\/*$//}/"'
154 CFLAGS+= -DHAVE_FDLOPEN=1
155 CFLAGS+= -DHAVE_FPURGE=1
156 CFLAGS+= -DHAVE_STRLCAT=1
157 CFLAGS+= -DHAVE_STRLCPY=1
159 HEADERS= security/openpam.h \
160 security/openpam_attr.h \
161 security/openpam_version.h \
162 security/pam_appl.h \
163 security/pam_constants.h \
164 security/pam_modules.h \
165 security/pam_types.h \
167 ADD_HEADERS= security/pam_mod_misc.h
172 # We build static versions of all modules and of openpam_static.o,
173 # then link them all together into openpam_static_modules.o. None of
174 # the modules export any symbols, but they store structures with
175 # pointers to their service functions in a linker set which the code
176 # in openpam_static.c traverses to locate the individual modules.
178 MODULE_DIR= ../modules
179 .include "${.CURDIR}/${MODULE_DIR}/modules.inc"
180 STATIC_MODULES= ${MODULES:C/.*/${MODULE_DIR}\/&\/lib&.a/}
181 STATICOBJS+= openpam_static_modules.o
182 CLEANFILES+= openpam_static.o \
183 openpam_static_modules.o
185 openpam_static_modules.o: openpam_static.o ${STATIC_MODULES}
186 ${LD} -o ${.TARGET} -r --whole-archive ${.ALLSRC}
188 # We can't put openpam_static.c in SRCS, but we still want to scan it
190 DPSRCS= openpam_static.c
193 INCS= ${HEADERS} ${ADD_HEADERS}
194 INCSDIR= ${INCLUDEDIR}/security
196 .include <bsd.lib.mk>