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