]> granicus.if.org Git - linux-pam/blob - libpam/Makefile
Relevant BUGIDs: 129027, 128576
[linux-pam] / libpam / Makefile
1 #
2 # $Id$
3 #
4 #
5
6 include ../Make.Rules
7
8 # need to tell libpam about the default directory for PAMs
9 MOREFLAGS=-D"DEFAULT_MODULE_PATH=\"$(SECUREDIR)/\""
10
11 ifeq ($(WITH_LIBDEBUG),yes)
12  LIBNAME=libpamd
13 else
14  LIBNAME=libpam
15 endif
16 VERSION=.$(MAJOR_REL)
17 MODIFICATION=.$(MINOR_REL)
18
19 # ---------------------------------------------
20
21 dummy: ../Make.Rules all
22
23 # ---------------------------------------------
24
25 CFLAGS += $(DYNAMIC) $(STATIC) $(MOREFLAGS) \
26   -DLIBPAM_VERSION_MAJOR=$(MAJOR_REL) \
27   -DLIBPAM_VERSION_MINOR=$(MINOR_REL)
28
29 # dynamic library names
30
31 LIBPAM = $(LIBNAME).$(DYNTYPE)
32 LIBPAMNAME = $(LIBPAM)$(VERSION)
33 LIBPAMFULL = $(LIBPAMNAME)$(MODIFICATION)
34
35 # static library name
36
37 LIBPAMSTATIC = $(LIBNAME).a
38
39 ifdef STATIC
40 @echo Did you mean to set STATIC\?
41 MODULES = $(shell cat ../modules/_static_module_objects)
42 STATICOBJ = pam_static.o
43 endif
44
45 ifdef MEMORY_DEBUG
46 EXTRAS += pam_malloc.o
47 endif
48
49 LIBOBJECTS = pam_item.o pam_strerror.o pam_end.o pam_start.o pam_data.o \
50                 pam_delay.o pam_dispatch.o pam_handlers.o pam_misc.o \
51                 pam_account.o pam_auth.o pam_session.o pam_password.o \
52                 pam_env.o pam_log.o $(EXTRAS)
53
54 ifeq ($(DYNAMIC_LIBPAM),yes)
55 # libpam.so needs -ldl, too.
56 DLIBOBJECTS = $(addprefix dynamic/,$(LIBOBJECTS) $(STATICOBJ))
57 ifeq ($(STATICOBJ),yes)
58 dynamic/pam_static.o: pam_static.c ../modules/_static_module_objects
59         $(CC) $(CFLAGS) -c pam_static.c -o $@
60 endif
61 endif
62
63 ifeq ($(STATIC_LIBPAM),yes)
64 SLIBOBJECTS = $(addprefix static/,$(LIBOBJECTS) $(STATICOBJ))
65 ifdef STATICOBJ
66 static/pam_static.o: pam_static.c ../modules/_static_module_objects
67         $(CC) $(CFLAGS) -c pam_static.c -o $@
68 endif
69 endif
70
71 # ---------------------------------------------
72 ## rules
73
74 all: dirs $(LIBPAM) $(LIBPAMSTATIC) ../Make.Rules
75
76 dirs:
77 ifeq ($(DYNAMIC_LIBPAM),yes)
78         $(MKDIR) dynamic
79 endif
80 ifeq ($(STATIC_LIBPAM),yes)
81         $(MKDIR) static
82 endif
83
84 dynamic/%.o : %.c
85         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
86
87 static/%.o : %.c
88         $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
89
90 $(LIBPAM): $(DLIBOBJECTS)
91 ifeq ($(DYNAMIC_LIBPAM),yes)
92     ifeq ($(USESONAME),yes)
93         $(LD_L) $(SOSWITCH) $(LIBPAMNAME) -o $@ $(DLIBOBJECTS) \
94                 $(MODULES) $(LINKLIBS)
95     else
96         $(LD_L) -o $@ $(DLIBOBJECTS) $(MODULES) $(LINKLIBS)
97     endif
98     ifeq ($(NEEDSONAME),yes)
99         rm -f $(LIBPAMFULL)
100         ln -sf $(LIBPAM) $(LIBPAMFULL)
101         rm -f $(LIBPAMNAME)
102         ln -sf $(LIBPAM) $(LIBPAMNAME)
103     endif
104 endif
105
106 $(LIBPAMSTATIC): $(SLIBOBJECTS)
107 ifeq ($(STATIC_LIBPAM),yes)
108         $(AR) $@ $(SLIBOBJECTS) $(MODULES)
109         $(RANLIB) $@
110 endif
111
112 install: all
113         $(MKDIR) $(FAKEROOT)$(INCLUDED) $(FAKEROOT)$(libdir)
114         $(INSTALL) -m 644 include/security/pam_appl.h $(FAKEROOT)$(INCLUDED)
115         $(INSTALL) -m 644 include/security/pam_modules.h $(FAKEROOT)$(INCLUDED)
116         $(INSTALL) -m 644 include/security/_pam_macros.h $(FAKEROOT)$(INCLUDED)
117         $(INSTALL) -m 644 include/security/_pam_types.h $(FAKEROOT)$(INCLUDED)
118         $(INSTALL) -m 644 include/security/_pam_compat.h $(FAKEROOT)$(INCLUDED)
119 ifdef MEMORY_DEBUG
120         $(INSTALL) -m 644 include/security/pam_malloc.h $(FAKEROOT)$(INCLUDED)
121 endif
122 ifeq ($(DYNAMIC_LIBPAM),yes)
123         $(INSTALL) -m $(SHLIBMODE) $(LIBPAM) $(FAKEROOT)$(libdir)/$(LIBPAMFULL)
124         $(LDCONFIG)
125   ifneq ($(DYNTYPE),"sl")
126         ( cd $(FAKEROOT)$(libdir) ; rm -f $(LIBPAM) ; \
127           ln -sf $(LIBPAMNAME) $(LIBPAM) )
128   endif
129 endif
130 ifeq ($(STATIC_LIBPAM),yes)
131         $(INSTALL) -m 644 $(LIBPAMSTATIC) $(FAKEROOT)$(libdir)
132 endif
133
134 remove:
135         rm -f $(FAKEROOT)$(INCLUDED)/_pam_types.h
136         rm -f $(FAKEROOT)$(INCLUDED)/_pam_macros.h
137         rm -f $(FAKEROOT)$(INCLUDED)/pam_appl.h
138         rm -f $(FAKEROOT)$(INCLUDED)/pam_modules.h
139         rm -f $(FAKEROOT)$(INCLUDED)/pam_malloc.h
140         rm -f $(FAKEROOT)$(libdir)/$(LIBPAM).*
141         rm -f $(FAKEROOT)$(libdir)/$(LIBPAM)
142         $(LDCONFIG)
143         rm -f $(FAKEROOT)$(libdir)/$(LIBPAMSTATIC)
144
145 clean:
146         rm -f a.out core *~ static/*.o dynamic/*.o
147         rm -f *.a *.o *.so ./include/security/*~
148         if [ -d dynamic ]; then rmdir dynamic ; fi
149         if [ -d static ]; then rmdir static ; fi