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