3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# CDDL HEADER START
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# The contents of this file are subject to the terms of the
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Common Development and Distribution License (the "License").
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# You may not use this file except in compliance with the License.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# or http://www.opensolaris.org/os/licensing.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# See the License for the specific language governing permissions
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# and limitations under the License.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# When distributing Covered Code, include this CDDL HEADER in each
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# If applicable, add the following below this CDDL HEADER, with the
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# fields enclosed by brackets "[]" replaced with your own identifying
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# information: Portions Copyright [yyyy] [name of copyright owner]
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# CDDL HEADER END
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Use is subject to license terms.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Copyright 2011 Nexenta Systems, Inc. All rights reserved.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Copyright 2016 Toomas Soome <tsoome@me.com>
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen#
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenPROG= finger rdate ruptime rwho whois
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenSUIDPROG= rcp rlogin rsh
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenALL= $(PROG) $(SUIDPROG)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenSRCS= $(ALL:%=%.c)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenKCMDPROGS= rcp rlogin rsh
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenSUBDIRS= chat dns-sd ftp nc nca netstat \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen pppd pppdump pppstats rdist talk telnet tftp
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenSUBDIR1= talk
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenMSGSUBDIRS= nca talk
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# As programs get lint-clean, add them here. Eventually.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# This hack should go away, and all in PROG should be lint-clean.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenLINTCLEAN= rlogin.c rsh.c rcp.c rdate.c rwho.c whois.c
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen# Likewise, as subdirs get lint-clean, add them here. Once
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen# they're all clean, replace the dependency of the lint target
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# with SUBDIRS. Also (sigh) deal with the commented-out build lines
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# for the lint rule.
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenLINTSUBDIRS= nca netstat pppd pppstats tftp
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamieboweninclude ../../Makefile.cmd
8500ab05ee25338b84b6a7938f18d932233dac99jamieboweninclude ../Makefile.cmd-inet
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCOMMONOBJS= kcmd.o
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCOMMONPOFILES= $(COMMONOBJS:.o=.po)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCOMMONSRCS= $(CMDINETCOMMONDIR)/$(COMMONOBJS:.o=.c)
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenPOFILES= rlogin.po rsh.po rcp.po $(COMMONPOFILES)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenPOFILE= usr.bin.po
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCLOBBERFILES += $(ALL)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCLEANFILES += kcmd.o rcp.o rlogin.o rsh.o
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenall:= TARGET= all
3e7992560027364f56fb4fb0ef645623bd020c3bjamieboweninstall:= TARGET= install
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenclean:= TARGET= clean
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenclobber:= TARGET= clobber
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenlint:= TARGET= lint
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen_msg:= TARGET= _msg
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenROOTSUIDPROG= $(SUIDPROG:%=$(ROOTBIN)/%)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen$(ROOTSUIDPROG) := FILEMODE= 04555
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCPPFLAGS += -DSYSV -DSTRNET -DBSD_COMP -I$(CMDINETCOMMONDIR)
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenCERRWARN += -_gcc=-Wno-parentheses
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenCERRWARN += -_gcc=-Wno-uninitialized
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenCERRWARN += -_gcc=-Wno-unused-function
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# Eventually just plain CFLAGS should be += -v, but not until all in
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen# PROGS are lint clean.
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen$(LINTCLEAN) := CFLAGS += $(CCVERBOSE)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenfinger := CFLAGS += $(CCVERBOSE)
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen# Enable large file support for reading the lastlog file.
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenfinger := CPPFLAGS += -D_FILE_OFFSET_BITS=64
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenfinger := LDLIBS += -lnsl -lcurses -lsocket
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenrcp lint-rcp := LDLIBS += -lsocket -lsec -lsendfile
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenrdate lint-rdate:= LDLIBS += -lsocket
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenrlogin lint-rlogin := LDLIBS += -lnsl -lsocket
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenrsh lint-rsh := LDLIBS += -lsocket
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenwhois lint-whois := LDLIBS += -lsocket
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamieboweninclude $(SRC)/lib/gss_mechs/mech_krb5/Makefile.mech_krb5
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen$(KCMDPROGS) := LDLIBS += -lnsl -lmech_krb5
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen$(KCMDPROGS) := LDFLAGS += $(ZIGNORE) $(KRUNPATH) \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -L$(ROOT)$(KLIBDIR_DO) \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -L$(ROOT)$(KLIBDIR_GL)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenKCMDLINTS= $(KCMDPROGS:%=lint-%)
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen$(COMMONPOFILES) \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenrlogin.po rcp.po rsh.po \
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen$(KCMDPROGS) \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen$(KCMDLINTS) := CPPFLAGS += -DKERBEROS \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -I$(CMDINETCOMMONDIR) \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -I$(SRC)/lib/gss_mechs/mech_krb5 \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -I$(SRC)/uts/common/gssapi/mechs/krb5/include \
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowen -I$(SRC)/lib/gss_mechs/mech_krb5/include \
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen -I$(SRC)/lib/gss_mechs/mech_krb5/include/krb5
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen# "-erroff=E_NAME_USED_NOT_DEF2" and "-erroff=E_NAME_DEF_NOT_USED2"
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen# are required because lint problems in the Kerberos 5 framework.
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowen$(KCMDLINTS) := LINTFLAGS += -lnsl \
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen -erroff=E_NAME_USED_NOT_DEF2 \
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen -erroff=E_NAME_DEF_NOT_USED2
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen# Extra source files to lint with
c72a257507602f1216d9367518c13b9db9e385a8jamiebowenLINTXTRA=
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen$(KCMDLINTS) := LINTXTRA += $(COMMONSRCS)
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen
cb241c1aa2096e51864b45398cc15850b0ce4d8cjamiebowenROOTSUNWRCP= $(ROOT)/usr/lib/sunw,rcp
c72a257507602f1216d9367518c13b9db9e385a8jamiebowenROOTRSHSYMLINK= $(ROOT)/usr/ucb/rsh
c72a257507602f1216d9367518c13b9db9e385a8jamiebowenROOTREMSHSYMLINK=$(ROOT)/usr/bin/remsh
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen.KEEP_STATE:
c72a257507602f1216d9367518c13b9db9e385a8jamiebowen
3e7992560027364f56fb4fb0ef645623bd020c3bjamiebowenall: $(ALL) $(SUBDIRS)
install: all .WAIT $(ROOTPROG) $(ROOTSUIDPROG) \
$(SUBDIRS) $(ROOTSUNWRCP) $(ROOTRSHSYMLINK) $(ROOTREMSHSYMLINK)
# Messaging - copy $POFILES to $POFILE to work with the parent directory
# Makefile's '_msg' target.
#
_msg: $(MSGSUBDIRS) $(POFILES)
$(RM) $(POFILE)
$(CAT) $(POFILES) > $(POFILE)
$(COMMONPOFILES): $(COMMONSRCS)
$(COMPILE.cpp) $(COMMONSRCS) > $(@:.po=.c).i
$(XGETTEXT) $(XGETFLAGS) $(@:.po=.c).i
$(RM) $@
sed "/^domain/d" < messages.po > $@
$(RM) messages.po $(@:.po=.c).i
$(COMMONOBJS): $(COMMONSRCS)
$(COMPILE.c) $(COMMONSRCS)
rlogin: rlogin.o $(COMMONOBJS)
$(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
$(POST_PROCESS)
rcp: rcp.o $(COMMONOBJS)
$(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
$(POST_PROCESS)
rsh: rsh.o $(COMMONOBJS)
$(LINK.c) $@.o $(COMMONOBJS) -o $@ $(LDLIBS)
$(POST_PROCESS)
$(ROOTSUNWRCP):
$(RM) $@; $(SYMLINK) ../bin/rcp $@
$(ROOTRSHSYMLINK):
$(RM) $@; $(SYMLINK) ../bin/rsh $@
$(ROOTREMSHSYMLINK):
$(RM) $@; $(SYMLINK) rsh $@
$(SUBDIRS): FRC
@cd $@; pwd; $(MAKE) $(MFLAGS) $(TARGET)
FRC:
clean: $(SUBDIRS) clean_local
clean_local:
$(RM) $(CLEANFILES)
clobber: $(SUBDIRS) clobber_local
clobber_local: clean_local
$(RM) $(CLOBBERFILES)
LINTLOCALS= $(LINTCLEAN:%.c=lint-%)
lint: $(LINTSUBDIRS) $(LINTLOCALS)
$(LINTLOCALS):
$(LINT.c) $(@:lint-%=%.c) $(LINTXTRA) $(LDLIBS)