144743Smarkm# @(#) Makefile 1.23 97/03/21 19:27:20
256977Sshin# $FreeBSD$
344743Smarkm
444743Smarkmwhat:
544743Smarkm	@echo
644743Smarkm	@echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:"
744743Smarkm	@echo
844743Smarkm	@echo "	make sys-type"
944743Smarkm	@echo
1044743Smarkm	@echo "If you are in a hurry you can try instead:"
1144743Smarkm	@echo
1244743Smarkm	@echo "	make REAL_DAEMON_DIR=/foo/bar sys-type"
1344743Smarkm	@echo
1444743Smarkm	@echo "And for a version with language extensions enabled:"
1544743Smarkm	@echo
1644743Smarkm	@echo "	make REAL_DAEMON_DIR=/foo/bar STYLE=-DPROCESS_OPTIONS sys-type"
1744743Smarkm	@echo
1844743Smarkm	@echo "This Makefile knows about the following sys-types:"
1944743Smarkm	@echo
2044743Smarkm	@echo "	generic (most bsd-ish systems with sys5 compatibility)"
2144743Smarkm	@echo "	386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543"
2244743Smarkm	@echo "	dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix"
2344743Smarkm	@echo "	linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211"
2444743Smarkm	@echo "	ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4"
2556977Sshin	@echo "	sunos40 sunos5 solaris8 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2"
2644743Smarkm	@echo "	uts215 uxp"
2744743Smarkm	@echo
2844743Smarkm	@echo "If none of these match your environment, edit the system"
2944743Smarkm	@echo "dependencies sections in the Makefile and do a 'make other'."
3044743Smarkm	@echo
3144743Smarkm
3244743Smarkm#######################################################
3344743Smarkm# Choice between easy and advanced installation recipe.
3444743Smarkm# 
3544743Smarkm# Advanced installation: vendor-provided daemons are left alone, and the
3644743Smarkm# inetd configuration file is edited. In this case, the REAL_DAEMON_DIR
3744743Smarkm# macro should reflect the actual directory with (most of) your
3844743Smarkm# vendor-provided network daemons.  These names can be found in the
3944743Smarkm# inetd.conf file. Usually, the telnet, ftp and finger daemons all live
4044743Smarkm# in the same directory.
4144743Smarkm# 
4244743Smarkm# Uncomment the appropriate line if you are going to edit inetd.conf.
4344743Smarkm#
4444743Smarkm# Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx
4544743Smarkm#REAL_DAEMON_DIR=/usr/etc
4644743Smarkm#
4744743Smarkm# SysV.4 Solaris 2.x OSF AIX
4844743Smarkm#REAL_DAEMON_DIR=/usr/sbin
4944743Smarkm#
5044743Smarkm# BSD 4.4
5144743Smarkm#REAL_DAEMON_DIR=/usr/libexec
5244743Smarkm#
5344743Smarkm# HP-UX SCO Unicos
5444743Smarkm#REAL_DAEMON_DIR=/etc
5544743Smarkm
5644743Smarkm# Easy installation: vendor-provided network daemons are moved to "some
5744743Smarkm# other" directory, and the tcpd wrapper fills in the "holes". For this
5844743Smarkm# mode of operation, the REAL_DAEMON_DIR macro should be set to the "some
5944743Smarkm# other" directory.  The "..." is here for historical reasons only; you
6044743Smarkm# should probably use some other name. 
6144743Smarkm# 
6244743Smarkm# Uncomment the appropriate line if you are going to move your daemons.
6344743Smarkm#
6444743Smarkm# Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx
6544743Smarkm#REAL_DAEMON_DIR=/usr/etc/...
6644743Smarkm#
6744743Smarkm# SysV.4 Solaris 2.x OSF AIX
6844743Smarkm#REAL_DAEMON_DIR=/usr/sbin/...
6944743Smarkm#
7044743Smarkm# BSD 4.4
7144743Smarkm#REAL_DAEMON_DIR=/usr/libexec/...
7244743Smarkm#
7344743Smarkm# HP-UX SCO Unicos
7444743Smarkm#REAL_DAEMON_DIR=/etc/...
7544743Smarkm
7644743Smarkm# End of mandatory section
7744743Smarkm##########################
7844743Smarkm
7944743Smarkm##########################################
8044743Smarkm# Ready-to-use system-dependent templates.
8144743Smarkm#
8244743Smarkm# Ready-to-use templates are available for many systems (see the "echo"
8344743Smarkm# commands at the start of this Makefile).  The templates take care of
8444743Smarkm# all system dependencies: after editing the REAL_DAEMON_DIR definition
8544743Smarkm# above, do a "make sunos4" (or whatever system type is appropriate).
8644743Smarkm#
8744743Smarkm# If your system is not listed (or something that comes close enough), you
8844743Smarkm# have to edit the system dependencies section below and do a "make other".  
8944743Smarkm#
9044743Smarkm# Send templates for other UNIX versions to wietse@wzv.win.tue.nl.
9144743Smarkm
9244743Smarkm# This is good for many BSD+SYSV hybrids with NIS (formerly YP).
9344743Smarkmgeneric aix osf alpha dynix:
9444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
9544743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
9644743Smarkm	NETGROUP=-DNETGROUP TLI= all
9744743Smarkm
9844743Smarkm# Ditto, with vsyslog
9944743Smarkmsunos4:
10044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
10144743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
10244743Smarkm	NETGROUP=-DNETGROUP VSYSLOG= TLI= all
10344743Smarkm
10444743Smarkm# Generic with resolver library.
10544743Smarkmgeneric-resolver:
10644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
10744743Smarkm	LIBS=-lresolv RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
10844743Smarkm	NETGROUP=-DNETGROUP TLI= all
10944743Smarkm
11044743Smarkm# The NeXT loader needs "-m" or it barfs on redefined library functions.
11144743Smarkmnext:
11244743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
11344743Smarkm	LIBS=-m RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
11444743Smarkm	NETGROUP=-DNETGROUP TLI= all
11544743Smarkm
11644743Smarkm# SunOS for the 386 was frozen at release 4.0.x.
11744743Smarkmsunos40:
11844743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
11944743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ="setenv.o strcasecmp.o" \
12044743Smarkm	NETGROUP=-DNETGROUP VSYSLOG= TLI= all
12144743Smarkm
12244743Smarkm# Ultrix is like aix, next, etc., but has miscd and setenv().
12344743Smarkmultrix:
12444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
12544743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= \
12644743Smarkm	NETGROUP=-DNETGROUP TLI= all miscd
12744743Smarkm
12844743Smarkm# This works on EP/IX 1.4.3 and will likely work on Mips (reggers@julian.uwo.ca)
12944743Smarkmepix:
13044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
13144743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
13244743Smarkm	NETGROUP=-DNETGROUP TLI= SYSTYPE="-systype bsd43" all
13344743Smarkm
13444743Smarkm# Freebsd and linux by default have no NIS.
13556977Sshin386bsd bsdos:
13644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
13744743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \
13844743Smarkm	EXTRA_CFLAGS=-DSYS_ERRLIST_DEFINED VSYSLOG= all
13944743Smarkm
14044743Smarkmfreebsd:
14144743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
142243933Seadler	RANLIB=ranlib ARFLAGS=$(ARFLAGS) AUX_OBJ= NETGROUP=-DNETGROUP TLI= \
14356977Sshin	EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 -DUSE_GETIPNODEBY" \
14456977Sshin	VSYSLOG= all
14556977Sshin
14656977Sshinnetbsd:
14756977Sshin	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
14844743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \
14956977Sshin	EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 \
15056977Sshin	-Dss_family=__ss_family -Dss_len=__ss_len" VSYSLOG= all
15144743Smarkm
15244743Smarkmlinux:
15344743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
15456977Sshin	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP= TLI= \
15556977Sshin	EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DBROKEN_SO_LINGER -DINET6=1 \
15656977Sshin	-Dss_family=__ss_family -Dss_len=__ss_len" all
15744743Smarkm
15856977Sshinlinux-old:
15956977Sshin	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
16056977Sshin	LIBS="/usr/inet6/lib/libinet6.a -lresolv" \
16156977Sshin	RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP= TLI= \
16256977Sshin	EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DBROKEN_SO_LINGER -DINET6=1 -Dss_family=sin6_family -Dsockaddr_storage=sockaddr_in6 -I/usr/inet6/include" all
16356977Sshin
16444743Smarkm# This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x.
16544743Smarkmhpux hpux8 hpux9 hpux10:
16644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
16744743Smarkm	LIBS= RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \
16844743Smarkm	NETGROUP=-DNETGROUP TLI= all
16944743Smarkm
17044743Smarkm# ConvexOS-10.x with UltraNet support (ukkonen@csc.fi).
17144743Smarkmconvex-ultranet:
17244743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
17344743Smarkm	LIBS=-lulsock RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
17444743Smarkm	NETGROUP=-DNETGROUP TLI= all
17544743Smarkm
17644743Smarkm# Generic support for the Dynix/PTX version of TLI.
17744743Smarkmptx-generic:
17844743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
17944743Smarkm	LIBS="-lsocket -linet -lnsl" RANLIB=echo ARFLAGS=rv \
18044743Smarkm	AUX_OBJ="setenv.o strcasecmp.o ptx.o" NETGROUP= TLI=-DPTX all
18144743Smarkm
18244743Smarkm# With UDP support optimized for PTX 2.x (timw@sequent.com).
18344743Smarkmptx-2.x:
18444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
18544743Smarkm	LIBS="-lsocket -linet -lnsl" RANLIB=echo ARFLAGS=rv \
18644743Smarkm	AUX_OBJ="setenv.o strcasecmp.o tli-sequent.o" NETGROUP= \
18744743Smarkm	TLI=-DTLI_SEQUENT all
18844743Smarkm
18944743Smarkm# IRIX 4.0.x has a special ar(1) flag.
19044743Smarkmirix4:
19144743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
19244743Smarkm	LIBS="-lc -lsun" RANLIB=echo ARFLAGS=rvs AUX_OBJ=setenv.o \
19344743Smarkm	NETGROUP=-DNETGROUP TLI= all
19444743Smarkm
19544743Smarkm# IRIX 5.2 is SYSV4 with several broken things (such as -lsocket -lnsl).
19644743Smarkmirix5:
19744743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
19844743Smarkm	LIBS=-lsun RANLIB=echo ARFLAGS=rv VSYSLOG= \
19944743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI= all
20044743Smarkm
20144743Smarkm# IRIX 6.2 (tucker@math.unc.edu). Must find a better value than 200000.
20244743Smarkmirix6:
20344743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
20444743Smarkm	LIBS= RANLIB=echo ARFLAGS=rv VSYSLOG= \
20544743Smarkm	NETGROUP=-DNETGROUP EXTRA_CFLAGS="-DBSD=200000" TLI= all
20644743Smarkm
20744743Smarkm# SunOS 5.x is another SYSV4 variant.
20844743Smarkmsunos5:
20944743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
21044743Smarkm	LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv VSYSLOG= \
21144743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \
21244743Smarkm	BUGS="$(BUGS) -DSOLARIS_24_GETHOSTBYNAME_BUG" all
21344743Smarkm
21456977Sshin# SunOS 5.8 is another SYSV4 variant, but has IPv6 support
21556977Sshinsolaris8:
21656977Sshin	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
21756977Sshin	LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv VSYSLOG= \
21856977Sshin	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \
21956977Sshin	EXTRA_CFLAGS="-DINET6 -DUSE_GETIPNODEBY -DNO_CLONE_DEVICE \
22056977Sshin	-DINT32_T" all
22156977Sshin
22244743Smarkm# Generic SYSV40
22344743Smarkmesix sysv4:
22444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
22544743Smarkm	LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \
22644743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI all
22744743Smarkm
22844743Smarkm# DG/UX 5.4.1 and 5.4.2 have an unusual inet_addr() interface.
22944743Smarkmdgux:
23044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
23144743Smarkm	LIBS=-lnsl RANLIB=echo ARFLAGS=rv \
23244743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \
23344743Smarkm	BUGS="$(BUGS) -DINET_ADDR_BUG" all
23444743Smarkm
23544743Smarkmdgux543:
23644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
23744743Smarkm	LIBS=-lnsl RANLIB=echo ARFLAGS=rv \
23844743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI all
23944743Smarkm
24044743Smarkm# NCR UNIX 02.02.01 and 02.03.00 (Alex Chircop, msu@unimt.mt)
24144743Smarkmncrsvr4:
24244743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
24344743Smarkm	LIBS="-lresolv -lnsl -lsocket" RANLIB=echo ARFLAGS=rv \
24444743Smarkm	AUX_OBJ="setenv.o strcasecmp.o" NETGROUP= TLI=-DTLI \
24544743Smarkm	EXTRA_CFLAGS="" FROM_OBJ=ncr.o all
24644743Smarkm
24744743Smarkm# Tandem SYSV4 (eqawas@hedgehog.ac.cowan.edu.au)
24844743Smarkmtandem:
24944743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
25044743Smarkm	LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \
25144743Smarkm	NETGROUP= AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all
25244743Smarkm
25344743Smarkm# Amdahl UTS 2.1.5 (Richard.Richmond@bridge.bst.bls.com)
25444743Smarkmuts215:
25556977Sshin	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
25644743Smarkm	LIBS="-lsocket" RANLIB=echo \
25744743Smarkm	ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP=-DNO_NETGROUP TLI= all
25844743Smarkm
25944743Smarkm# UXP/DS System V.4 clone (vic@uida0.uida.es).
26044743Smarkmuxp:
26144743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
26244743Smarkm	LIBS="-L/usr/ucblib -lsocket -lnsl -lucb" \
26344743Smarkm	RANLIB=echo ARFLAGS=rv NETGROUP=-DNETGROUP \
26444743Smarkm	AUX_OBJ=setenv.o TLI="-DTLI -DDRS_XTI" all
26544743Smarkm
26644743Smarkm# DELL System V.4 Issue 2.2 using gcc (kim@tac.nyc.ny.us, jurban@norden1.com)
26744743Smarkmdell-gcc:
26844743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
26944743Smarkm	LIBS="-lsocket -lnsl" RANLIB=ranlib ARFLAGS=rv CC=gcc \
27044743Smarkm	AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all
27144743Smarkm
27244743Smarkm# SCO 3.2v4.1 no frills (jedwards@sol1.solinet.net).
27344743Smarkmsco:
27444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
27544743Smarkm	LIBS="-lsocket -lnsl_s" RANLIB=echo ARFLAGS=rv \
27644743Smarkm	NETGROUP= AUX_OBJ=setenv.o TLI= all
27744743Smarkm
27844743Smarkm# SCO OpenDesktop 2.0, release 3.2 (peter@midnight.com). Please simplify.
27944743Smarkmsco-od2:
28044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
28144743Smarkm	LIBS="-lrpcsvc -lrpc -lyp -lrpc -lrpcsvc -lsocket" \
28244743Smarkm	RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \
28344743Smarkm	NETGROUP=-DNETGROUP TLI= all
28444743Smarkm
28544743Smarkm# SCO 3.2v4.2 with TCP/IP 1.2.1 (Eduard.Vopicka@vse.cz). Please simplify.
28644743Smarkmsco-nis:
28744743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
28844743Smarkm	LIBS="-lyp -lrpc -lsocket -lyp -lc_s -lc" \
28944743Smarkm	RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \
29044743Smarkm	NETGROUP=-DNETGROUP TLI= EXTRA_CFLAGS="-nointl -DNO_NETGRENT" all
29144743Smarkm
29244743Smarkm# SCO 3.2v5.0.0 OpenServer 5 (bob@odt.handy.com, bill@razorlogic.com)
29344743Smarkmsco-os5:
29444743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
29544743Smarkm	LIBS="-lrpcsvc -lsocket" RANLIB=echo ARFLAGS=rv VSYSLOG= \
29644743Smarkm	AUX_OBJ=setenv.o NETGROUP=-DNETGROUP TLI= all
29744743Smarkm
29844743Smarkm# sinix 5.42 setjmp workaround (szrzs023@ub3.ub.uni-kiel.de)
29944743Smarkmsinix:
30044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
30144743Smarkm	LIBS="-lsocket -lnsl -L/usr/ccs/lib -lc -L/usr/ucblib -lucb" \
30244743Smarkm	RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o TLI=-DTLI all
30344743Smarkm
30444743Smarkm# Domain SR10.4. Build under bsd, run under either sysv3 or bsd43.
30544743Smarkmapollo:
30644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
30744743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \
30844743Smarkm	NETGROUP=-DNETGROUP TLI= SYSTYPE="-A run,any -A sys,any" all
30944743Smarkm
31044743Smarkm# Pyramid OSx 5.1, using the BSD universe.
31144743Smarkmpyramid:
31244743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
31344743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ="environ.o vfprintf.o" \
31444743Smarkm	STRINGS="-Dstrchr=index -Dstrrchr=rindex -Dmemcmp=bcmp -Dno_memcpy" \
31544743Smarkm	NETGROUP="-DNETGROUP -DUSE_GETDOMAIN" TLI= all
31644743Smarkm
31744743Smarkm# Untested.
31844743Smarkmmips:
31944743Smarkm	@echo "Warning: some definitions may be wrong."
32044743Smarkm	make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
32144743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
32244743Smarkm	NETGROUP=-DNETGROUP TLI= SYSTYPE="-sysname bsd43" all
32344743Smarkm
32444743Smarkm# Cray (tested with UNICOS 7.0.4).
32544743Smarkmunicos7:
32644743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
32744743Smarkm	LIBS=-lnet RANLIB=echo ARFLAGS=rv \
32844743Smarkm	EXTRA_CFLAGS=-DINADDR_NONE="\"((unsigned long) -1)\"" \
32944743Smarkm	AUX_OBJ="setenv.o strcasecmp.o" NETGROUP= TLI= all
33044743Smarkm
33144743Smarkm# Unicos 8.x, Cray-YMP (Bruce Kelly).
33244743Smarkmunicos8:
33344743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
33444743Smarkm	LIBS= RANLIB=echo AR=bld ARFLAGS=rv \
33544743Smarkm	AUX_OBJ= NETGROUP= TLI= all
33644743Smarkm
33744743Smarkm# Power_UNIX 2.1.1 (amantel@lerc.nasa.gov)
33844743Smarkmpower_unix_211:
33944743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
34044743Smarkm	LIBS="-lnsl -lsocket -lgen -lresolv" RANLIB=echo ARFLAGS=rv \
34144743Smarkm	NETGROUP= AUX_OBJ=setenv.o TLI=-DTLI BUGS="$(BUGS)" all
34244743Smarkm
34344743Smarkm# ISC (fc@all.net)
34444743Smarkmisc:
34544743Smarkm	make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
34644743Smarkm	LIBS="-linet -lnsl_s -ldbm" RANLIB=echo ARFLAGS=rv \
34744743Smarkm	AUX_OBJ="setenv.o strcasecmp.o" EXTRA_CFLAGS="-DENOTCONN=ENAVAIL" \
34844743Smarkm	NETGROUP= TLI= all
34944743Smarkm
35044743Smarkm# Interactive UNIX R3.2 version 4.0 (Bobby D. Wright).
35144743Smarkmiunix:
35244743Smarkm	make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
35344743Smarkm	LIBS="-linet -lnsl_s -ldbm" RANLIB=echo ARFLAGS=rv \
35444743Smarkm	AUX_OBJ=environ.o strcasecmp.o NETGROUP= TLI= all
35544743Smarkm
35644743Smarkm# RTU 6.0 on a Masscomp 5400 (ben@piglet.cr.usgs.gov). When using the
35744743Smarkm# advanced installation, increment argv before actually looking at it.
35844743Smarkmrtu:
35944743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
36044743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
36144743Smarkm	NETGROUP= TLI= all
36244743Smarkm
36344743Smarkm# Unixware sans NIS (mc@telebase.com). Compiler dislikes strcasecmp.c.
36444743Smarkmunixware1:
36544743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
36644743Smarkm	LIBS="-lsocket -lnsl -lc -L/usr/ucblib -lucb" RANLIB=echo ARFLAGS=rv \
36744743Smarkm	NETGROUP=$(NETGROUP) AUX_OBJ=environ.o TLI=-DTLI all
36844743Smarkm
36944743Smarkmunixware2:
37044743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
37144743Smarkm	LIBS="-lsocket -lnsl -lgen -lc -L/usr/ucblib -lucb" RANLIB=echo \
37244743Smarkm	ARFLAGS=rv NETGROUP=$(NETGROUP) AUX_OBJ=environ.o TLI=-DTLI all
37344743Smarkm
37444743Smarkmu6000:
37544743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
37644743Smarkm	LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \
37744743Smarkm	NETGROUP=-DNETGROUP AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all
37844743Smarkm
37944743Smarkm# MachTen
38044743Smarkmmachten:
38144743Smarkm	@make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \
38244743Smarkm	LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \
38344743Smarkm	NETGROUP= TLI= all
38444743Smarkm
38544743Smarkm###############################################################
38644743Smarkm# System dependencies: TLI (transport-level interface) support.
38744743Smarkm# 
38844743Smarkm# Uncomment the following macro if your system has System V.4-style TLI
38944743Smarkm# support (/usr/include/sys/timod.h, /etc/netconfig, and the netdir(3)
39044743Smarkm# routines).
39144743Smarkm#
39244743Smarkm#TLI	= -DTLI
39344743Smarkm
39444743Smarkm###############################################################################
39544743Smarkm# System dependencies: differences between ranlib(1) and ar(1) implementations.
39644743Smarkm#
39744743Smarkm# Some C compilers (Ultrix 4.x) insist that ranlib(1) be run on an object
39844743Smarkm# library; some don't care as long as the modules are in the right order;
39944743Smarkm# some systems don't even have a ranlib(1) command. Make your choice.
40044743Smarkm
40144743SmarkmRANLIB	= ranlib	# have ranlib (BSD-ish UNIX)
40244743Smarkm#RANLIB	= echo		# no ranlib (SYSV-ish UNIX)
40344743Smarkm
404243933SeadlerARFLAGS	?= rv		# most systems
40544743Smarkm#ARFLAGS= rvs		# IRIX 4.0.x
40644743Smarkm
40744743SmarkmAR	= ar
40844743Smarkm#AR	= bld		# Unicos 8.x
40944743Smarkm
41044743Smarkm#############################################################################
41144743Smarkm# System dependencies: routines that are not present in the system libraries.
41244743Smarkm# 
41344743Smarkm# If your system library does not have set/putenv() or strcasecmp(), use
41444743Smarkm# the ones provided with this source distribution. The environ.c module
41544743Smarkm# implements setenv(), getenv(), and putenv().
41644743Smarkm
41756977Sshin#AUX_OBJ= setenv.o
41844743Smarkm#AUX_OBJ= environ.o
41944743Smarkm#AUX_OBJ= environ.o strcasecmp.o
42044743Smarkm
42144743Smarkm# Uncomment the following if your C library does not provide the
42244743Smarkm# strchr/strrchr/memcmp routines, but comes with index/rindex/bcmp.
42344743Smarkm#
42444743Smarkm#STRINGS= -Dstrchr=index -Dstrrchr=rindex -Dmemcmp=bcmp -Dno_memcpy
42544743Smarkm
42644743Smarkm#################################################################
42744743Smarkm# System dependencies: selection of non-default object libraries.
42844743Smarkm#
42944743Smarkm# Most System V implementations require that you explicitly specify the
43044743Smarkm# networking libraries. There is no general consensus, though.
43144743Smarkm#
43244743Smarkm#LIBS	= -lsocket -lnsl		# SysV.4 Solaris 2.x
43344743Smarkm#LIBS	= -lsun				# IRIX
43444743Smarkm#LIBS	= -lsocket -linet -lnsl -lnfs	# PTX
43544743Smarkm#LIBS	= -linet -lnsl_s -ldbm		# ISC
43644743Smarkm#LIBS	= -lnet				# Unicos 7
43744743Smarkm#LIBS	= -linet -lsyslog -ldbm
43844743Smarkm#LIBS	= -lsyslog -lsocket -lnsl
43944743Smarkm
44044743Smarkm######################################################
44144743Smarkm# System dependencies: system-specific compiler flags.
44244743Smarkm#
44344743Smarkm# Apollo Domain/OS offers both bsd and sys5 environments, sometimes
44444743Smarkm# on the same machine.  If your Apollo is primarily sys5.3 and also
44544743Smarkm# has bsd4.3, uncomment the following to build under bsd and run under
44644743Smarkm# either environment.
44744743Smarkm#
44844743Smarkm#SYSTYPE= -A run,any -A sys,any
44944743Smarkm
45044743Smarkm# For MIPS RISC/os 4_52.p3, uncomment the following definition.
45144743Smarkm#
45244743Smarkm#SYSTYPE= -sysname bsd43
45344743Smarkm
45444743Smarkm##################################################
45544743Smarkm# System dependencies: working around system bugs.
45644743Smarkm#
45744743Smarkm# -DGETPEERNAME_BUG works around a getpeername(2) bug in some versions of
45844743Smarkm# Apollo or SYSV.4 UNIX:  the wrapper would report that all UDP requests
45944743Smarkm# come from address 0.0.0.0. The workaround does no harm on other systems.
46044743Smarkm#
46144743Smarkm# -DBROKEN_FGETS works around an fgets(3) bug in some System V versions
46244743Smarkm# (IRIX):  fgets() gives up too fast when reading from a network socket.
46344743Smarkm# The workaround does no harm on other systems.
46444743Smarkm#
46544743Smarkm# Some UNIX systems (IRIX) make the error of calling the strtok() library
46644743Smarkm# routine from other library routines such as, e.g., gethostbyname/addr().
46744743Smarkm# The result is that hosts can slip through the wrapper allow/deny filters.
46844743Smarkm# Compile with -DLIBC_CALLS_STRTOK to avoid the vendor's strtok() routine.
46944743Smarkm# The workaround does no harm on other systems.
47044743Smarkm#
47144743Smarkm# DG/UX 5.4.1 comes with an inet_ntoa() function that returns a structure
47244743Smarkm# instead of a long integer. Compile with -DINET_ADDR_BUG to work around
47344743Smarkm# this mutant behavour. Fixed in 5.4R3.
47444743Smarkm#
47544743Smarkm# Solaris 2.4 gethostbyname(), in DNS through NIS mode, puts only one
47644743Smarkm# address in the host address list; all other addresses are treated as
47744743Smarkm# host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work
47844743Smarkm# around this. The workaround does no harm on other Solaris versions.
47944743Smarkm
48056977Sshin#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK
48144743Smarkm#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG
48244743Smarkm#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG
48344743Smarkm
48444743Smarkm##########################################################################
48544743Smarkm# System dependencies: whether or not your system has NIS (or YP) support.
48644743Smarkm#
48744743Smarkm# If your system supports NIS or YP-style netgroups, enable the following
48844743Smarkm# macro definition. Netgroups are used only for host access control.
48944743Smarkm#
49044743Smarkm#NETGROUP= -DNETGROUP
49144743Smarkm
49244743Smarkm###############################################################
49344743Smarkm# System dependencies: whether or not your system has vsyslog()
49444743Smarkm#
49544743Smarkm# If your system supports vsyslog(), comment out the following definition.
49644743Smarkm# If in doubt leave it in, it won't harm.
49744743Smarkm
49856977Sshin#VSYSLOG	= -Dvsyslog=myvsyslog
49944743Smarkm
50044743Smarkm# End of the system dependencies.
50144743Smarkm#################################
50244743Smarkm
50344743Smarkm##############################
50444743Smarkm# Start of the optional stuff.
50544743Smarkm
50644743Smarkm###########################################
50744743Smarkm# Optional: Turning on language extensions
50844743Smarkm#
50944743Smarkm# Instead of the default access control language that is documented in
51044743Smarkm# the hosts_access.5 document, the wrappers can be configured to
51144743Smarkm# implement an extensible language documented in the hosts_options.5
51244743Smarkm# document.  This language is implemented by the "options.c" source
51344743Smarkm# module, which also gives hints on how to add your own extensions.
51444743Smarkm# Uncomment the next definition to turn on the language extensions
51544743Smarkm# (examples: allow, deny, banners, twist and spawn).
51644743Smarkm# 
51744743Smarkm#STYLE	= -DPROCESS_OPTIONS	# Enable language extensions.
51844743Smarkm
51944743Smarkm################################################################
52044743Smarkm# Optional: Changing the default disposition of logfile records
52144743Smarkm#
52244743Smarkm# By default, logfile entries are written to the same file as used for
52344743Smarkm# sendmail transaction logs. See your /etc/syslog.conf file for actual
52444743Smarkm# path names of logfiles. The tutorial section in the README file
52544743Smarkm# gives a brief introduction to the syslog daemon.
52644743Smarkm# 
52744743Smarkm# Change the FACILITY definition below if you disagree with the default
52844743Smarkm# disposition. Some syslog versions (including Ultrix 4.x) do not provide
52944743Smarkm# this flexibility.
53044743Smarkm# 
53144743Smarkm# If nothing shows up on your system, it may be that the syslog records
53244743Smarkm# are sent to a dedicated loghost. It may also be that no syslog daemon
53344743Smarkm# is running at all. The README file gives pointers to surrogate syslog
53444743Smarkm# implementations for systems that have no syslog library routines or
53544743Smarkm# no syslog daemons. When changing the syslog.conf file, remember that
53644743Smarkm# there must be TABs between fields.
53744743Smarkm#
53844743Smarkm# The LOG_XXX names below are taken from the /usr/include/syslog.h file.
53944743Smarkm
54044743SmarkmFACILITY= LOG_MAIL	# LOG_MAIL is what most sendmail daemons use
54144743Smarkm
54244743Smarkm# The syslog priority at which successful connections are logged.
54344743Smarkm
54444743SmarkmSEVERITY= LOG_INFO	# LOG_INFO is normally not logged to the console
54544743Smarkm
54644743Smarkm###########################
54744743Smarkm# Optional: Reduce DNS load
54844743Smarkm#
54944743Smarkm# When looking up the address for a host.domain name, the typical DNS
55044743Smarkm# code will first append substrings of your own domain, so it tries
55144743Smarkm# host.domain.your.own.domain, then host.domain.own.domain, and then
55244743Smarkm# host.domain. The APPEND_DOT feature stops this waste of cycles. It is
55344743Smarkm# off by default because it causes problems on sites that don't use DNS
55444743Smarkm# and with Solaris < 2.4. APPEND_DOT will not work with hostnames taken
55544743Smarkm# from /etc/hosts or from NIS maps. It does work with DNS through NIS.
55644743Smarkm#
55744743Smarkm# DOT= -DAPPEND_DOT
55844743Smarkm
55944743Smarkm##################################################
56044743Smarkm# Optional: Always attempt remote username lookups
56144743Smarkm#
56244743Smarkm# By default, the wrappers look up the remote username only when the
56344743Smarkm# access control rules require them to do so.
56444743Smarkm#
56544743Smarkm# Username lookups require that the remote host runs a daemon that
56644743Smarkm# supports an RFC 931 like protocol.  Remote user name lookups are not
56744743Smarkm# possible for UDP-based connections, and can cause noticeable delays
56844743Smarkm# with connections from non-UNIX PCs.  On some systems, remote username
56944743Smarkm# lookups can trigger a kernel bug, causing loss of service. The README
57044743Smarkm# file describes how to find out if your UNIX kernel has that problem.
57144743Smarkm# 
57244743Smarkm# Uncomment the following definition if the wrappers should always
57344743Smarkm# attempt to get the remote user name. If this is not enabled you can
57444743Smarkm# still do selective username lookups as documented in the hosts_access.5
57544743Smarkm# and hosts_options.5 manual pages (`nroff -man' format).
57644743Smarkm#
57744743Smarkm#AUTH	= -DALWAYS_RFC931
57844743Smarkm#
57944743Smarkm# The default username lookup timeout is 10 seconds. This may not be long
58044743Smarkm# enough for slow hosts or networks, but is enough to irritate PC users.
58144743Smarkm
58244743SmarkmRFC931_TIMEOUT = 10
58344743Smarkm
58444743Smarkm######################################################
58544743Smarkm# Optional: Changing the default file protection mask
58644743Smarkm#
58744743Smarkm# On many systems, network daemons and other system processes are started
58844743Smarkm# with a zero umask value, so that world-writable files may be produced.
58944743Smarkm# It is a good idea to edit your /etc/rc* files so that they begin with
59044743Smarkm# an explicit umask setting.  On our site we use `umask 022' because it
59144743Smarkm# does not break anything yet gives adequate protection against tampering.
59244743Smarkm# 
59344743Smarkm# The following macro specifies the default umask for processes run under
59444743Smarkm# control of the daemon wrappers. Comment it out only if you are certain
59544743Smarkm# that inetd and its children are started with a safe umask value.
59644743Smarkm
59744743SmarkmUMASK	= -DDAEMON_UMASK=022
59844743Smarkm
59944743Smarkm#######################################
60044743Smarkm# Optional: Turning off access control
60144743Smarkm#
60244743Smarkm# By default, host access control is enabled.  To disable host access
60344743Smarkm# control, comment out the following definition.  Host access control
60444743Smarkm# can also be turned off at runtime by providing no or empty access
60544743Smarkm# control tables.
60644743Smarkm
60744743SmarkmACCESS	= -DHOSTS_ACCESS
60844743Smarkm
60944743Smarkm########################################################
61044743Smarkm# Optional: Changing the access control table pathnames
61144743Smarkm#
61244743Smarkm# The HOSTS_ALLOW and HOSTS_DENY macros define where the programs will
61344743Smarkm# look for access control information. Watch out for the quotes and
61444743Smarkm# backslashes when you make changes.
61544743Smarkm
61644743SmarkmTABLES	= -DHOSTS_DENY=\"/etc/hosts.deny\" -DHOSTS_ALLOW=\"/etc/hosts.allow\"
61744743Smarkm
61844743Smarkm####################################################
61944743Smarkm# Optional: dealing with host name/address conflicts
62044743Smarkm#
62144743Smarkm# By default, the software tries to protect against hosts that claim to
62244743Smarkm# have someone elses host name. This is relevant for network services
62344743Smarkm# whose authentication depends on host names, such as rsh and rlogin.
62444743Smarkm#
62544743Smarkm# With paranoid mode on, connections will be rejected when the host name
62644743Smarkm# does not match the host address. Connections will also be rejected when
62744743Smarkm# the host name is available but cannot be verified.
62844743Smarkm#
62944743Smarkm# Comment out the following definition if you want more control over such
63044743Smarkm# requests. When paranoid mode is off and a host name double check fails,
63144743Smarkm# the client can be matched with the PARANOID access control pattern.
63244743Smarkm#
63344743Smarkm# Paranoid mode implies hostname lookup. In order to disable hostname
63444743Smarkm# lookups altogether, see the next section.
63544743Smarkm
63644743SmarkmPARANOID= -DPARANOID
63744743Smarkm
63844743Smarkm########################################
63944743Smarkm# Optional: turning off hostname lookups
64044743Smarkm#
64144743Smarkm# By default, the software always attempts to look up the client
64244743Smarkm# hostname.  With selective hostname lookups, the client hostname
64344743Smarkm# lookup is postponed until the name is required by an access control
64444743Smarkm# rule or by a %letter expansion.
64544743Smarkm# 
64644743Smarkm# In order to perform selective hostname lookups, disable paranoid
64744743Smarkm# mode (see previous section) and comment out the following definition.
64844743Smarkm
64944743SmarkmHOSTNAME= -DALWAYS_HOSTNAME
65044743Smarkm
65144743Smarkm#############################################
65244743Smarkm# Optional: Turning on host ADDRESS checking
65344743Smarkm#
65444743Smarkm# Optionally, the software tries to protect against hosts that pretend to
65544743Smarkm# have someone elses host address. This is relevant for network services
65644743Smarkm# whose authentication depends on host names, such as rsh and rlogin,
65744743Smarkm# because the network address is used to look up the remote host name.
65844743Smarkm# 
65944743Smarkm# The protection is to refuse TCP connections with IP source routing
66044743Smarkm# options.
66144743Smarkm#
66244743Smarkm# This feature cannot be used with SunOS 4.x because of a kernel bug in
66344743Smarkm# the implementation of the getsockopt() system call. Kernel panics have
66444743Smarkm# been observed for SunOS 4.1.[1-3]. Symptoms are "BAD TRAP" and "Data
66544743Smarkm# fault" while executing the tcp_ctloutput() kernel function.
66644743Smarkm#
66744743Smarkm# Reportedly, Sun patch 100804-03 or 101790 fixes this for SunOS 4.1.x.
66844743Smarkm#
66944743Smarkm# Uncomment the following macro definition if your getsockopt() is OK.
67044743Smarkm#
67144743Smarkm# -DKILL_IP_OPTIONS is not needed on modern UNIX systems that can stop
67244743Smarkm# source-routed traffic in the kernel. Examples: 4.4BSD derivatives,
67344743Smarkm# Solaris 2.x, and Linux. See your system documentation for details.
67444743Smarkm#
67544743Smarkm# KILL_OPT= -DKILL_IP_OPTIONS
67644743Smarkm
67744743Smarkm## End configuration options
67844743Smarkm############################
67944743Smarkm
68044743Smarkm# Protection against weird shells or weird make programs.
68144743Smarkm
68244743SmarkmSHELL	= /bin/sh
68344743Smarkm.c.o:;	$(CC) $(CFLAGS) -c $*.c
68444743Smarkm
68544743SmarkmCFLAGS	= -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \
68644743Smarkm	$(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \
68744743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \
68844743Smarkm	-DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \
68944743Smarkm	$(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \
69044743Smarkm	$(VSYSLOG) $(HOSTNAME)
69144743Smarkm
69244743SmarkmLIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \
69344743Smarkm	hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \
69444743Smarkm	$(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \
69544743Smarkm	update.o misc.o diag.o percent_m.o myvsyslog.o
69644743Smarkm
69744743SmarkmFROM_OBJ= fromhost.o
69844743Smarkm
69944743SmarkmKIT	= README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \
70044743Smarkm	tcpd.h tcpdmatch.c Makefile hosts_access.5 strcasecmp.c BLURB rfc931.c \
70144743Smarkm	tcpd.8 eval.c hosts_access.3 hosts_ctl.c percent_x.c options.c \
70244743Smarkm	clean_exit.c environ.c patchlevel.h fix_options.c workarounds.c \
70344743Smarkm	socket.c tli.c DISCLAIMER fakelog.c safe_finger.c hosts_options.5 \
70444743Smarkm	CHANGES try-from.c update.c ptx.c vfprintf.c tli-sequent.c \
70544743Smarkm	tli-sequent.h misc.c diag.c ncr.c tcpdchk.c percent_m.c \
70644743Smarkm	myvsyslog.c mystdarg.h printf.ck README.IRIX Banners.Makefile \
70744743Smarkm	refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \
70844743Smarkm	scaffold.h tcpdmatch.8 README.NIS
70944743Smarkm
71044743SmarkmLIB	= libwrap.a
71144743Smarkm
71244743Smarkmall other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk
71344743Smarkm
71444743Smarkm# Invalidate all object files when the compiler options (CFLAGS) have changed.
71544743Smarkm
71644743Smarkmconfig-check:
71744743Smarkm	@set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; }
71844743Smarkm	@set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \
71944743Smarkm	if cmp cflags /tmp/cflags.$$$$ ; \
72044743Smarkm	then rm /tmp/cflags.$$$$ ; \
72144743Smarkm	else mv /tmp/cflags.$$$$ cflags ; \
72244743Smarkm	fi >/dev/null 2>/dev/null
72344743Smarkm
72444743Smarkm$(LIB):	$(LIB_OBJ)
72544743Smarkm	rm -f $(LIB)
72644743Smarkm	$(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ)
72744743Smarkm	-$(RANLIB) $(LIB)
72844743Smarkm
72944743Smarkmtcpd:	tcpd.o $(LIB)
73044743Smarkm	$(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS)
73144743Smarkm
73244743Smarkmmiscd:	miscd.o $(LIB)
73344743Smarkm	$(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS)
73444743Smarkm
73544743Smarkmsafe_finger: safe_finger.o $(LIB)
73644743Smarkm	$(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS)
73744743Smarkm
73844743SmarkmTCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o
73944743Smarkm
74044743Smarkmtcpdmatch: $(TCPDMATCH_OBJ) $(LIB)
74144743Smarkm	$(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS)
74244743Smarkm
74344743Smarkmtry-from: try-from.o fakelog.o $(LIB)
74444743Smarkm	$(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS)
74544743Smarkm
74644743SmarkmTCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o
74744743Smarkm
74844743Smarkmtcpdchk: $(TCPDCHK_OBJ) $(LIB)
74944743Smarkm	$(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS)
75044743Smarkm
75144743Smarkmshar:	$(KIT)
75244743Smarkm	@shar $(KIT)
75344743Smarkm
75444743Smarkmkit:	$(KIT)
75544743Smarkm	@makekit $(KIT)
75644743Smarkm
75744743Smarkmfiles:
75844743Smarkm	@echo $(KIT)
75944743Smarkm
76044743Smarkmarchive:
76144743Smarkm	$(ARCHIVE) $(KIT)
76244743Smarkm
76344743Smarkmclean:
76444743Smarkm	rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \
76544743Smarkm	cflags
76644743Smarkm
76744743Smarkmtidy:	clean
76844743Smarkm	chmod -R a+r .
76944743Smarkm	chmod 755 .
77044743Smarkm
77144743Smarkm# Enable all bells and whistles for linting.
77244743Smarkm
77344743Smarkmlint: tcpd_lint miscd_lint match_lint chk_lint
77444743Smarkm
77544743Smarkmtcpd_lint:
77644743Smarkm	lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \
77744743Smarkm	-DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \
77844743Smarkm	$(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \
77944743Smarkm	-DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \
78044743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \
78144743Smarkm	-Dvsyslog=myvsyslog \
78244743Smarkm	tcpd.c fromhost.c socket.c tli.c hosts_access.c \
78344743Smarkm	shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \
78444743Smarkm	options.c setenv.c fix_options.c workarounds.c update.c misc.c \
78544743Smarkm	diag.c myvsyslog.c percent_m.c
78644743Smarkm
78744743Smarkmmiscd_lint:
78844743Smarkm	lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \
78944743Smarkm	-DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \
79044743Smarkm	$(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \
79144743Smarkm	-DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \
79244743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \
79344743Smarkm	-Dvsyslog=myvsyslog \
79444743Smarkm	miscd.c fromhost.c socket.c tli.c hosts_access.c \
79544743Smarkm	shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \
79644743Smarkm	options.c setenv.c fix_options.c workarounds.c update.c misc.c \
79744743Smarkm	diag.c myvsyslog.c percent_m.c
79844743Smarkm
79944743Smarkmmatch_lint:
80044743Smarkm	lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \
80144743Smarkm	-DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \
80244743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \
80344743Smarkm	-Dvsyslog=myvsyslog \
80444743Smarkm	tcpdmatch.c hosts_access.c eval.c percent_x.c options.c workarounds.c \
80544743Smarkm	update.c socket.c misc.c diag.c myvsyslog.c percent_m.c setenv.c \
80644743Smarkm	inetcf.c scaffold.c
80744743Smarkm
80844743Smarkmchk_lint:
80944743Smarkm	lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \
81044743Smarkm	-DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \
81144743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \
81244743Smarkm	-Dvsyslog=myvsyslog \
81344743Smarkm	tcpdchk.c eval.c percent_x.c options.c update.c workarounds.c \
81444743Smarkm	setenv.c misc.c diag.c myvsyslog.c percent_m.c inetcf.c scaffold.c
81544743Smarkm
81644743Smarkmprintfck:
81744743Smarkm	printfck -f printf.ck \
81844743Smarkm	tcpd.c fromhost.c socket.c tli.c hosts_access.c \
81944743Smarkm	shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \
82044743Smarkm	options.c setenv.c fix_options.c workarounds.c update.c misc.c \
82144743Smarkm	diag.c myvsyslog.c percent_m.c >aap.c
82244743Smarkm	lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \
82344743Smarkm	-DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \
82444743Smarkm	$(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \
82544743Smarkm	-DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \
82644743Smarkm	-DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" -Dvsyslog=myvsyslog aap.c
82744743Smarkm	printfck -f printf.ck \
82844743Smarkm	tcpdchk.c eval.c percent_x.c options.c update.c workarounds.c \
82944743Smarkm	setenv.c misc.c diag.c myvsyslog.c percent_m.c inetcf.c scaffold.c \
83044743Smarkm	>aap.c
83144743Smarkm	lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \
83244743Smarkm	-DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \
83344743Smarkm	-Dvsyslog=myvsyslog -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\"
83444743Smarkm
83544743Smarkm# Internal compilation dependencies.
83644743Smarkm
83744743Smarkmclean_exit.o: cflags
83844743Smarkmclean_exit.o: tcpd.h
83944743Smarkmdiag.o: cflags
84044743Smarkmdiag.o: mystdarg.h
84144743Smarkmdiag.o: tcpd.h
84244743Smarkmenviron.o: cflags
84344743Smarkmeval.o: cflags
84444743Smarkmeval.o: tcpd.h
84544743Smarkmfakelog.o: cflags
84644743Smarkmfakelog.o: mystdarg.h
84744743Smarkmfix_options.o: cflags
84844743Smarkmfix_options.o: tcpd.h
84944743Smarkmfromhost.o: cflags
85044743Smarkmfromhost.o: tcpd.h
85144743Smarkmhosts_access.o: cflags
85244743Smarkmhosts_access.o: tcpd.h
85344743Smarkmhosts_ctl.o: cflags
85444743Smarkmhosts_ctl.o: tcpd.h
85544743Smarkminetcf.o: cflags
85644743Smarkminetcf.o: inetcf.h
85744743Smarkminetcf.o: tcpd.h
85844743Smarkmmisc.o: cflags
85944743Smarkmmisc.o: tcpd.h
86044743Smarkmmiscd.o: cflags
86144743Smarkmmiscd.o: patchlevel.h
86244743Smarkmmiscd.o: tcpd.h
86344743Smarkmmyvsyslog.o: cflags
86444743Smarkmmyvsyslog.o: mystdarg.h
86544743Smarkmmyvsyslog.o: tcpd.h
86644743Smarkmncr.o: cflags
86744743Smarkmncr.o: tcpd.h
86844743Smarkmoptions.o: cflags
86944743Smarkmoptions.o: tcpd.h
87044743Smarkmpercent_m.o: cflags
87144743Smarkmpercent_m.o: mystdarg.h
87244743Smarkmpercent_x.o: cflags
87344743Smarkmpercent_x.o: tcpd.h
87444743Smarkmptx.o: cflags
87544743Smarkmptx.o: tcpd.h
87644743Smarkmrefuse.o: cflags
87744743Smarkmrefuse.o: tcpd.h
87844743Smarkmrfc931.o: cflags
87944743Smarkmrfc931.o: tcpd.h
88044743Smarkmsafe_finger.o: cflags
88144743Smarkmscaffold.o: cflags
88244743Smarkmscaffold.o: scaffold.h
88344743Smarkmscaffold.o: tcpd.h
88444743Smarkmsetenv.o: cflags
88544743Smarkmshell_cmd.o: cflags
88644743Smarkmshell_cmd.o: tcpd.h
88744743Smarkmsocket.o: cflags
88844743Smarkmsocket.o: tcpd.h
88944743Smarkmstrcasecmp.o: cflags
89044743Smarkmtcpd.o: cflags
89144743Smarkmtcpd.o: patchlevel.h
89244743Smarkmtcpd.o: tcpd.h
89344743Smarkmtcpdchk.o: cflags
89444743Smarkmtcpdchk.o: inetcf.h
89544743Smarkmtcpdchk.o: scaffold.h
89644743Smarkmtcpdchk.o: tcpd.h
89744743Smarkmtcpdmatch.o: cflags
89844743Smarkmtcpdmatch.o: scaffold.h
89944743Smarkmtcpdmatch.o: tcpd.h
90044743Smarkmtli-sequent.o: cflags
90144743Smarkmtli-sequent.o: tcpd.h
90244743Smarkmtli-sequent.o: tli-sequent.h
90344743Smarkmtli.o: cflags
90444743Smarkmtli.o: tcpd.h
90544743Smarkmtry-from.o: cflags
90644743Smarkmtry-from.o: tcpd.h
90744743Smarkmupdate.o: cflags
90844743Smarkmupdate.o: mystdarg.h
90944743Smarkmupdate.o: tcpd.h
91044743Smarkmvfprintf.o: cflags
91144743Smarkmworkarounds.o: cflags
91244743Smarkmworkarounds.o: tcpd.h
913