Home | History | Annotate | Download | only in in.ftpd
      1 #
      2 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
      3 # Use is subject to license terms.
      4 #
      5 
      6 PROG=		in.ftpd ftpcount ftpshut ftprestart privatepw
      7 SCRIPTS=	ftpaddhost ftpconfig
      8 MANIFEST=	ftp.xml
      9 SVCMETHOD=	svc-ftp
     10 
     11 include		../../../Makefile.cmd
     12 
     13 COMMON_OBJS=	COPYRIGHT.o vers.o
     14 FTPD_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
     20 FTPCOUNT_OBJS=	$(COMMON_OBJS) ftpcount.o rdservers.o inet.o
     21 FTPSHUT_OBJS=	$(COMMON_OBJS) ftpshut.o rdservers.o inet.o
     22 FTPREST_OBJS=	$(COMMON_OBJS) ftprestart.o rdservers.o inet.o
     23 CKCONFIG_OBJS=	$(COMMON_OBJS) ckconfig.o rdservers.o inet.o
     24 PRIVATE_OBJS=	$(COMMON_OBJS) privatepw.o
     25 OBJS=		$(FTPD_OBJS) ftpcount.o ftpshut.o ftprestart.o ckconfig.o \
     26 		privatepw.o
     27 SRCS=		$(OBJS:%.o=%.c)
     28 CONFIGFILES=	ftpaccess ftpconversions ftpgroups ftphosts ftpservers ftpusers
     29 ETCFTPDDIR=	$(ROOTETC)/ftpd
     30 ETCFTPDFILES=	$(CONFIGFILES:%=$(ETCFTPDDIR)/%)
     31 $(ETCFTPDFILES):=	FILEMODE= 0644
     32 ROOTUSRSBINSCRIPTS=	$(SCRIPTS:%=$(ROOTUSRSBIN)/%)
     33 ROOTFTPCOUNT=	$(ROOTUSRSBIN)/ftpcount
     34 ROOTFTPWHO=	$(ROOTUSRSBIN)/ftpwho
     35 
     36 ROOTMANIFESTDIR=	$(ROOTSVCNETWORK)
     37 
     38 # I18n
     39 POFILE=		in.ftpd_all.po
     40 POFILES=	$(SCRIPTS:%=%.po)
     41 
     42 # When building for Solaris 8 add to CPPFLAGS:
     43 # -Ddn_skipname=__dn_skipname -DSOLARIS_NO_AUDIT_FTPD_LOGOUT
     44 CLOBBERFILES +=	ckconfig ftpwho $(SCRIPTS)
     45 CPPFLAGS +=	-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
     48 LDLIBS +=	-lsocket -lnsl -lpam -lbsm -lsendfile -lgss
     49 YFLAGS +=	-d
     50 
     51 in.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.
     56 tcov :=		CFLAGS += -xa
     57 tcov :=		CPPFLAGS += -D_exit=exit
     58 tcov :=		YFLAGS += -l
     59 
     60 .KEEP_STATE:
     61 
     62 all tcov:	$(PROG) ckconfig ftpwho $(CONFIGFILES) $(SCRIPTS)
     63 
     64 in.ftpd:	$(FTPD_OBJS) $(MAPFILE.NGB)
     65 		$(LINK.c) $(FTPD_OBJS) -o $@ $(LDLIBS)
     66 		$(POST_PROCESS)
     67 
     68 ftpcount:	$(FTPCOUNT_OBJS)
     69 		$(LINK.c) $(FTPCOUNT_OBJS) -o $@ -lsocket -lnsl
     70 		$(POST_PROCESS)
     71 
     72 ftpwho:		ftpcount
     73 		$(RM) $@
     74 		$(LN) ftpcount $@
     75 
     76 ftpshut:	$(FTPSHUT_OBJS)
     77 		$(LINK.c) $(FTPSHUT_OBJS) -o $@ -lsocket -lnsl
     78 		$(POST_PROCESS)
     79 
     80 ftprestart:	$(FTPREST_OBJS)
     81 		$(LINK.c) $(FTPREST_OBJS) -o $@ -lsocket -lnsl
     82 		$(POST_PROCESS)
     83 
     84 ckconfig:	$(CKCONFIG_OBJS)
     85 		$(LINK.c) $(CKCONFIG_OBJS) -o $@ -lsocket -lnsl
     86 		$(POST_PROCESS)
     87 
     88 privatepw:	$(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.
     93 ftpcmd.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 
    106 install:	all $(ROOTUSRSBINPROG) $(ROOTFTPWHO) $(ROOTUSRSBINSCRIPTS) \
    107 		$(ETCFTPDFILES) $(ROOTMANIFEST) $(ROOTSVCMETHOD)
    108 
    109 check:		$(CHKMANIFEST)
    110 
    111 clean:
    112 		$(RM) $(OBJS) *.d *.tcov y.tab.h y.tab.c ftpcmd.c
    113 
    114 lint:		lint_SRCS
    115 
    116 include		../../../Makefile.targ
    117