xref: /dragonfly/lib/libpam/static_libpam/Makefile (revision a705726d)
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_passwdqc \
32		pam_permit \
33		pam_rhosts \
34		pam_rootok \
35		pam_securetty \
36		pam_self \
37		pam_unix
38
39STATIC_MODULES=	${MODULES:C/.*/${MODULESDIR}\/&\/lib&.a/}
40STATICOBJS+=	openpam_static_modules.o
41CLEANFILES+=	openpam_static.o openpam_static.po \
42		openpam_static_modules.o
43
44openpam_static_modules.o: openpam_static.o ${STATIC_MODULES}
45	${CC} -nostdlib ${LDFLAGS} -o ${.TARGET} -r -Wl,--whole-archive ${.ALLSRC}
46
47openpam_static_modules.po: openpam_static.po ${STATIC_MODULES}
48	${CC} -nostdlib ${LDFLAGS} -o ${.TARGET} -r -Wl,--whole-archive ${.ALLSRC}
49
50.PATH: ${.CURDIR}/../libpam
51
52.include "${.CURDIR}/../libpam/Makefile"
53