3 # This Makefile controls a build process of the pam_unix modules
4 # for Linux-PAM. You should not modify this Makefile.
7 include ../../Make.Rules
9 ########################################################################
10 # some options... uncomment to take effect
11 ########################################################################
13 # Unless someone wants to work out how to make this work with the new
14 # autoconf stuff, you should use a separate module for this type of thing
15 # pam_cracklib perhaps..?
16 # do you want cracklib?
17 #ifeq ($(HAVE_CRACKLIB),yes)
18 #USE_CRACKLIB=-D"USE_CRACKLIB"
21 # do you want to use lckpwdf?
22 ifeq ($(WITH_LCKPWDF),yes)
23 USE_LCKPWDF=-D"USE_LCKPWDF"
24 # do you need to include the locking functions in the source?
25 ifeq ($(HAVE_LCKPWDF),no)
26 NEED_LCKPWDF=-D"NEED_LCKPWDF"
30 ifeq ($(HAVE_LIBNSL),yes)
34 ifeq ($(HAVE_LIBCRYPT),yes)
40 EXTRAS += -DCHKPWD_HELPER=\"$(SUPLEMENTED)/$(CHKPWD)\"
42 ########################################################################
44 CFLAGS += $(USE_CRACKLIB) $(USE_LCKPWDF) $(NEED_LCKPWDF) $(EXTRAS)
52 LIBOBJ = pam_unix_auth.o pam_unix_acct.o pam_unix_sess.o pam_unix_passwd.o \
54 LIBSRC = pam_unix_auth.c pam_unix_acct.c pam_unix_sess.c pam_unix_passwd.c \
56 LIBOBJD = $(addprefix dynamic/,$(LIBOBJ))
57 LIBOBJS = $(addprefix static/,$(LIBOBJ))
59 PLUS = md5_good.o md5_broken.o md5_crypt_good.o md5_crypt_broken.o \
60 yppasswd_xdr.o bigcrypt.o
63 LIBSHARED = pam_unix.so
66 LIBSTATIC = libpam_unix.o
70 ########################### don't edit below #######################
72 all: dirs info $(PLUS) $(LIBSHARED) $(LIBSTATIC) $(CHKPWD) register
75 $(CC) $(CFLAGS) $(DYNAMIC) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
78 $(CC) $(CFLAGS) $(STATIC) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
81 @echo "**** This is not a top-level Makefile "
86 @echo "*** Building pam-unix module of the framework..."
99 ( cd .. ; ./register_static pam_unix_auth pam_unix/$(LIBSTATIC) ; \
100 ./register_static pam_unix_acct "" ; \
101 ./register_static pam_unix_session "" ; \
102 ./register_static pam_unix_passwd "" ; \
107 $(LIBOBJD): $(LIBSRC)
109 $(LIBSHARED): $(LIBOBJD)
110 $(LD_D) -o $@ $(LIBOBJD) $(PLUS) $(CRACKLIB) $(LDLIBS) $(LIBNSL) $(LIBCRYPT)
114 $(LIBOBJS): $(LIBSRC)
116 $(LIBSTATIC): $(LIBOBJS)
117 $(LD) -r -o $@ $(LIBOBJS) $(PLUS) $(CRACKLIB) $(LDLIBS) $(LIBNSL) $(LIBCRYPT)
120 $(CHKPWD): unix_chkpwd.o md5_good.o md5_broken.o \
121 md5_crypt_good.o md5_crypt_broken.o \
123 $(CC) -o $(CHKPWD) $^ $(LDLIBS) $(LIBCRYPT)
125 unix_chkpwd.o: unix_chkpwd.c
126 $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c $< -o $@
129 $(CC) $(CFLAGS) $(CPPFLAGS) -DHIGHFIRST -D'MD5Name(x)=Good##x' \
130 $(TARGET_ARCH) -c $< -o $@
133 $(CC) $(CFLAGS) $(CPPFLAGS) -D'MD5Name(x)=Broken##x' \
134 $(TARGET_ARCH) -c $< -o $@
136 md5_crypt_good.o: md5_crypt.c
137 $(CC) $(CFLAGS) $(CPPFLAGS) -D'MD5Name(x)=Good##x' \
138 $(TARGET_ARCH) -c $< -o $@
140 md5_crypt_broken.o: md5_crypt.c
141 $(CC) $(CFLAGS) $(CPPFLAGS) -D'MD5Name(x)=Broken##x' \
142 $(TARGET_ARCH) -c $< -o $@
145 mkdir -p $(FAKEROOT)$(SECUREDIR)
147 install -m $(SHLIBMODE) $(LIBSHARED) $(FAKEROOT)$(SECUREDIR)
148 for x in pam_unix_auth pam_unix_acct pam_unix_passwd pam_unix_session;\
149 do ln -sf $(LIBSHARED) $(FAKEROOT)$(SECUREDIR)/$$x.so ; done
151 $(MKDIR) $(FAKEROOT)$(SUPLEMENTED)
152 install -m 4555 $(CHKPWD) $(FAKEROOT)$(SUPLEMENTED)
155 rm -f $(FAKEROOT)$(SECUREDIR)/$(LIBSHARED)
156 for x in pam_unix_auth pam_unix_acct pam_unix_passwd pam_unix_session;\
157 do rm -f $(FAKEROOT)$(SECUREDIR)/$$x.so ; done
158 rm -f $(FAKEROOT)$(SUPLEMENTED)/$(CHKPWD)
161 rm -f $(LIBOBJD) $(LIBOBJS) $(CHKPWD) *.o *.so core
162 rm -f *~ *.a *.out *.bak
163 rm -rf dynamic static
166 $(CC) -c $(CFLAGS) $<