Makefile revision 7014882c6a3672fd0e5d60200af8643ae53c5928
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# CDDL HEADER START
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# The contents of this file are subject to the terms of the
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Common Development and Distribution License (the "License").
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# You may not use this file except in compliance with the License.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# or http://www.opensolaris.org/os/licensing.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# See the License for the specific language governing permissions
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# and limitations under the License.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# When distributing Covered Code, include this CDDL HEADER in each
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# If applicable, add the following below this CDDL HEADER, with the
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# fields enclosed by brackets "[]" replaced with your own identifying
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# information: Portions Copyright [yyyy] [name of copyright owner]
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# CDDL HEADER END
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
036aa26189b72905886e39d76d63352185cfd9d2gc# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Use is subject to license terms.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Copyright 2011 Nexenta Systems, Inc. All rights reserved.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzPROG= dns-sd finger rdate ruptime rwho whois
c77a61a72b5ecdc507d6cf104142edd371a16c84yzSUIDPROG= rcp rlogin rsh
c77a61a72b5ecdc507d6cf104142edd371a16c84yzALL= $(PROG) $(SUIDPROG)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzSRCS= $(ALL:%=%.c)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzKCMDPROGS= rcp rlogin rsh
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzSUBDIRS= chat ftp nc nca netstat \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz pppd pppdump pppstats rdist talk telnet tftp
c77a61a72b5ecdc507d6cf104142edd371a16c84yzSUBDIR1= talk
c77a61a72b5ecdc507d6cf104142edd371a16c84yzMSGSUBDIRS= nca talk
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# As programs get lint-clean, add them here. Eventually.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# This hack should go away, and all in PROG should be lint-clean.
c77a61a72b5ecdc507d6cf104142edd371a16c84yzLINTCLEAN= rlogin.c rsh.c rcp.c rdate.c rwho.c whois.c
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Likewise, as subdirs get lint-clean, add them here. Once
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# they're all clean, replace the dependency of the lint target
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# with SUBDIRS. Also (sigh) deal with the commented-out build lines
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# for the lint rule.
c77a61a72b5ecdc507d6cf104142edd371a16c84yzLINTSUBDIRS= nca netstat pppd pppstats tftp
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzinclude ../../Makefile.cmd
c77a61a72b5ecdc507d6cf104142edd371a16c84yzinclude ../Makefile.cmd-inet
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCOMMONOBJS= kcmd.o
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCOMMONPOFILES= $(COMMONOBJS:.o=.po)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCOMMONSRCS= $(CMDINETCOMMONDIR)/$(COMMONOBJS:.o=.c)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzPOFILES= rlogin.po rsh.po rcp.po $(COMMONPOFILES)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzPOFILE= usr.bin.po
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzall:= TARGET= all
c77a61a72b5ecdc507d6cf104142edd371a16c84yzinstall:= TARGET= install
c77a61a72b5ecdc507d6cf104142edd371a16c84yzclean:= TARGET= clean
c77a61a72b5ecdc507d6cf104142edd371a16c84yzclobber:= TARGET= clobber
c77a61a72b5ecdc507d6cf104142edd371a16c84yzlint:= TARGET= lint
c77a61a72b5ecdc507d6cf104142edd371a16c84yz_msg:= TARGET= _msg
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzROOTSUIDPROG= $(SUIDPROG:%=$(ROOTBIN)/%)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(ROOTSUIDPROG) := FILEMODE= 04555
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCPPFLAGS += -DSYSV -DSTRNET -DBSD_COMP -I$(CMDINETCOMMONDIR)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCERRWARN += -_gcc=-Wno-parentheses
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCERRWARN += -_gcc=-Wno-uninitialized
c77a61a72b5ecdc507d6cf104142edd371a16c84yzCERRWARN += -_gcc=-Wno-unused-function
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Eventually just plain CFLAGS should be += -v, but not until all in
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# PROGS are lint clean.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(LINTCLEAN) := CFLAGS += $(CCVERBOSE)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzdns-sd := CFLAGS += $(C99_ENABLE)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzfinger := CFLAGS += $(CCVERBOSE)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Enable large file support for reading the lastlog file.
c77a61a72b5ecdc507d6cf104142edd371a16c84yzfinger := CPPFLAGS += -D_FILE_OFFSET_BITS=64
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzdns-sd := LDLIBS += -lsocket -ldns_sd
c77a61a72b5ecdc507d6cf104142edd371a16c84yzfinger := LDLIBS += -lnsl -lcurses -lsocket
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrcp lint-rcp := LDLIBS += -lsocket -lsec -lsendfile
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrdate lint-rdate:= LDLIBS += -lsocket
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrlogin lint-rlogin := LDLIBS += -lnsl -lsocket
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrsh lint-rsh := LDLIBS += -lsocket
c77a61a72b5ecdc507d6cf104142edd371a16c84yzwhois lint-whois := LDLIBS += -lsocket
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzinclude $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDPROGS) := LDLIBS += -lnsl -lmech_krb5
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDPROGS) := LDFLAGS += $(ZIGNORE) $(KRUNPATH) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -L$(ROOT)$(KLIBDIR_DO) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -L$(ROOT)$(KLIBDIR_GL)
c77a61a72b5ecdc507d6cf104142edd371a16c84yzKCMDLINTS= $(KCMDPROGS:%=lint-%)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(COMMONPOFILES) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrlogin.po rcp.po rsh.po \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDPROGS) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDLINTS) := CPPFLAGS += -DKERBEROS \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -I$(CMDINETCOMMONDIR) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -I$(SRC)/lib/gss_mechs/mech_krb5 \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -I$(SRC)/uts/common/gssapi/mechs/krb5/include \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -I$(SRC)/lib/gss_mechs/mech_krb5/include \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -I$(SRC)/lib/gss_mechs/mech_krb5/include/krb5
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# "-erroff=E_NAME_USED_NOT_DEF2" and "-erroff=E_NAME_DEF_NOT_USED2"
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# are required because lint problems in the Kerberos 5 framework.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDLINTS) := LINTFLAGS += -lnsl \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -erroff=E_NAME_USED_NOT_DEF2 \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz -erroff=E_NAME_DEF_NOT_USED2
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Extra source files to lint with
c77a61a72b5ecdc507d6cf104142edd371a16c84yzLINTXTRA=
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(KCMDLINTS) := LINTXTRA += $(COMMONSRCS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzROOTSUNWRCP= $(ROOT)/usr/lib/sunw,rcp
036aa26189b72905886e39d76d63352185cfd9d2gcROOTRSHSYMLINK= $(ROOT)/usr/ucb/rsh
036aa26189b72905886e39d76d63352185cfd9d2gcROOTREMSHSYMLINK=$(ROOT)/usr/bin/remsh
036aa26189b72905886e39d76d63352185cfd9d2gc
c77a61a72b5ecdc507d6cf104142edd371a16c84yz.KEEP_STATE:
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzall: $(ALL) $(SUBDIRS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzinstall: all .WAIT $(ROOTPROG) $(ROOTSUIDPROG) \
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(SUBDIRS) $(ROOTSUNWRCP) $(ROOTRSHSYMLINK) $(ROOTREMSHSYMLINK)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Messaging - copy $POFILES to $POFILE to work with the parent directory
c77a61a72b5ecdc507d6cf104142edd371a16c84yz# Makefile's '_msg' target.
c77a61a72b5ecdc507d6cf104142edd371a16c84yz#
c77a61a72b5ecdc507d6cf104142edd371a16c84yz_msg: $(MSGSUBDIRS) $(POFILES)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) $(POFILE)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(CAT) $(POFILES) > $(POFILE)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(COMMONPOFILES): $(COMMONSRCS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(COMPILE.cpp) $(COMMONSRCS) > $(@:.po=.c).i
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(XGETTEXT) $(XGETFLAGS) $(@:.po=.c).i
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) $@
c77a61a72b5ecdc507d6cf104142edd371a16c84yz sed "/^domain/d" < messages.po > $@
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) messages.po $(@:.po=.c).i
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(COMMONOBJS): $(COMMONSRCS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(COMPILE.c) $(COMMONSRCS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrlogin: rlogin.o $(COMMONOBJS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(POST_PROCESS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrcp: rcp.o $(COMMONOBJS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(POST_PROCESS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yzrsh: rsh.o $(COMMONOBJS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(POST_PROCESS)
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(ROOTSUNWRCP):
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) $@; $(SYMLINK) ../bin/rcp $@
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(ROOTRSHSYMLINK):
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) $@; $(SYMLINK) ../bin/rsh $@
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(ROOTREMSHSYMLINK):
c77a61a72b5ecdc507d6cf104142edd371a16c84yz $(RM) $@; $(SYMLINK) rsh $@
c77a61a72b5ecdc507d6cf104142edd371a16c84yz
c77a61a72b5ecdc507d6cf104142edd371a16c84yz$(SUBDIRS): FRC
@cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET)
FRC:
clean: $(SUBDIRS)
clobber: $(SUBDIRS) clobber_local
clobber_local:
echo $(CLOBBERFILES)
$(RM) $(ALL) $(CLOBBERFILES)
LINTLOCALS= $(LINTCLEAN:%.c=lint-%)
lint: $(LINTSUBDIRS) $(LINTLOCALS)
$(LINTLOCALS):
$(LINT.c) $(@:lint-%=%.c) $(LINTXTRA) $(LDLIBS)