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