1# @(#) Makefile 1.23 97/03/21 19:27:20 2# $FreeBSD: src/contrib/tcp_wrappers/Makefile,v 1.2 2000/02/03 10:26:57 shin Exp $ 3# $DragonFly: src/contrib/tcp_wrappers/Makefile,v 1.2 2003/06/17 04:24:06 dillon Exp $ 4 5what: 6 @echo 7 @echo "Usage: edit the REAL_DAEMON_DIR definition in the Makefile then:" 8 @echo 9 @echo " make sys-type" 10 @echo 11 @echo "If you are in a hurry you can try instead:" 12 @echo 13 @echo " make REAL_DAEMON_DIR=/foo/bar sys-type" 14 @echo 15 @echo "And for a version with language extensions enabled:" 16 @echo 17 @echo " make REAL_DAEMON_DIR=/foo/bar STYLE=-DPROCESS_OPTIONS sys-type" 18 @echo 19 @echo "This Makefile knows about the following sys-types:" 20 @echo 21 @echo " generic (most bsd-ish systems with sys5 compatibility)" 22 @echo " 386bsd aix alpha apollo bsdos convex-ultranet dell-gcc dgux dgux543" 23 @echo " dynix epix esix freebsd hpux irix4 irix5 irix6 isc iunix" 24 @echo " linux machten mips(untested) ncrsvr4 netbsd next osf power_unix_211" 25 @echo " ptx-2.x ptx-generic pyramid sco sco-nis sco-od2 sco-os5 sinix sunos4" 26 @echo " sunos40 sunos5 solaris8 sysv4 tandem ultrix unicos7 unicos8 unixware1 unixware2" 27 @echo " uts215 uxp" 28 @echo 29 @echo "If none of these match your environment, edit the system" 30 @echo "dependencies sections in the Makefile and do a 'make other'." 31 @echo 32 33####################################################### 34# Choice between easy and advanced installation recipe. 35# 36# Advanced installation: vendor-provided daemons are left alone, and the 37# inetd configuration file is edited. In this case, the REAL_DAEMON_DIR 38# macro should reflect the actual directory with (most of) your 39# vendor-provided network daemons. These names can be found in the 40# inetd.conf file. Usually, the telnet, ftp and finger daemons all live 41# in the same directory. 42# 43# Uncomment the appropriate line if you are going to edit inetd.conf. 44# 45# Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx 46#REAL_DAEMON_DIR=/usr/etc 47# 48# SysV.4 Solaris 2.x OSF AIX 49#REAL_DAEMON_DIR=/usr/sbin 50# 51# BSD 4.4 52#REAL_DAEMON_DIR=/usr/libexec 53# 54# HP-UX SCO Unicos 55#REAL_DAEMON_DIR=/etc 56 57# Easy installation: vendor-provided network daemons are moved to "some 58# other" directory, and the tcpd wrapper fills in the "holes". For this 59# mode of operation, the REAL_DAEMON_DIR macro should be set to the "some 60# other" directory. The "..." is here for historical reasons only; you 61# should probably use some other name. 62# 63# Uncomment the appropriate line if you are going to move your daemons. 64# 65# Ultrix 4.x SunOS 4.x ConvexOS 10.x Dynix/ptx 66#REAL_DAEMON_DIR=/usr/etc/... 67# 68# SysV.4 Solaris 2.x OSF AIX 69#REAL_DAEMON_DIR=/usr/sbin/... 70# 71# BSD 4.4 72#REAL_DAEMON_DIR=/usr/libexec/... 73# 74# HP-UX SCO Unicos 75#REAL_DAEMON_DIR=/etc/... 76 77# End of mandatory section 78########################## 79 80########################################## 81# Ready-to-use system-dependent templates. 82# 83# Ready-to-use templates are available for many systems (see the "echo" 84# commands at the start of this Makefile). The templates take care of 85# all system dependencies: after editing the REAL_DAEMON_DIR definition 86# above, do a "make sunos4" (or whatever system type is appropriate). 87# 88# If your system is not listed (or something that comes close enough), you 89# have to edit the system dependencies section below and do a "make other". 90# 91# Send templates for other UNIX versions to wietse@wzv.win.tue.nl. 92 93# This is good for many BSD+SYSV hybrids with NIS (formerly YP). 94generic aix osf alpha dynix: 95 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 96 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ 97 NETGROUP=-DNETGROUP TLI= all 98 99# Ditto, with vsyslog 100sunos4: 101 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 102 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ 103 NETGROUP=-DNETGROUP VSYSLOG= TLI= all 104 105# Generic with resolver library. 106generic-resolver: 107 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 108 LIBS=-lresolv RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ 109 NETGROUP=-DNETGROUP TLI= all 110 111# The NeXT loader needs "-m" or it barfs on redefined library functions. 112next: 113 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 114 LIBS=-m RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 115 NETGROUP=-DNETGROUP TLI= all 116 117# SunOS for the 386 was frozen at release 4.0.x. 118sunos40: 119 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 120 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ="setenv.o strcasecmp.o" \ 121 NETGROUP=-DNETGROUP VSYSLOG= TLI= all 122 123# Ultrix is like aix, next, etc., but has miscd and setenv(). 124ultrix: 125 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 126 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= \ 127 NETGROUP=-DNETGROUP TLI= all miscd 128 129# This works on EP/IX 1.4.3 and will likely work on Mips (reggers@julian.uwo.ca) 130epix: 131 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 132 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 133 NETGROUP=-DNETGROUP TLI= SYSTYPE="-systype bsd43" all 134 135# Freebsd and linux by default have no NIS. 136386bsd bsdos: 137 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 138 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \ 139 EXTRA_CFLAGS=-DSYS_ERRLIST_DEFINED VSYSLOG= all 140 141freebsd: 142 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 143 RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP=-DNETGROUP TLI= \ 144 EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 -DUSE_GETIPNODEBY" \ 145 VSYSLOG= all 146 147netbsd: 148 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 149 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ= NETGROUP= TLI= \ 150 EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DINET6 \ 151 -Dss_family=__ss_family -Dss_len=__ss_len" VSYSLOG= all 152 153linux: 154 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 155 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP= TLI= \ 156 EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DBROKEN_SO_LINGER -DINET6=1 \ 157 -Dss_family=__ss_family -Dss_len=__ss_len" all 158 159linux-old: 160 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 161 LIBS="/usr/inet6/lib/libinet6.a -lresolv" \ 162 RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP= TLI= \ 163 EXTRA_CFLAGS="-DSYS_ERRLIST_DEFINED -DBROKEN_SO_LINGER -DINET6=1 -Dss_family=sin6_family -Dsockaddr_storage=sockaddr_in6 -I/usr/inet6/include" all 164 165# This is good for many SYSV+BSD hybrids with NIS, probably also for HP-UX 7.x. 166hpux hpux8 hpux9 hpux10: 167 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 168 LIBS= RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \ 169 NETGROUP=-DNETGROUP TLI= all 170 171# ConvexOS-10.x with UltraNet support (ukkonen@csc.fi). 172convex-ultranet: 173 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 174 LIBS=-lulsock RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 175 NETGROUP=-DNETGROUP TLI= all 176 177# Generic support for the Dynix/PTX version of TLI. 178ptx-generic: 179 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 180 LIBS="-lsocket -linet -lnsl" RANLIB=echo ARFLAGS=rv \ 181 AUX_OBJ="setenv.o strcasecmp.o ptx.o" NETGROUP= TLI=-DPTX all 182 183# With UDP support optimized for PTX 2.x (timw@sequent.com). 184ptx-2.x: 185 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 186 LIBS="-lsocket -linet -lnsl" RANLIB=echo ARFLAGS=rv \ 187 AUX_OBJ="setenv.o strcasecmp.o tli-sequent.o" NETGROUP= \ 188 TLI=-DTLI_SEQUENT all 189 190# IRIX 4.0.x has a special ar(1) flag. 191irix4: 192 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 193 LIBS="-lc -lsun" RANLIB=echo ARFLAGS=rvs AUX_OBJ=setenv.o \ 194 NETGROUP=-DNETGROUP TLI= all 195 196# IRIX 5.2 is SYSV4 with several broken things (such as -lsocket -lnsl). 197irix5: 198 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 199 LIBS=-lsun RANLIB=echo ARFLAGS=rv VSYSLOG= \ 200 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI= all 201 202# IRIX 6.2 (tucker@math.unc.edu). Must find a better value than 200000. 203irix6: 204 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 205 LIBS= RANLIB=echo ARFLAGS=rv VSYSLOG= \ 206 NETGROUP=-DNETGROUP EXTRA_CFLAGS="-DBSD=200000" TLI= all 207 208# SunOS 5.x is another SYSV4 variant. 209sunos5: 210 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 211 LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv VSYSLOG= \ 212 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \ 213 BUGS="$(BUGS) -DSOLARIS_24_GETHOSTBYNAME_BUG" all 214 215# SunOS 5.8 is another SYSV4 variant, but has IPv6 support 216solaris8: 217 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 218 LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv VSYSLOG= \ 219 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \ 220 EXTRA_CFLAGS="-DINET6 -DUSE_GETIPNODEBY -DNO_CLONE_DEVICE \ 221 -DINT32_T" all 222 223# Generic SYSV40 224esix sysv4: 225 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 226 LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \ 227 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI all 228 229# DG/UX 5.4.1 and 5.4.2 have an unusual inet_addr() interface. 230dgux: 231 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 232 LIBS=-lnsl RANLIB=echo ARFLAGS=rv \ 233 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI \ 234 BUGS="$(BUGS) -DINET_ADDR_BUG" all 235 236dgux543: 237 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 238 LIBS=-lnsl RANLIB=echo ARFLAGS=rv \ 239 NETGROUP=-DNETGROUP AUX_OBJ=setenv.o TLI=-DTLI all 240 241# NCR UNIX 02.02.01 and 02.03.00 (Alex Chircop, msu@unimt.mt) 242ncrsvr4: 243 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 244 LIBS="-lresolv -lnsl -lsocket" RANLIB=echo ARFLAGS=rv \ 245 AUX_OBJ="setenv.o strcasecmp.o" NETGROUP= TLI=-DTLI \ 246 EXTRA_CFLAGS="" FROM_OBJ=ncr.o all 247 248# Tandem SYSV4 (eqawas@hedgehog.ac.cowan.edu.au) 249tandem: 250 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 251 LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \ 252 NETGROUP= AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all 253 254# Amdahl UTS 2.1.5 (Richard.Richmond@bridge.bst.bls.com) 255uts215: 256 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 257 LIBS="-lsocket" RANLIB=echo \ 258 ARFLAGS=rv AUX_OBJ=setenv.o NETGROUP=-DNO_NETGROUP TLI= all 259 260# UXP/DS System V.4 clone (vic@uida0.uida.es). 261uxp: 262 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 263 LIBS="-L/usr/ucblib -lsocket -lnsl -lucb" \ 264 RANLIB=echo ARFLAGS=rv NETGROUP=-DNETGROUP \ 265 AUX_OBJ=setenv.o TLI="-DTLI -DDRS_XTI" all 266 267# DELL System V.4 Issue 2.2 using gcc (kim@tac.nyc.ny.us, jurban@norden1.com) 268dell-gcc: 269 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 270 LIBS="-lsocket -lnsl" RANLIB=ranlib ARFLAGS=rv CC=gcc \ 271 AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all 272 273# SCO 3.2v4.1 no frills (jedwards@sol1.solinet.net). 274sco: 275 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 276 LIBS="-lsocket -lnsl_s" RANLIB=echo ARFLAGS=rv \ 277 NETGROUP= AUX_OBJ=setenv.o TLI= all 278 279# SCO OpenDesktop 2.0, release 3.2 (peter@midnight.com). Please simplify. 280sco-od2: 281 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 282 LIBS="-lrpcsvc -lrpc -lyp -lrpc -lrpcsvc -lsocket" \ 283 RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \ 284 NETGROUP=-DNETGROUP TLI= all 285 286# SCO 3.2v4.2 with TCP/IP 1.2.1 (Eduard.Vopicka@vse.cz). Please simplify. 287sco-nis: 288 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 289 LIBS="-lyp -lrpc -lsocket -lyp -lc_s -lc" \ 290 RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o \ 291 NETGROUP=-DNETGROUP TLI= EXTRA_CFLAGS="-nointl -DNO_NETGRENT" all 292 293# SCO 3.2v5.0.0 OpenServer 5 (bob@odt.handy.com, bill@razorlogic.com) 294sco-os5: 295 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 296 LIBS="-lrpcsvc -lsocket" RANLIB=echo ARFLAGS=rv VSYSLOG= \ 297 AUX_OBJ=setenv.o NETGROUP=-DNETGROUP TLI= all 298 299# sinix 5.42 setjmp workaround (szrzs023@ub3.ub.uni-kiel.de) 300sinix: 301 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 302 LIBS="-lsocket -lnsl -L/usr/ccs/lib -lc -L/usr/ucblib -lucb" \ 303 RANLIB=echo ARFLAGS=rv AUX_OBJ=setenv.o TLI=-DTLI all 304 305# Domain SR10.4. Build under bsd, run under either sysv3 or bsd43. 306apollo: 307 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 308 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=setenv.o \ 309 NETGROUP=-DNETGROUP TLI= SYSTYPE="-A run,any -A sys,any" all 310 311# Pyramid OSx 5.1, using the BSD universe. 312pyramid: 313 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 314 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ="environ.o vfprintf.o" \ 315 STRINGS="-Dstrchr=index -Dstrrchr=rindex -Dmemcmp=bcmp -Dno_memcpy" \ 316 NETGROUP="-DNETGROUP -DUSE_GETDOMAIN" TLI= all 317 318# Untested. 319mips: 320 @echo "Warning: some definitions may be wrong." 321 make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 322 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 323 NETGROUP=-DNETGROUP TLI= SYSTYPE="-sysname bsd43" all 324 325# Cray (tested with UNICOS 7.0.4). 326unicos7: 327 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 328 LIBS=-lnet RANLIB=echo ARFLAGS=rv \ 329 EXTRA_CFLAGS=-DINADDR_NONE="\"((unsigned long) -1)\"" \ 330 AUX_OBJ="setenv.o strcasecmp.o" NETGROUP= TLI= all 331 332# Unicos 8.x, Cray-YMP (Bruce Kelly). 333unicos8: 334 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 335 LIBS= RANLIB=echo AR=bld ARFLAGS=rv \ 336 AUX_OBJ= NETGROUP= TLI= all 337 338# Power_UNIX 2.1.1 (amantel@lerc.nasa.gov) 339power_unix_211: 340 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 341 LIBS="-lnsl -lsocket -lgen -lresolv" RANLIB=echo ARFLAGS=rv \ 342 NETGROUP= AUX_OBJ=setenv.o TLI=-DTLI BUGS="$(BUGS)" all 343 344# ISC (fc@all.net) 345isc: 346 make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 347 LIBS="-linet -lnsl_s -ldbm" RANLIB=echo ARFLAGS=rv \ 348 AUX_OBJ="setenv.o strcasecmp.o" EXTRA_CFLAGS="-DENOTCONN=ENAVAIL" \ 349 NETGROUP= TLI= all 350 351# Interactive UNIX R3.2 version 4.0 (Bobby D. Wright). 352iunix: 353 make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 354 LIBS="-linet -lnsl_s -ldbm" RANLIB=echo ARFLAGS=rv \ 355 AUX_OBJ=environ.o strcasecmp.o NETGROUP= TLI= all 356 357# RTU 6.0 on a Masscomp 5400 (ben@piglet.cr.usgs.gov). When using the 358# advanced installation, increment argv before actually looking at it. 359rtu: 360 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 361 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 362 NETGROUP= TLI= all 363 364# Unixware sans NIS (mc@telebase.com). Compiler dislikes strcasecmp.c. 365unixware1: 366 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 367 LIBS="-lsocket -lnsl -lc -L/usr/ucblib -lucb" RANLIB=echo ARFLAGS=rv \ 368 NETGROUP=$(NETGROUP) AUX_OBJ=environ.o TLI=-DTLI all 369 370unixware2: 371 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 372 LIBS="-lsocket -lnsl -lgen -lc -L/usr/ucblib -lucb" RANLIB=echo \ 373 ARFLAGS=rv NETGROUP=$(NETGROUP) AUX_OBJ=environ.o TLI=-DTLI all 374 375u6000: 376 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 377 LIBS="-lsocket -lnsl" RANLIB=echo ARFLAGS=rv \ 378 NETGROUP=-DNETGROUP AUX_OBJ="setenv.o strcasecmp.o" TLI=-DTLI all 379 380# MachTen 381machten: 382 @make REAL_DAEMON_DIR=$(REAL_DAEMON_DIR) STYLE=$(STYLE) \ 383 LIBS= RANLIB=ranlib ARFLAGS=rv AUX_OBJ=environ.o \ 384 NETGROUP= TLI= all 385 386############################################################### 387# System dependencies: TLI (transport-level interface) support. 388# 389# Uncomment the following macro if your system has System V.4-style TLI 390# support (/usr/include/sys/timod.h, /etc/netconfig, and the netdir(3) 391# routines). 392# 393#TLI = -DTLI 394 395############################################################################### 396# System dependencies: differences between ranlib(1) and ar(1) implementations. 397# 398# Some C compilers (Ultrix 4.x) insist that ranlib(1) be run on an object 399# library; some don't care as long as the modules are in the right order; 400# some systems don't even have a ranlib(1) command. Make your choice. 401 402RANLIB = ranlib # have ranlib (BSD-ish UNIX) 403#RANLIB = echo # no ranlib (SYSV-ish UNIX) 404 405ARFLAGS = rv # most systems 406#ARFLAGS= rvs # IRIX 4.0.x 407 408AR = ar 409#AR = bld # Unicos 8.x 410 411############################################################################# 412# System dependencies: routines that are not present in the system libraries. 413# 414# If your system library does not have set/putenv() or strcasecmp(), use 415# the ones provided with this source distribution. The environ.c module 416# implements setenv(), getenv(), and putenv(). 417 418#AUX_OBJ= setenv.o 419#AUX_OBJ= environ.o 420#AUX_OBJ= environ.o strcasecmp.o 421 422# Uncomment the following if your C library does not provide the 423# strchr/strrchr/memcmp routines, but comes with index/rindex/bcmp. 424# 425#STRINGS= -Dstrchr=index -Dstrrchr=rindex -Dmemcmp=bcmp -Dno_memcpy 426 427################################################################# 428# System dependencies: selection of non-default object libraries. 429# 430# Most System V implementations require that you explicitly specify the 431# networking libraries. There is no general consensus, though. 432# 433#LIBS = -lsocket -lnsl # SysV.4 Solaris 2.x 434#LIBS = -lsun # IRIX 435#LIBS = -lsocket -linet -lnsl -lnfs # PTX 436#LIBS = -linet -lnsl_s -ldbm # ISC 437#LIBS = -lnet # Unicos 7 438#LIBS = -linet -lsyslog -ldbm 439#LIBS = -lsyslog -lsocket -lnsl 440 441###################################################### 442# System dependencies: system-specific compiler flags. 443# 444# Apollo Domain/OS offers both bsd and sys5 environments, sometimes 445# on the same machine. If your Apollo is primarily sys5.3 and also 446# has bsd4.3, uncomment the following to build under bsd and run under 447# either environment. 448# 449#SYSTYPE= -A run,any -A sys,any 450 451# For MIPS RISC/os 4_52.p3, uncomment the following definition. 452# 453#SYSTYPE= -sysname bsd43 454 455################################################## 456# System dependencies: working around system bugs. 457# 458# -DGETPEERNAME_BUG works around a getpeername(2) bug in some versions of 459# Apollo or SYSV.4 UNIX: the wrapper would report that all UDP requests 460# come from address 0.0.0.0. The workaround does no harm on other systems. 461# 462# -DBROKEN_FGETS works around an fgets(3) bug in some System V versions 463# (IRIX): fgets() gives up too fast when reading from a network socket. 464# The workaround does no harm on other systems. 465# 466# Some UNIX systems (IRIX) make the error of calling the strtok() library 467# routine from other library routines such as, e.g., gethostbyname/addr(). 468# The result is that hosts can slip through the wrapper allow/deny filters. 469# Compile with -DLIBC_CALLS_STRTOK to avoid the vendor's strtok() routine. 470# The workaround does no harm on other systems. 471# 472# DG/UX 5.4.1 comes with an inet_ntoa() function that returns a structure 473# instead of a long integer. Compile with -DINET_ADDR_BUG to work around 474# this mutant behavour. Fixed in 5.4R3. 475# 476# Solaris 2.4 gethostbyname(), in DNS through NIS mode, puts only one 477# address in the host address list; all other addresses are treated as 478# host name aliases. Compile with -DSOLARIS_24_GETHOSTBYNAME_BUG to work 479# around this. The workaround does no harm on other Solaris versions. 480 481#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DLIBC_CALLS_STRTOK 482#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DINET_ADDR_BUG 483#BUGS = -DGETPEERNAME_BUG -DBROKEN_FGETS -DSOLARIS_24_GETHOSTBYNAME_BUG 484 485########################################################################## 486# System dependencies: whether or not your system has NIS (or YP) support. 487# 488# If your system supports NIS or YP-style netgroups, enable the following 489# macro definition. Netgroups are used only for host access control. 490# 491#NETGROUP= -DNETGROUP 492 493############################################################### 494# System dependencies: whether or not your system has vsyslog() 495# 496# If your system supports vsyslog(), comment out the following definition. 497# If in doubt leave it in, it won't harm. 498 499#VSYSLOG = -Dvsyslog=myvsyslog 500 501# End of the system dependencies. 502################################# 503 504############################## 505# Start of the optional stuff. 506 507########################################### 508# Optional: Turning on language extensions 509# 510# Instead of the default access control language that is documented in 511# the hosts_access.5 document, the wrappers can be configured to 512# implement an extensible language documented in the hosts_options.5 513# document. This language is implemented by the "options.c" source 514# module, which also gives hints on how to add your own extensions. 515# Uncomment the next definition to turn on the language extensions 516# (examples: allow, deny, banners, twist and spawn). 517# 518#STYLE = -DPROCESS_OPTIONS # Enable language extensions. 519 520################################################################ 521# Optional: Changing the default disposition of logfile records 522# 523# By default, logfile entries are written to the same file as used for 524# sendmail transaction logs. See your /etc/syslog.conf file for actual 525# path names of logfiles. The tutorial section in the README file 526# gives a brief introduction to the syslog daemon. 527# 528# Change the FACILITY definition below if you disagree with the default 529# disposition. Some syslog versions (including Ultrix 4.x) do not provide 530# this flexibility. 531# 532# If nothing shows up on your system, it may be that the syslog records 533# are sent to a dedicated loghost. It may also be that no syslog daemon 534# is running at all. The README file gives pointers to surrogate syslog 535# implementations for systems that have no syslog library routines or 536# no syslog daemons. When changing the syslog.conf file, remember that 537# there must be TABs between fields. 538# 539# The LOG_XXX names below are taken from the /usr/include/syslog.h file. 540 541FACILITY= LOG_MAIL # LOG_MAIL is what most sendmail daemons use 542 543# The syslog priority at which successful connections are logged. 544 545SEVERITY= LOG_INFO # LOG_INFO is normally not logged to the console 546 547########################### 548# Optional: Reduce DNS load 549# 550# When looking up the address for a host.domain name, the typical DNS 551# code will first append substrings of your own domain, so it tries 552# host.domain.your.own.domain, then host.domain.own.domain, and then 553# host.domain. The APPEND_DOT feature stops this waste of cycles. It is 554# off by default because it causes problems on sites that don't use DNS 555# and with Solaris < 2.4. APPEND_DOT will not work with hostnames taken 556# from /etc/hosts or from NIS maps. It does work with DNS through NIS. 557# 558# DOT= -DAPPEND_DOT 559 560################################################## 561# Optional: Always attempt remote username lookups 562# 563# By default, the wrappers look up the remote username only when the 564# access control rules require them to do so. 565# 566# Username lookups require that the remote host runs a daemon that 567# supports an RFC 931 like protocol. Remote user name lookups are not 568# possible for UDP-based connections, and can cause noticeable delays 569# with connections from non-UNIX PCs. On some systems, remote username 570# lookups can trigger a kernel bug, causing loss of service. The README 571# file describes how to find out if your UNIX kernel has that problem. 572# 573# Uncomment the following definition if the wrappers should always 574# attempt to get the remote user name. If this is not enabled you can 575# still do selective username lookups as documented in the hosts_access.5 576# and hosts_options.5 manual pages (`nroff -man' format). 577# 578#AUTH = -DALWAYS_RFC931 579# 580# The default username lookup timeout is 10 seconds. This may not be long 581# enough for slow hosts or networks, but is enough to irritate PC users. 582 583RFC931_TIMEOUT = 10 584 585###################################################### 586# Optional: Changing the default file protection mask 587# 588# On many systems, network daemons and other system processes are started 589# with a zero umask value, so that world-writable files may be produced. 590# It is a good idea to edit your /etc/rc* files so that they begin with 591# an explicit umask setting. On our site we use `umask 022' because it 592# does not break anything yet gives adequate protection against tampering. 593# 594# The following macro specifies the default umask for processes run under 595# control of the daemon wrappers. Comment it out only if you are certain 596# that inetd and its children are started with a safe umask value. 597 598UMASK = -DDAEMON_UMASK=022 599 600####################################### 601# Optional: Turning off access control 602# 603# By default, host access control is enabled. To disable host access 604# control, comment out the following definition. Host access control 605# can also be turned off at runtime by providing no or empty access 606# control tables. 607 608ACCESS = -DHOSTS_ACCESS 609 610######################################################## 611# Optional: Changing the access control table pathnames 612# 613# The HOSTS_ALLOW and HOSTS_DENY macros define where the programs will 614# look for access control information. Watch out for the quotes and 615# backslashes when you make changes. 616 617TABLES = -DHOSTS_DENY=\"/etc/hosts.deny\" -DHOSTS_ALLOW=\"/etc/hosts.allow\" 618 619#################################################### 620# Optional: dealing with host name/address conflicts 621# 622# By default, the software tries to protect against hosts that claim to 623# have someone elses host name. This is relevant for network services 624# whose authentication depends on host names, such as rsh and rlogin. 625# 626# With paranoid mode on, connections will be rejected when the host name 627# does not match the host address. Connections will also be rejected when 628# the host name is available but cannot be verified. 629# 630# Comment out the following definition if you want more control over such 631# requests. When paranoid mode is off and a host name double check fails, 632# the client can be matched with the PARANOID access control pattern. 633# 634# Paranoid mode implies hostname lookup. In order to disable hostname 635# lookups altogether, see the next section. 636 637PARANOID= -DPARANOID 638 639######################################## 640# Optional: turning off hostname lookups 641# 642# By default, the software always attempts to look up the client 643# hostname. With selective hostname lookups, the client hostname 644# lookup is postponed until the name is required by an access control 645# rule or by a %letter expansion. 646# 647# In order to perform selective hostname lookups, disable paranoid 648# mode (see previous section) and comment out the following definition. 649 650HOSTNAME= -DALWAYS_HOSTNAME 651 652############################################# 653# Optional: Turning on host ADDRESS checking 654# 655# Optionally, the software tries to protect against hosts that pretend to 656# have someone elses host address. This is relevant for network services 657# whose authentication depends on host names, such as rsh and rlogin, 658# because the network address is used to look up the remote host name. 659# 660# The protection is to refuse TCP connections with IP source routing 661# options. 662# 663# This feature cannot be used with SunOS 4.x because of a kernel bug in 664# the implementation of the getsockopt() system call. Kernel panics have 665# been observed for SunOS 4.1.[1-3]. Symptoms are "BAD TRAP" and "Data 666# fault" while executing the tcp_ctloutput() kernel function. 667# 668# Reportedly, Sun patch 100804-03 or 101790 fixes this for SunOS 4.1.x. 669# 670# Uncomment the following macro definition if your getsockopt() is OK. 671# 672# -DKILL_IP_OPTIONS is not needed on modern UNIX systems that can stop 673# source-routed traffic in the kernel. Examples: 4.4BSD derivatives, 674# Solaris 2.x, and Linux. See your system documentation for details. 675# 676# KILL_OPT= -DKILL_IP_OPTIONS 677 678## End configuration options 679############################ 680 681# Protection against weird shells or weird make programs. 682 683SHELL = /bin/sh 684.c.o:; $(CC) $(CFLAGS) -c $*.c 685 686CFLAGS = -O -DFACILITY=$(FACILITY) $(ACCESS) $(PARANOID) $(NETGROUP) \ 687 $(BUGS) $(SYSTYPE) $(AUTH) $(UMASK) \ 688 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" $(STYLE) $(KILL_OPT) \ 689 -DSEVERITY=$(SEVERITY) -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) \ 690 $(UCHAR) $(TABLES) $(STRINGS) $(TLI) $(EXTRA_CFLAGS) $(DOT) \ 691 $(VSYSLOG) $(HOSTNAME) 692 693LIB_OBJ= hosts_access.o options.o shell_cmd.o rfc931.o eval.o \ 694 hosts_ctl.o refuse.o percent_x.o clean_exit.o $(AUX_OBJ) \ 695 $(FROM_OBJ) fix_options.o socket.o tli.o workarounds.o \ 696 update.o misc.o diag.o percent_m.o myvsyslog.o 697 698FROM_OBJ= fromhost.o 699 700KIT = README miscd.c tcpd.c fromhost.c hosts_access.c shell_cmd.c \ 701 tcpd.h tcpdmatch.c Makefile hosts_access.5 strcasecmp.c BLURB rfc931.c \ 702 tcpd.8 eval.c hosts_access.3 hosts_ctl.c percent_x.c options.c \ 703 clean_exit.c environ.c patchlevel.h fix_options.c workarounds.c \ 704 socket.c tli.c DISCLAIMER fakelog.c safe_finger.c hosts_options.5 \ 705 CHANGES try-from.c update.c ptx.c vfprintf.c tli-sequent.c \ 706 tli-sequent.h misc.c diag.c ncr.c tcpdchk.c percent_m.c \ 707 myvsyslog.c mystdarg.h printf.ck README.IRIX Banners.Makefile \ 708 refuse.c tcpdchk.8 setenv.c inetcf.c inetcf.h scaffold.c \ 709 scaffold.h tcpdmatch.8 README.NIS 710 711LIB = libwrap.a 712 713all other: config-check tcpd tcpdmatch try-from safe_finger tcpdchk 714 715# Invalidate all object files when the compiler options (CFLAGS) have changed. 716 717config-check: 718 @set +e; test -n "$(REAL_DAEMON_DIR)" || { make; exit 1; } 719 @set +e; echo $(CFLAGS) >/tmp/cflags.$$$$ ; \ 720 if cmp cflags /tmp/cflags.$$$$ ; \ 721 then rm /tmp/cflags.$$$$ ; \ 722 else mv /tmp/cflags.$$$$ cflags ; \ 723 fi >/dev/null 2>/dev/null 724 725$(LIB): $(LIB_OBJ) 726 rm -f $(LIB) 727 $(AR) $(ARFLAGS) $(LIB) $(LIB_OBJ) 728 -$(RANLIB) $(LIB) 729 730tcpd: tcpd.o $(LIB) 731 $(CC) $(CFLAGS) -o $@ tcpd.o $(LIB) $(LIBS) 732 733miscd: miscd.o $(LIB) 734 $(CC) $(CFLAGS) -o $@ miscd.o $(LIB) $(LIBS) 735 736safe_finger: safe_finger.o $(LIB) 737 $(CC) $(CFLAGS) -o $@ safe_finger.o $(LIB) $(LIBS) 738 739TCPDMATCH_OBJ = tcpdmatch.o fakelog.o inetcf.o scaffold.o 740 741tcpdmatch: $(TCPDMATCH_OBJ) $(LIB) 742 $(CC) $(CFLAGS) -o $@ $(TCPDMATCH_OBJ) $(LIB) $(LIBS) 743 744try-from: try-from.o fakelog.o $(LIB) 745 $(CC) $(CFLAGS) -o $@ try-from.o fakelog.o $(LIB) $(LIBS) 746 747TCPDCHK_OBJ = tcpdchk.o fakelog.o inetcf.o scaffold.o 748 749tcpdchk: $(TCPDCHK_OBJ) $(LIB) 750 $(CC) $(CFLAGS) -o $@ $(TCPDCHK_OBJ) $(LIB) $(LIBS) 751 752shar: $(KIT) 753 @shar $(KIT) 754 755kit: $(KIT) 756 @makekit $(KIT) 757 758files: 759 @echo $(KIT) 760 761archive: 762 $(ARCHIVE) $(KIT) 763 764clean: 765 rm -f tcpd miscd safe_finger tcpdmatch tcpdchk try-from *.[oa] core \ 766 cflags 767 768tidy: clean 769 chmod -R a+r . 770 chmod 755 . 771 772# Enable all bells and whistles for linting. 773 774lint: tcpd_lint miscd_lint match_lint chk_lint 775 776tcpd_lint: 777 lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \ 778 -DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \ 779 $(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \ 780 -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \ 781 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \ 782 -Dvsyslog=myvsyslog \ 783 tcpd.c fromhost.c socket.c tli.c hosts_access.c \ 784 shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \ 785 options.c setenv.c fix_options.c workarounds.c update.c misc.c \ 786 diag.c myvsyslog.c percent_m.c 787 788miscd_lint: 789 lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \ 790 -DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \ 791 $(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \ 792 -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \ 793 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \ 794 -Dvsyslog=myvsyslog \ 795 miscd.c fromhost.c socket.c tli.c hosts_access.c \ 796 shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \ 797 options.c setenv.c fix_options.c workarounds.c update.c misc.c \ 798 diag.c myvsyslog.c percent_m.c 799 800match_lint: 801 lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \ 802 -DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \ 803 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \ 804 -Dvsyslog=myvsyslog \ 805 tcpdmatch.c hosts_access.c eval.c percent_x.c options.c workarounds.c \ 806 update.c socket.c misc.c diag.c myvsyslog.c percent_m.c setenv.c \ 807 inetcf.c scaffold.c 808 809chk_lint: 810 lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \ 811 -DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \ 812 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" \ 813 -Dvsyslog=myvsyslog \ 814 tcpdchk.c eval.c percent_x.c options.c update.c workarounds.c \ 815 setenv.c misc.c diag.c myvsyslog.c percent_m.c inetcf.c scaffold.c 816 817printfck: 818 printfck -f printf.ck \ 819 tcpd.c fromhost.c socket.c tli.c hosts_access.c \ 820 shell_cmd.c refuse.c rfc931.c eval.c percent_x.c clean_exit.c \ 821 options.c setenv.c fix_options.c workarounds.c update.c misc.c \ 822 diag.c myvsyslog.c percent_m.c >aap.c 823 lint -DFACILITY=LOG_MAIL -DHOSTS_ACCESS -DPARANOID -DNETGROUP \ 824 -DGETPEERNAME_BUG -DDAEMON_UMASK=022 -DSEVERITY=$(SEVERITY) \ 825 $(TABLES) -DKILL_IP_OPTIONS -DPROCESS_OPTIONS \ 826 -DRFC931_TIMEOUT=$(RFC931_TIMEOUT) -DALWAYS_RFC931 \ 827 -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" -Dvsyslog=myvsyslog aap.c 828 printfck -f printf.ck \ 829 tcpdchk.c eval.c percent_x.c options.c update.c workarounds.c \ 830 setenv.c misc.c diag.c myvsyslog.c percent_m.c inetcf.c scaffold.c \ 831 >aap.c 832 lint -DFACILITY=LOG_MAIL -DSEVERITY=$(SEVERITY) -DHOSTS_ACCESS \ 833 -DPARANOID $(TABLES) -DNETGROUP -DPROCESS_OPTIONS -DRFC931_TIMEOUT=10 \ 834 -Dvsyslog=myvsyslog -DREAL_DAEMON_DIR=\"$(REAL_DAEMON_DIR)\" 835 836# Internal compilation dependencies. 837 838clean_exit.o: cflags 839clean_exit.o: tcpd.h 840diag.o: cflags 841diag.o: mystdarg.h 842diag.o: tcpd.h 843environ.o: cflags 844eval.o: cflags 845eval.o: tcpd.h 846fakelog.o: cflags 847fakelog.o: mystdarg.h 848fix_options.o: cflags 849fix_options.o: tcpd.h 850fromhost.o: cflags 851fromhost.o: tcpd.h 852hosts_access.o: cflags 853hosts_access.o: tcpd.h 854hosts_ctl.o: cflags 855hosts_ctl.o: tcpd.h 856inetcf.o: cflags 857inetcf.o: inetcf.h 858inetcf.o: tcpd.h 859misc.o: cflags 860misc.o: tcpd.h 861miscd.o: cflags 862miscd.o: patchlevel.h 863miscd.o: tcpd.h 864myvsyslog.o: cflags 865myvsyslog.o: mystdarg.h 866myvsyslog.o: tcpd.h 867ncr.o: cflags 868ncr.o: tcpd.h 869options.o: cflags 870options.o: tcpd.h 871percent_m.o: cflags 872percent_m.o: mystdarg.h 873percent_x.o: cflags 874percent_x.o: tcpd.h 875ptx.o: cflags 876ptx.o: tcpd.h 877refuse.o: cflags 878refuse.o: tcpd.h 879rfc931.o: cflags 880rfc931.o: tcpd.h 881safe_finger.o: cflags 882scaffold.o: cflags 883scaffold.o: scaffold.h 884scaffold.o: tcpd.h 885setenv.o: cflags 886shell_cmd.o: cflags 887shell_cmd.o: tcpd.h 888socket.o: cflags 889socket.o: tcpd.h 890strcasecmp.o: cflags 891tcpd.o: cflags 892tcpd.o: patchlevel.h 893tcpd.o: tcpd.h 894tcpdchk.o: cflags 895tcpdchk.o: inetcf.h 896tcpdchk.o: scaffold.h 897tcpdchk.o: tcpd.h 898tcpdmatch.o: cflags 899tcpdmatch.o: scaffold.h 900tcpdmatch.o: tcpd.h 901tli-sequent.o: cflags 902tli-sequent.o: tcpd.h 903tli-sequent.o: tli-sequent.h 904tli.o: cflags 905tli.o: tcpd.h 906try-from.o: cflags 907try-from.o: tcpd.h 908update.o: cflags 909update.o: mystdarg.h 910update.o: tcpd.h 911vfprintf.o: cflags 912workarounds.o: cflags 913workarounds.o: tcpd.h 914