xref: /dragonfly/lib/libpam/static_libpam/Makefile (revision 64b584a01b13eb4d0ab91f7d9b99bafe3001823c)
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