Makefile revision 10207:87c40ea3fc4b
1# 2# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 3# Use is subject to license terms. 4# 5 6PROG= in.ftpd ftpcount ftpshut ftprestart privatepw 7SCRIPTS= ftpaddhost ftpconfig 8MANIFEST= ftp.xml 9SVCMETHOD= svc-ftp 10 11include ../../../Makefile.cmd 12 13COMMON_OBJS= COPYRIGHT.o vers.o 14FTPD_OBJS= $(COMMON_OBJS) ftpd.o ftpcmd.o glob.o logwtmp.o popen.o \ 15 access.o extensions.o realpath.o acl.o private.o \ 16 authenticate.o conversions.o rdservers.o paths.o hostacc.o \ 17 routevector.o restrict.o domain.o wu_fnmatch.o timeout.o \ 18 getpwnam.o strsep.o strcasestr.o inet.o xferlog.o gssutil.o \ 19 privs.o 20FTPCOUNT_OBJS= $(COMMON_OBJS) ftpcount.o rdservers.o inet.o 21FTPSHUT_OBJS= $(COMMON_OBJS) ftpshut.o rdservers.o inet.o 22FTPREST_OBJS= $(COMMON_OBJS) ftprestart.o rdservers.o inet.o 23CKCONFIG_OBJS= $(COMMON_OBJS) ckconfig.o rdservers.o inet.o 24PRIVATE_OBJS= $(COMMON_OBJS) privatepw.o 25OBJS= $(FTPD_OBJS) ftpcount.o ftpshut.o ftprestart.o ckconfig.o \ 26 privatepw.o 27SRCS= $(OBJS:%.o=%.c) 28CONFIGFILES= ftpaccess ftpconversions ftpgroups ftphosts ftpservers ftpusers 29ETCFTPDDIR= $(ROOTETC)/ftpd 30ETCFTPDFILES= $(CONFIGFILES:%=$(ETCFTPDDIR)/%) 31$(ETCFTPDFILES):= FILEMODE= 0644 32ROOTUSRSBINSCRIPTS= $(SCRIPTS:%=$(ROOTUSRSBIN)/%) 33ROOTFTPCOUNT= $(ROOTUSRSBIN)/ftpcount 34ROOTFTPWHO= $(ROOTUSRSBIN)/ftpwho 35 36ROOTMANIFESTDIR= $(ROOTSVCNETWORK) 37 38# I18n 39POFILE= in.ftpd_all.po 40POFILES= $(SCRIPTS:%=%.po) 41 42# When building for Solaris 8 add to CPPFLAGS: 43# -Ddn_skipname=__dn_skipname -DSOLARIS_NO_AUDIT_FTPD_LOGOUT 44CLOBBERFILES += ckconfig ftpwho $(SCRIPTS) 45CPPFLAGS += -DBSD_COMP -D_FILE_OFFSET_BITS=64 -DINET6 -DSOLARIS_BSM_AUDIT \ 46 -DSOLARIS_ETC_FTPUSERS -DSENDFILE -DCLOSEFROM -DUSE_GSS \ 47 -DSOLARIS_GSS_USEROK -DSOLARIS_PRIVS 48LDLIBS += -lsocket -lnsl -lpam -lbsm -lsendfile -lgss 49YFLAGS += -d 50 51in.ftpd := LDFLAGS += $(MAPFILE.NGB:%=-M%) 52 53# tcov output relies on atexit(3C) registered functions being called, so stop 54# _exit() from being used. Passing -l to yacc stops it generating #line 55# directives which don't work with tcov. 56tcov := CFLAGS += -xa 57tcov := CPPFLAGS += -D_exit=exit 58tcov := YFLAGS += -l 59 60.KEEP_STATE: 61 62all tcov: $(PROG) ckconfig ftpwho $(CONFIGFILES) $(SCRIPTS) 63 64in.ftpd: $(FTPD_OBJS) $(MAPFILE.NGB) 65 $(LINK.c) $(FTPD_OBJS) -o $@ $(LDLIBS) 66 $(POST_PROCESS) 67 68ftpcount: $(FTPCOUNT_OBJS) 69 $(LINK.c) $(FTPCOUNT_OBJS) -o $@ -lsocket -lnsl 70 $(POST_PROCESS) 71 72ftpwho: ftpcount 73 $(RM) $@ 74 $(LN) ftpcount $@ 75 76ftpshut: $(FTPSHUT_OBJS) 77 $(LINK.c) $(FTPSHUT_OBJS) -o $@ -lsocket -lnsl 78 $(POST_PROCESS) 79 80ftprestart: $(FTPREST_OBJS) 81 $(LINK.c) $(FTPREST_OBJS) -o $@ -lsocket -lnsl 82 $(POST_PROCESS) 83 84ckconfig: $(CKCONFIG_OBJS) 85 $(LINK.c) $(CKCONFIG_OBJS) -o $@ -lsocket -lnsl 86 $(POST_PROCESS) 87 88privatepw: $(PRIVATE_OBJS) 89 $(LINK.c) $(PRIVATE_OBJS) -o $@ 90 $(POST_PROCESS) 91 92# This causes y.tab.c to be renamed to ftpcmd.c, needed by tcov. 93ftpcmd.c: ftpcmd.y 94 95$(ETCFTPDDIR)/%: % 96 $(INS.file) 97 98$(POFILE): $(POFILES) 99 $(RM) $@ 100 cat $(POFILES) >$@ 101 102$(ROOTFTPWHO): $(ROOTFTPCOUNT) 103 $(RM) $@ 104 $(LN) $(ROOTFTPCOUNT) $@ 105 106install: all $(ROOTUSRSBINPROG) $(ROOTFTPWHO) $(ROOTUSRSBINSCRIPTS) \ 107 $(ETCFTPDFILES) $(ROOTMANIFEST) $(ROOTSVCMETHOD) 108 109check: $(CHKMANIFEST) 110 111clean: 112 $(RM) $(OBJS) *.d *.tcov y.tab.h y.tab.c ftpcmd.c 113 114lint: lint_SRCS 115 116include ../../../Makefile.targ 117