Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libpam / libpam / Makefile
1 #
2 # $Id: Makefile,v 1.19 1997/04/05 06:58:43 morgan Exp morgan $
3 # $FreeBSD: src/contrib/libpam/libpam/Makefile,v 1.1.1.1.6.2 2001/06/11 15:28:12 markm Exp $
4 #
5 # $Log: Makefile,v $
6 # Revision 1.19  1997/04/05 06:58:43  morgan
7 # fakeroot
8 #
9 # Revision 1.18  1997/02/15 15:56:09  morgan
10 # inherit major and minor numbers
11 #
12 # Revision 1.17  1997/01/04 20:03:09  morgan
13 # update for .55
14 #
15 # Revision 1.16  1996/12/01 03:14:13  morgan
16 # update for .54
17 #
18 # Revision 1.15  1996/11/10 20:07:51  morgan
19 # updated for .53
20 #
21 # Revision 1.14  1996/09/05 06:06:53  morgan
22 # added local flag for locking, slight reorganization too.
23 #
24
25 # need to tell libpam about the default directory for PAMs
26 MOREFLAGS=-D"DEFAULT_MODULE_PATH=\"$(SECUREDIR)/\""
27
28 # you may uncomment the following to build libpam in modified ways
29
30 # lots of debugging information goes to /tmp/pam-debug.log
31 #MOREFLAGS += -D"DEBUG"
32
33 # pay attention to locked /etc/pam.conf or /etc/pam.d/* files
34 #MOREFLAGS += -D"PAM_LOCKING"
35
36 # read both the /etc/pam.d/ and pam.conf files specific to the deisred service
37 #MOREFLAGS += -D"PAM_READ_BOTH_CONFS"
38
39 # make a kludge attempt to be compatible with the old pam_strerror
40 # calling convention
41 #MOREFLAGS += -D"UGLY_HACK_FOR_PRIOR_BEHAVIOR_SUPPORT"
42
43 ifeq ($(DEBUG_REL),yes)
44  LIBNAME=libpamd
45 else
46  LIBNAME=libpam
47 endif
48 VERSION=.$(MAJOR_REL)
49 MODIFICATION=.$(MINOR_REL)
50
51 # ---------------------------------------------
52
53 dummy:
54         @echo "*** This is not a top-level Makefile!"
55
56 # ---------------------------------------------
57
58 CFLAGS += $(DYNAMIC) $(STATIC) $(MOREFLAGS)
59
60 # dynamic library names
61
62 LIBPAM = $(LIBNAME).$(DYNTYPE)
63 LIBPAMNAME = $(LIBPAM)$(VERSION)
64 LIBPAMFULL = $(LIBPAMNAME)$(MODIFICATION)
65
66 # static library name
67
68 LIBPAMSTATIC = $(LIBNAME).a
69
70 ifdef STATIC
71 MODULES = $(shell cat ../modules/_static_module_objects)
72 STATICOBJ = pam_static.o
73 endif
74
75 ifdef MEMORY_DEBUG
76 EXTRAS += pam_malloc.o
77 endif
78
79 LIBOBJECTS = pam_item.o pam_strerror.o pam_end.o pam_start.o pam_data.o \
80                 pam_delay.o pam_dispatch.o pam_handlers.o pam_misc.o \
81                 pam_account.o pam_auth.o pam_session.o pam_password.o \
82                 pam_env.o pam_log.o $(EXTRAS)
83
84 ifdef DYNAMIC_LIBPAM
85 DLIBOBJECTS = $(addprefix dynamic/,$(LIBOBJECTS) $(STATICOBJ))
86 ifdef STATICOBJ
87 dynamic/pam_static.o: pam_static.c ../modules/_static_module_objects
88         $(CC) $(CFLAGS) -c pam_static.c -o $@
89 endif
90 endif
91
92 ifdef STATIC_LIBPAM
93 SLIBOBJECTS = $(addprefix static/,$(LIBOBJECTS) $(STATICOBJ))
94 ifdef STATICOBJ
95 static/pam_static.o: pam_static.c ../modules/_static_module_objects
96         $(CC) $(CFLAGS) -c pam_static.c -o $@
97 endif
98 endif
99
100 # ---------------------------------------------
101 ## rules
102
103 all: dirs $(LIBPAM) $(LIBPAMSTATIC)
104
105 dirs:
106 ifdef DYNAMIC_LIBPAM
107         mkdir -p dynamic
108 endif
109 ifdef STATIC_LIBPAM
110         mkdir -p static
111 endif
112
113 dynamic/%.o : %.c
114         $(CC) $(CFLAGS) $(DYNAMIC) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
115
116 static/%.o : %.c
117         $(CC) $(CFLAGS) $(STATIC) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
118
119 $(LIBPAM): $(DLIBOBJECTS)
120 ifdef DYNAMIC_LIBPAM
121     ifeq ($(USESONAME),yes)
122         $(LD_L) $(SOSWITCH) $(LIBPAMNAME) -o $@ $(DLIBOBJECTS) $(MODULES)
123     else
124         $(LD_L) -o $@ $(DLIBOBJECTS) $(MODULES)
125     endif
126     ifeq ($(NEEDSONAME),yes)
127         rm -f $(LIBPAMFULL)
128         ln -s $(LIBPAM) $(LIBPAMFULL)
129         rm -f $(LIBPAMNAME)
130         ln -s $(LIBPAM) $(LIBPAMNAME)
131     endif
132 endif
133
134 $(LIBPAMSTATIC): $(SLIBOBJECTS)
135 ifdef STATIC_LIBPAM
136         $(AR) $@ $(SLIBOBJECTS) $(MODULES)
137         $(RANLIB) $@
138 endif
139
140 install: all
141         $(MKDIR) $(FAKEROOT)$(INCLUDED)
142         $(INSTALL) -m 644 include/security/pam_appl.h $(FAKEROOT)$(INCLUDED)
143         $(INSTALL) -m 644 include/security/pam_modules.h $(FAKEROOT)$(INCLUDED)
144         $(INSTALL) -m 644 include/security/_pam_macros.h $(FAKEROOT)$(INCLUDED)
145         $(INSTALL) -m 644 include/security/_pam_types.h $(FAKEROOT)$(INCLUDED)
146         $(INSTALL) -m 644 include/security/_pam_compat.h $(FAKEROOT)$(INCLUDED)
147 ifdef MEMORY_DEBUG
148         $(INSTALL) -m 644 include/security/pam_malloc.h $(FAKEROOT)$(INCLUDED)
149 endif
150 ifdef DYNAMIC_LIBPAM
151         $(INSTALL) -m $(SHLIBMODE) $(LIBPAM) $(FAKEROOT)$(LIBDIR)/$(LIBPAMFULL)
152         $(LDCONFIG)
153   ifneq ($(DYNTYPE),"sl")
154         ( cd $(FAKEROOT)$(LIBDIR) ; rm -f $(LIBPAM) ; ln -s $(LIBPAMNAME) $(LIBPAM) )
155   endif
156 endif
157 ifdef STATIC_LIBPAM
158         $(INSTALL) -m 644 $(LIBPAMSTATIC) $(FAKEROOT)$(LIBDIR)
159 endif
160
161 remove:
162         rm -f $(FAKEROOT)$(INCLUDED)/_pam_types.h
163         rm -f $(FAKEROOT)$(INCLUDED)/_pam_macros.h
164         rm -f $(FAKEROOT)$(INCLUDED)/pam_appl.h
165         rm -f $(FAKEROOT)$(INCLUDED)/pam_modules.h
166         rm -f $(FAKEROOT)$(INCLUDED)/pam_malloc.h
167         rm -f $(FAKEROOT)$(LIBDIR)/$(LIBPAM).*
168         rm -f $(FAKEROOT)$(LIBDIR)/$(LIBPAM)
169         $(LDCONFIG)
170         rm -f $(FAKEROOT)$(LIBDIR)/$(LIBPAMSTATIC)
171
172 clean:
173         rm -f a.out core *~ static/*.o dynamic/*.o
174
175 extraclean: clean
176         rm -f *.a *.out *.o *.so ./include/security/*~
177         if [ -d dynamic ]; then rmdir dynamic ; fi
178         if [ -d static ]; then rmdir static ; fi