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