Makefile revision 24da5b34f49324ed742a340010ed5bd3d4e06625
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
3b4098640dd85040270f39b9a5ee5e22de99d3d6Mark Andrews# ident "%Z%%M% %I% %E% SMI"
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use is subject to license terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPROG= in.ftpd ftpcount ftpshut ftprestart privatepw
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSCRIPTS= ftpaddhost ftpconfig
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMANIFEST= ftp.xml
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../../Makefile.cmd
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMMON_OBJS= COPYRIGHT.o vers.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFTPD_OBJS= $(COMMON_OBJS) ftpd.o ftpcmd.o glob.o logwtmp.o popen.o \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein access.o extensions.o realpath.o acl.o private.o \
b05bdb520d83f7ecaad708fe305268c3420be01dMark Andrews authenticate.o conversions.o rdservers.o paths.o hostacc.o \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein routevector.o restrict.o domain.o wu_fnmatch.o timeout.o \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein getpwnam.o strsep.o strcasestr.o inet.o xferlog.o gssutil.o \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein privs.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFTPCOUNT_OBJS= $(COMMON_OBJS) ftpcount.o rdservers.o inet.o
cedb0bd0c1e3c461b7e479a16d3adfd5b150f1f4Mark AndrewsFTPSHUT_OBJS= $(COMMON_OBJS) ftpshut.o rdservers.o inet.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFTPREST_OBJS= $(COMMON_OBJS) ftprestart.o rdservers.o inet.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCKCONFIG_OBJS= $(COMMON_OBJS) ckconfig.o rdservers.o inet.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPRIVATE_OBJS= $(COMMON_OBJS) privatepw.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinOBJS= $(FTPD_OBJS) ftpcount.o ftpshut.o ftprestart.o ckconfig.o \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein privatepw.o
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSRCS= $(OBJS:%.o=%.c)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGFILES= ftpaccess ftpconversions ftpgroups ftphosts ftpservers ftpusers
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinETCFTPDDIR= $(ROOTETC)/ftpd
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinETCFTPDFILES= $(CONFIGFILES:%=$(ETCFTPDDIR)/%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(ETCFTPDFILES):= FILEMODE= 0644
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(ETCFTPDFILES):= GROUP= sys
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinROOTUSRSBINSCRIPTS= $(SCRIPTS:%=$(ROOTUSRSBIN)/%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinROOTFTPCOUNT= $(ROOTUSRSBIN)/ftpcount
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinROOTFTPWHO= $(ROOTUSRSBIN)/ftpwho
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinROOTMANIFESTDIR= $(ROOTSVCNETWORK)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# I18n
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPOFILE= in.ftpd_all.po
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPOFILES= $(SCRIPTS:%=%.po)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When building for Solaris 8 add to CPPFLAGS:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# -Ddn_skipname=__dn_skipname -DSOLARIS_NO_AUDIT_FTPD_LOGOUT
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCLOBBERFILES += ckconfig ftpwho $(SCRIPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCPPFLAGS += -DBSD_COMP -D_FILE_OFFSET_BITS=64 -DINET6 -DSOLARIS_BSM_AUDIT \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -DSOLARIS_ETC_FTPUSERS -DSENDFILE -DCLOSEFROM -DUSE_GSS \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein -DSOLARIS_GSS_USEROK -DSOLARIS_PRIVS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinLDLIBS += -lsocket -lnsl -lpam -lbsm -lsendfile -lgss
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinYFLAGS += -d
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinin.ftpd := LDFLAGS += $(MAPFILE.NGB:%=-M%)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews# tcov output relies on atexit(3C) registered functions being called, so stop
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews# _exit() from being used. Passing -l to yacc stops it generating #line
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews# directives which don't work with tcov.
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewstcov := CFLAGS += -xa
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewstcov := CPPFLAGS += -D_exit=exit
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewstcov := YFLAGS += -l
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews.KEEP_STATE:
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinall tcov: $(PROG) ckconfig ftpwho $(CONFIGFILES) $(SCRIPTS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewsin.ftpd: $(FTPD_OBJS) $(MAPFILE.NGB)
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews $(LINK.c) $(FTPD_OBJS) -o $@ $(LDLIBS)
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews $(POST_PROCESS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrewsftpcount: $(FTPCOUNT_OBJS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LINK.c) $(FTPCOUNT_OBJS) -o $@ -lsocket -lnsl
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews $(POST_PROCESS)
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinftpwho: ftpcount
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LN) ftpcount $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinftpshut: $(FTPSHUT_OBJS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LINK.c) $(FTPSHUT_OBJS) -o $@ -lsocket -lnsl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(POST_PROCESS)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinftprestart: $(FTPREST_OBJS)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(LINK.c) $(FTPREST_OBJS) -o $@ -lsocket -lnsl
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(POST_PROCESS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinckconfig: $(CKCONFIG_OBJS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LINK.c) $(CKCONFIG_OBJS) -o $@ -lsocket -lnsl
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(POST_PROCESS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinprivatepw: $(PRIVATE_OBJS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LINK.c) $(PRIVATE_OBJS) -o $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(POST_PROCESS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This causes y.tab.c to be renamed to ftpcmd.c, needed by tcov.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrewsftpcmd.c: ftpcmd.y
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
47012ae6dbf18a2503d7b33c1c9583dc38625cb7Mark Andrews$(ETCFTPDDIR)/%: %
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(INS.file)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews$(POFILE): $(POFILES)
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews $(RM) $@
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews cat $(POFILES) >$@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(ROOTFTPWHO): $(ROOTFTPCOUNT)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(LN) $(ROOTFTPCOUNT) $@
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: all $(ROOTUSRSBINPROG) $(ROOTFTPWHO) $(ROOTUSRSBINSCRIPTS) \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(ETCFTPDFILES) $(ROOTMANIFEST)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck: $(CHKMANIFEST)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) $(OBJS) *.d *.tcov y.tab.h y.tab.c ftpcmd.c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinlint: lint_SRCS
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../../Makefile.targ
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein