xref: /dragonfly/lib/libpam/static_libpam/Makefile (revision a3127495)
1# $FreeBSD: head/lib/libpam/static_libpam/Makefile 314901 2017-03-08 08:25:26Z brooks $
2
3# Build only the static library here.
4LIB=	pam
5NOPIC=	yes
6
7# Already handled by libpam shared version.
8NOMAN=	noman
9INCS=
10
11#
12# Static modules support
13#
14# We build static versions of all modules and of openpam_static.o,
15# then link them all together into openpam_static_modules.o.  None of
16# the modules export any symbols, but they store structures with
17# pointers to their service functions in a linker set which the code
18# in openpam_static.c traverses to locate the individual modules.
19#
20MODULESDIR=	../modules
21MODULES=	pam_chroot \
22		pam_deny \
23		pam_echo \
24		pam_exec \
25		pam_ftpusers \
26		pam_group \
27		pam_guest \
28		pam_lastlog \
29		pam_login_access \
30		pam_nologin \
31		pam_opie \
32		pam_opieaccess \
33		pam_passwdqc \
34		pam_permit \
35		pam_radius \
36		pam_rhosts \
37		pam_rootok \
38		pam_securetty \
39		pam_self \
40		pam_ssh \
41		pam_tacplus \
42		pam_unix
43
44STATIC_MODULES=	${MODULES:C/.*/${MODULESDIR}\/&\/lib&.a/}
45STATICOBJS+=	openpam_static_modules.o
46CLEANFILES+=	openpam_static.o openpam_static.po \
47		openpam_static_modules.o
48
49openpam_static_modules.o: openpam_static.o ${STATIC_MODULES}
50	${CC} -nostdlib ${LDFLAGS} -o ${.TARGET} -r -Wl,--whole-archive ${.ALLSRC}
51
52openpam_static_modules.po: openpam_static.po ${STATIC_MODULES}
53	${CC} -nostdlib ${LDFLAGS} -o ${.TARGET} -r -Wl,--whole-archive ${.ALLSRC}
54
55.PATH: ${.CURDIR}/../libpam
56
57.include "${.CURDIR}/../libpam/Makefile"
58