8 # need to tell libpam about the default directory for PAMs
9 MOREFLAGS=-D"DEFAULT_MODULE_PATH=\"$(SECUREDIR)/\""
11 ifeq ($(WITH_LIBDEBUG),yes)
17 MODIFICATION=.$(MINOR_REL)
19 # ---------------------------------------------
21 dummy: ../Make.Rules all
23 # ---------------------------------------------
25 CFLAGS += $(DYNAMIC) $(STATIC) $(MOREFLAGS) \
26 -DLIBPAM_VERSION_MAJOR=$(MAJOR_REL) \
27 -DLIBPAM_VERSION_MINOR=$(MINOR_REL)
29 # dynamic library names
31 LIBPAM = $(LIBNAME).$(DYNTYPE)
32 LIBPAMNAME = $(LIBPAM)$(VERSION)
33 LIBPAMFULL = $(LIBPAMNAME)$(MODIFICATION)
37 LIBPAMSTATIC = $(LIBNAME).a
40 @echo Did you mean to set STATIC\?
41 MODULES = $(shell cat ../modules/_static_module_objects)
42 STATICOBJ = pam_static.o
46 EXTRAS += pam_malloc.o
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)
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 $@
63 ifeq ($(STATIC_LIBPAM),yes)
64 SLIBOBJECTS = $(addprefix static/,$(LIBOBJECTS) $(STATICOBJ))
66 static/pam_static.o: pam_static.c ../modules/_static_module_objects
67 $(CC) $(CFLAGS) -c pam_static.c -o $@
71 # ---------------------------------------------
74 all: dirs $(LIBPAM) $(LIBPAMSTATIC) ../Make.Rules
77 ifeq ($(DYNAMIC_LIBPAM),yes)
80 ifeq ($(STATIC_LIBPAM),yes)
85 $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
88 $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
90 $(LIBPAM): $(DLIBOBJECTS)
91 ifeq ($(DYNAMIC_LIBPAM),yes)
92 ifeq ($(USESONAME),yes)
93 $(LD_L) $(SOSWITCH) $(LIBPAMNAME) -o $@ $(DLIBOBJECTS) \
94 $(MODULES) $(LINKLIBS)
96 $(LD_L) -o $@ $(DLIBOBJECTS) $(MODULES) $(LINKLIBS)
98 ifeq ($(NEEDSONAME),yes)
100 ln -sf $(LIBPAM) $(LIBPAMFULL)
102 ln -sf $(LIBPAM) $(LIBPAMNAME)
106 $(LIBPAMSTATIC): $(SLIBOBJECTS)
107 ifeq ($(STATIC_LIBPAM),yes)
108 $(AR) $@ $(SLIBOBJECTS) $(MODULES)
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)
120 $(INSTALL) -m 644 include/security/pam_malloc.h $(FAKEROOT)$(INCLUDED)
122 ifeq ($(DYNAMIC_LIBPAM),yes)
123 $(INSTALL) -m $(SHLIBMODE) $(LIBPAM) $(FAKEROOT)$(libdir)/$(LIBPAMFULL)
125 ifneq ($(DYNTYPE),"sl")
126 ( cd $(FAKEROOT)$(libdir) ; rm -f $(LIBPAM) ; \
127 ln -sf $(LIBPAMNAME) $(LIBPAM) )
130 ifeq ($(STATIC_LIBPAM),yes)
131 $(INSTALL) -m 644 $(LIBPAMSTATIC) $(FAKEROOT)$(libdir)
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)
143 rm -f $(FAKEROOT)$(libdir)/$(LIBPAMSTATIC)
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