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_asprintf.c \
45 openpam_borrow_cred.c \
46 openpam_check_owner_perms.c \
54 openpam_free_envlist.c \
55 openpam_get_feature.c \
56 openpam_get_option.c \
63 openpam_restore_cred.c \
64 openpam_set_feature.c \
65 openpam_set_option.c \
98 SRCS+= pam_debug_log.c
101 openpam_borrow_cred.3 \
102 openpam_free_data.3 \
103 openpam_free_envlist.3 \
104 openpam_get_feature.3 \
105 openpam_get_option.3 \
109 openpam_readlinev.3 \
111 openpam_restore_cred.3 \
112 openpam_set_feature.3 \
113 openpam_set_option.3 \
121 pam_close_session.3 \
140 pam_sm_authenticate.3 \
142 pam_sm_close_session.3 \
143 pam_sm_open_session.3 \
152 MLINKS= pam.conf.5 pam.d.5
155 CFLAGS+= -I${.CURDIR} -I${OPENPAM}/include
156 CFLAGS+= -DLIB_MAJ=${SHLIB_MAJOR}
157 CFLAGS+= -DOPENPAM_MODULES_DIRECTORY='"${PAM_MOD_DIR:C/\/*$//}/"'
158 CFLAGS+= -DHAVE_DLFUNC=1
159 CFLAGS+= -DHAVE_FDLOPEN=1
160 CFLAGS+= -DHAVE_FPURGE=1
161 CFLAGS+= -DHAVE_STRLCAT=1
162 CFLAGS+= -DHAVE_STRLCPY=1
164 HEADERS= security/openpam.h \
165 security/openpam_attr.h \
166 security/openpam_version.h \
167 security/pam_appl.h \
168 security/pam_constants.h \
169 security/pam_modules.h \
170 security/pam_types.h \
172 ADD_HEADERS= security/pam_mod_misc.h
177 # We build static versions of all modules and of openpam_static.o,
178 # then link them all together into openpam_static_modules.o. None of
179 # the modules export any symbols, but they store structures with
180 # pointers to their service functions in a linker set which the code
181 # in openpam_static.c traverses to locate the individual modules.
183 MODULE_DIR= ../modules
184 .include "${.CURDIR}/${MODULE_DIR}/modules.inc"
185 STATIC_MODULES= ${MODULES:C/.*/${MODULE_DIR}\/&\/lib&.a/}
186 STATICOBJS+= openpam_static_modules.o
187 CLEANFILES+= openpam_static.o \
188 openpam_static_modules.o
190 openpam_static_modules.o: openpam_static.o ${STATIC_MODULES}
191 ${LD} -o ${.TARGET} -r --whole-archive ${.ALLSRC}
193 # We can't put openpam_static.c in SRCS, but we still want to scan it
195 DPSRCS= openpam_static.c
198 INCS= ${HEADERS} ${ADD_HEADERS}
199 INCSDIR= ${INCLUDEDIR}/security
201 .include <bsd.lib.mk>