Makefile revision 153877
1# 2# Copyright (C) 1993-1998 by Darren Reed. 3# 4# See the IPFILTER.LICENCE file for details on licencing. 5# 6BINDEST=/usr/sbin 7SBINDEST=/sbin 8MANDIR=/usr/share/man 9SEARCHDIRS!=echo $(BINDEST) $(SBINDEST) /bin /usr/bin /sbin /usr/sbin /usr/local/bin /usr/local/sbin | awk '{for(i=1;i<NF;i++){print $$i;}}' - | sort -u 10 11CC=gcc -Wall -Wuninitialized -Wstrict-prototypes -O 12#UFLAGS=-fprofile-arcs -ftest-coverage 13CFLAGS=-g -I$(TOP) 14# 15# For NetBSD/FreeBSD 16# 17DEVFS!=/usr/bin/lsvfs 2>&1 | sed -n 's/.*devfs.*/-DDEVFS/p' 18CPU!=uname -m 19INC=-I/usr/include -I/sys -I/sys/sys -I/sys/arch 20DEF=-D$(CPU) -D__$(CPU)__ -DINET -DKERNEL -D_KERNEL $(INC) $(DEVFS) 21IPDEF=$(DEF) -DGATEWAY -DDIRECTED_BROADCAST 22VNODESHDIR=/sys/kern 23MLD=$(ML) 24ML=mln_ipl.c 25LKM=if_ipl.o 26LKMR=ipfrule.o 27DLKM= 28OBJ=. 29DEST=$(OBJ) 30MFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ 31 'CFLAGS=$(CFLAGS) $(SOLARIS2)' "IPFLKM=$(IPFLKM)" \ 32 "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ 33 "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \ 34 "CPUDIR=$(CPUDIR)" "LOOKUP=$(LOOKUP)" "SYNC=$(SYNC)" 35LIBS=-L. -lipf $(LIBBPF) 36# 37########## ########## ########## ########## ########## ########## ########## 38# 39CP=/bin/cp 40RM=/bin/rm 41CHMOD=/bin/chmod 42INSTALL=install 43# 44MODOBJS=ip_fil.o fil.o ml_ipl.o ip_nat.o ip_frag.o ip_state.o ip_proxy.o \ 45 ip_auth.o ip_log.o ip_pool.o ip_htable.o ip_lookup.o ip_rules.o \ 46 ip_scan.o ip_sync.o 47# ip_trafcon.o 48DFLAGS=$(IPFLKM) $(IPFLOG) $(LOOKUP) $(SYNC) $(DEF) $(DLKM) $(IPFBPF) 49IPF=ipf.o ipfcomp.o ipf_y.o ipf_l.o bpf_filter_u.o 50IPT=ipftest.o fil_u.o ip_frag_u.o ip_state_u.o ip_nat_u.o \ 51 ip_proxy_u.o ip_auth_u.o ip_htable_u.o ip_lookup_u.o ip_pool_u.o \ 52 ip_scan_u.o ip_sync_u.o ip_rules_u.o ip_fil_u.o ip_log_u.o \ 53 ippool_y.o ippool_l.o ipf_y.o ipf_l.o ipnat_y.o ipnat_l.o \ 54 md5_u.o radix_u.o bpf_filter_u.o 55# ip_syn_u.o 56#ip_trafcon_u.o 57TOOL=$(TOP)/tools 58IPNAT=ipnat.o ipnat_y.o ipnat_l.o 59IPMON=ipmon.o ipmon_y.o ipmon_l.o 60IPPOOL=ippool_y.o ippool_l.o kmem.o ippool.o 61IPTRAFCON=iptrafcon.o 62PROXYLIST=$(TOP)/ip_ftp_pxy.c $(TOP)/ip_ipsec_pxy.c $(TOP)/ip_irc_pxy.c \ 63 $(TOP)/ip_netbios_pxy.c $(TOP)/ip_raudio_pxy.c $(TOP)/ip_rcmd_pxy.c \ 64 $(TOP)/ip_rpcb_pxy.c $(TOP)/ip_pptp_pxy.c 65FILS=ipfstat.o 66LIBSRC=$(TOP)/lib 67RANLIB=ranlib 68AROPTS=cq 69HERE!=pwd 70CCARGS=-I. $(DEBUG) $(CFLAGS) $(UFLAGS) 71KCARGS=-I. $(DEBUG) $(CFLAGS) 72# 73# Extra is option kernel things we always want in user space. 74# 75EXTRA=$(ALLOPTS) 76 77include $(TOP)/lib/Makefile 78 79build all: machine $(OBJ)/libipf.a ipf ipfs ipfstat ipftest ipmon ipnat \ 80 ippool ipscan ipsyncm ipsyncs $(LKM) $(LKMR) 81 -sh -c 'for i in ipf ipftest ipmon ippool ipnat ipscan ipsyncm ipsyncs; do /bin/rm -f $(TOP)/$$i; ln -s `pwd`/$$i $(TOP); done' 82 -/bin/rm -f ../tools ./tools 83 -ln -s ../tools . 84 -ln -s ../tools .. 85 86machine: Makefile.kmod 87 if [ -f Makefile.kmod ] ; then \ 88 make -f Makefile.kmod depend MKUPDATE=no; \ 89 fi 90 91Makefile.kmod: 92 if [ -f /usr/share/mk/bsd.kmod.mk -a "`uname -s`" = "NetBSD" ] ; then \ 93 rm -f Makefile.kmod; \ 94 ln -s /usr/share/mk/bsd.kmod.mk Makefile.kmod; \ 95 fi 96 97ipfstat: $(FILS) $(OBJ)/libipf.a 98 $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) $(FILS) \ 99 -o $@ $(LIBS) $(STATETOP_LIB) -lkvm 100 101ipf: $(IPF) $(OBJ)/libipf.a 102 $(CC) $(CCARGS) $(IPF) -o $@ $(LIBS) -ll $(LIBBPF) 103 104ipftest: $(IPT) $(OBJ)/libipf.a 105 $(CC) $(CCARGS) $(IPT) -o $@ $(LIBS) -ll $(LIBBPF) 106 107ipnat: $(IPNAT) $(OBJ)/libipf.a 108 $(CC) $(CCARGS) $(IPNAT) -o $@ $(LIBS) -lkvm -ll 109 110ipfs: ipfs.o 111 $(CC) $(CCARGS) ipfs.o -o $@ 112 113ipsyncm: ipsyncm.o $(OBJ)/libipf.a 114 $(CC) $(CCARGS) ipsyncm.o -o $@ $(LIBS) 115 116ipsyncs: ipsyncs.o $(OBJ)/libipf.a 117 $(CC) $(CCARGS) ipsyncs.o -o $@ $(LIBS) 118 119ipsyncm.o: $(TOOL)/ipsyncm.c $(TOP)/ip_sync.h 120 $(CC) $(CCARGS) -c $(TOOL)/ipsyncm.c -o $@ 121 122ipsyncs.o: $(TOOL)/ipsyncs.c $(TOP)/ip_sync.h 123 $(CC) $(CCARGS) -c $(TOOL)/ipsyncs.c -o $@ 124 125tests: 126 (cd test; make ) 127 128ipfstat.o: $(TOOL)/ipfstat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_frag.h \ 129 $(TOP)/ip_compat.h $(TOP)/ip_state.h $(TOP)/ip_nat.h $(TOP)/opts.h 130 $(CC) $(CCARGS) $(STATETOP_CFLAGS) $(STATETOP_INC) \ 131 -c $(TOOL)/ipfstat.c -o $@ 132 133ipfs.o: $(TOOL)/ipfs.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_state.h \ 134 $(TOP)/ip_nat.h $(TOP)/opts.h 135 $(CC) $(CCARGS) -c $(TOOL)/ipfs.c -o $@ 136 137fil_u.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_compat.h \ 138 $(TOP)/opts.h $(TOP)/ip_rules.h 139 $(CC) $(CCARGS) $(EXTRA) $(IPFBPF) -D_RADIX_H_ -c $(TOP)/fil.c -o $@ 140 141fil.o: $(TOP)/fil.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ipl.h \ 142 $(TOP)/ip_rules.h 143 $(CC) $(KCARGS) $(POLICY) $(DFLAGS) $(IPFBPF) $(COMPIPF) \ 144 -c $(TOP)/fil.c -o $@ 145 146ipf.o: $(TOOL)/ipf.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/opts.h 147 $(CC) $(CCARGS) -c $(TOOL)/ipf.c -o $@ 148 149ipfcomp.o: $(TOOL)/ipfcomp.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/opts.h 150 $(CC) $(CCARGS) -c $(TOOL)/ipfcomp.c -o $@ 151 152ipftest.o: $(TOOL)/ipftest.c $(TOP)/ip_fil.h $(TOP)/ipt.h $(TOP)/ipf.h \ 153 $(TOP)/opts.h 154 $(CC) $(CCARGS) -c $(TOOL)/ipftest.c -o $@ 155 156ipnat.o: $(TOOL)/ipnat.c $(TOP)/ip_fil.h $(TOP)/ipf.h $(TOP)/ip_nat.h \ 157 $(TOP)/opts.h 158 $(CC) $(CCARGS) -c $(TOOL)/ipnat.c -o $@ 159 160ipnat_y.o: ipnat_y.c ipnat_y.h ipnat_l.h 161 $(CC) $(CCARGS) -c ipnat_y.c -o $@ 162 163ipnat_l.o: ipnat_l.c ipnat_y.h 164 $(CC) $(CCARGS) -I. -c ipnat_l.c -o $@ 165 166ipnat_y.c: $(TOOL)/ipnat_y.y 167 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 168 169ipnat_y.h: ipnat_y.c 170 171ipnat_l.c: $(TOOL)/lexer.c $(TOP)/ip_nat.h 172 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 173 174ipnat_l.h: $(TOOL)/lexer.h 175 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 176 177ip_nat_u.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h 178 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_nat.c -o $@ 179 180ip_proxy_u.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ 181 $(TOP)/ip_fil.h $(PROXYLIST) $(TOP)/ip_nat.h 182 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_proxy.c -o $@ 183 184ip_frag_u.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h \ 185 $(TOP)/ip_fil.h 186 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_frag.c -o $@ 187 188ip_state_u.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ 189 $(TOP)/ip_fil.h $(TOP)/ip_nat.h 190 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_state.c -o $@ 191 192ip_auth_u.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ 193 $(TOP)/ip_fil.h 194 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_auth.c -o $@ 195 196ip_fil_u.o: $(TOP)/ip_fil.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h 197 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_fil.c -o $@ 198 199ip_rules_u.o: ip_rules.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 200 $(TOP)/ip_rules.h 201 $(CC) $(CCARGS) $(EXTRA) -c ip_rules.c -o $@ 202 203ip_scan_u.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 204 $(TOP)/ip_scan.h 205 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_scan.c -o $@ 206 207ip_sync_u.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 208 $(TOP)/ip_sync.h 209 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_sync.c -o $@ 210 211ip_pool_u.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 212 $(TOP)/ip_pool.h 213 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_pool.c -o $@ 214 215ip_htable_u.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 216 $(TOP)/ip_htable.h 217 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_htable.c -o $@ 218 219ip_lookup_u.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 220 $(TOP)/ip_lookup.h $(TOP)/ip_pool.h $(TOP)/ip_htable.h 221 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_lookup.c -o $@ 222 223ip_trafcon_u.o: $(TOP)/ip_trafcon.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 224 $(TOP)/ip_trafcon.h 225 $(CC) $(CCARGS) -c $(TOP)/ip_trafcon.c -o $@ 226 227ip_log_u.o: $(TOP)/ip_log.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h 228 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/ip_log.c -o $@ 229 230md5_u.o: $(TOP)/md5.c $(TOP)/md5.h 231 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/md5.c -o $@ 232 233radix_u.o: $(TOP)/md5.c $(TOP)/radix_ipf.h 234 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/radix.c -o $@ 235 236bpf_filter_u.o: $(TOP)/bpf_filter.c $(TOP)/pcap-ipf.h 237 $(CC) $(CCARGS) $(EXTRA) -c $(TOP)/bpf_filter.c -o $@ 238 239if_ipl.o: $(MODOBJS) 240 ld -r $(MODOBJS) -o $(LKM) 241 ${RM} -f if_ipl 242 243ipfrule.ko.5: ip_rulesx.o $(MLR) 244 ld -warn-common -r -d -o $(.TARGET:S/.ko/.kld/) ip_rulesx.o $(MLR) 245 ld -Bshareable -d -warn-common -o $(LKMR:S/.5$//) $(.TARGET:S/.ko/.kld/) 246ipfrule.ko: ip_rulesx.o $(MLR) 247 gensetdefs ip_rulesx.o $(MLR) 248 $(CC) $(KCARGS) -c setdef0.c 249 $(CC) $(KCARGS) -c setdef1.c 250 ld -Bshareable -o $@ setdef0.o ip_rulesx.o $(MLR) setdef1.o 251 252ipf.ko.5 ipl.ko.5: $(MODOBJS) 253 ld -warn-common -r -d -o $(.TARGET:S/.ko/.kld/) $(MODOBJS) 254 ld -Bshareable -d -warn-common -o $(LKM:S/.5$//) $(.TARGET:S/.ko/.kld/) 255 256ipf.ko ipl.ko: $(MODOBJS) 257 gensetdefs $(MODOBJS) 258 $(CC) $(KCARGS) -c setdef0.c 259 $(CC) $(KCARGS) -c setdef1.c 260 ld -Bshareable -o $@ setdef0.o $(MODOBJS) setdef1.o 261 262ip_nat.o: $(TOP)/ip_nat.c $(TOP)/ip_nat.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h 263 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_nat.c -o $@ 264 265ip_frag.o: $(TOP)/ip_frag.c $(TOP)/ip_frag.h $(TOP)/ip_compat.h $(TOP)/ip_fil.h 266 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_frag.c -o $@ 267 268ip_state.o: $(TOP)/ip_state.c $(TOP)/ip_state.h $(TOP)/ip_compat.h \ 269 $(TOP)/ip_fil.h $(TOP)/ip_nat.h 270 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_state.c -o $@ 271 272ip_proxy.o: $(TOP)/ip_proxy.c $(TOP)/ip_proxy.h $(TOP)/ip_compat.h \ 273 $(TOP)/ip_fil.h $(PROXYLIST) $(TOP)/ip_nat.h 274 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_proxy.c -o $@ 275 276ip_auth.o: $(TOP)/ip_auth.c $(TOP)/ip_auth.h $(TOP)/ip_compat.h \ 277 $(TOP)/ip_fil.h 278 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_auth.c -o $@ 279 280ip_fil.c: 281 /bin/rm -f ip_fil.c 282 ln -s $(TOP)/ip_fil_`uname -s|tr A-Z a-z`.c ip_fil.c 283 284ip_fil.o: ip_fil.c $(TOP)/ip_fil.h $(TOP)/ip_compat.h $(TOP)/ip_nat.h 285 $(CC) $(KCARGS) $(DFLAGS) $(COMPIPF) -c ip_fil.c -o $@ 286 287ip_log.o: $(TOP)/ip_log.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h 288 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_log.c -o $@ 289 290ip_scan.o: $(TOP)/ip_scan.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_scan.h 291 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_scan.c -o $@ 292 293ip_sync.o: $(TOP)/ip_sync.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h $(TOP)/ip_sync.h 294 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_sync.c -o $@ 295 296ip_pool.o: $(TOP)/ip_pool.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 297 $(TOP)/ip_lookup.h $(TOP)/ip_pool.h 298 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_pool.c -o $@ 299 300ip_htable.o: $(TOP)/ip_htable.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 301 $(TOP)/ip_lookup.h $(TOP)/ip_htable.h 302 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_htable.c -o $@ 303 304ip_lookup.o: $(TOP)/ip_lookup.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 305 $(TOP)/ip_pool.h $(TOP)/ip_htable.h $(TOP)/ip_lookup.h 306 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_lookup.c -o $@ 307 308ip_trafcon.o: $(TOP)/ip_trafcon.c $(TOP)/ip_compat.h $(TOP)/ip_fil.h \ 309 $(TOP)/ip_trafcon.h 310 $(CC) $(KCARGS) $(DFLAGS) -c $(TOP)/ip_trafcon.c -o $@ 311 312vnode_if.h: $(VNODESHDIR)/vnode_if.src 313 mkdir -p ../sys 314 if [ -f $(VNODESHDIR)/vnode_if.sh ] ; then \ 315 sh $(VNODESHDIR)/vnode_if.sh $(VNODESHDIR)/vnode_if.src; \ 316 fi 317 if [ -f $(VNODESHDIR)/vnode_if.pl ] ; then \ 318 perl $(VNODESHDIR)/vnode_if.pl $(VNODESHDIR)/vnode_if.src; \ 319 fi 320 if [ -f ../sys/vnode_if.h ] ; then mv ../sys/vnode_if.h .; fi 321 rmdir ../sys 322 323ml_ipl.o: vnode_if.h $(TOP)/$(MLD) $(TOP)/ipl.h 324 -/bin/rm -f vnode_if.c 325 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/$(ML) -o $@ 326 327ip_rules.o: ip_rules.c $(TOP)/ip_rules.h 328 $(CC) -I. $(CFLAGS) $(DFLAGS) $(COMPIPF) -c ip_rules.c -o $@ 329 330ip_rules.c: $(TOP)/rules/ip_rules $(TOP)/tools/ipfcomp.c ipf 331 ./ipf -cc -nf $(TOP)/rules/ip_rules 332 333$(TOP)/ip_rules.h: ip_rules.c 334 if [ ! -f $(TOP)/ip_rules.h ] ; then \ 335 /bin/mv -f ip_rules.h $(TOP); \ 336 else \ 337 touch $(TOP)/ip_rules.h; \ 338 fi 339 340ip_rulesx.o: ip_rules.c $(TOP)/ip_rules.h 341 $(CC) -I. $(CFLAGS) $(DFLAGS) -DIPFILTER_COMPILED -c ip_rules.c -o $@ 342 343mlf_rule.o: $(TOP)/mlf_rule.c $(TOP)/ip_rules.h 344 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/mlf_rule.c -o $@ 345 346mln_rule.o: $(TOP)/mln_rule.c $(TOP)/ip_rules.h 347 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/mln_rule.c -o $@ 348 349mlo_rule.o: $(TOP)/mlo_rule.c $(TOP)/ip_rules.h 350 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/mlo_rule.c -o $@ 351 352mlfk_rule.o: $(TOP)/mlfk_rule.c $(TOP)/ip_rules.h 353 $(CC) -I. $(CFLAGS) $(DFLAGS) -c $(TOP)/mlfk_rule.c -o $@ 354 355ipf_y.o: ipf_y.c ipf_y.h $(TOP)/ipf.h ipf_l.h $(TOP)/opts.h 356 $(CC) $(CCARGS) $(IPFBPF) -c ipf_y.c -o $@ 357 358ipf_l.o: ipf_l.c ipf_y.h $(TOP)/ipf.h ipf_l.h $(TOP)/opts.h 359 $(CC) $(CCARGS) -I. -c ipf_l.c -o $@ 360 361ipf_y.c: $(TOOL)/ipf_y.y $(TOP)/ipf.h $(TOP)/opts.h 362 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 363 364ipf_y.h: ipf_y.c 365 366ipf_l.c: $(TOOL)/lexer.c $(TOP)/ipf.h $(TOP)/opts.h 367 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 368 369ipf_l.h: $(TOOL)/lexer.h 370 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 371 372ipmon: $(IPMON) $(OBJ)/libipf.a 373 $(CC) $(CCARGS) $(IPMON) -o $@ $(LIBS) -ll 374 375ipmon.o: $(TOOL)/ipmon.c $(TOP)/ipmon.h 376 $(CC) $(CCARGS) $(LOGFAC) -c $(TOOL)/ipmon.c -o $@ 377 378ipmon_y.o: ipmon_y.c ipmon_y.h $(TOP)/ipmon.h ipmon_l.h 379 $(CC) $(CCARGS) -c ipmon_y.c -o $@ 380 381ipmon_l.o: ipmon_l.c ipmon_y.h $(TOP)/ipmon.h 382 $(CC) $(CCARGS) -I. -c ipmon_l.c -o $@ 383 384ipmon_y.c: $(TOOL)/ipmon_y.y $(TOP)/ipmon.h 385 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 386 387ipmon_y.h: ipmon_y.c 388 389ipmon_l.c: $(TOOL)/lexer.c $(TOP)/ipmon.h 390 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 391 392ipmon_l.h: $(TOOL)/lexer.h 393 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 394 395ipscan: ipscan_y.o ipscan_l.o 396 $(CC) $(DEBUG) ipscan_y.o ipscan_l.o -o $@ -ll $(LIBS) -lkvm 397 398ipscan_y.o: ipscan_y.c ipscan_y.h $(TOP)/ip_scan.h ipscan_l.h 399 $(CC) $(CCARGS) -c ipscan_y.c -o $@ 400 401ipscan_l.o: ipscan_l.c ipscan_y.h $(TOP)/ip_scan.h 402 $(CC) $(CCARGS) -I. -c ipscan_l.c -o $@ 403 404ipscan_y.c: $(TOOL)/ipscan_y.y $(TOP)/ip_scan.h 405 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 406 407ipscan_y.h: ipscan_y.c 408 409ipscan_l.c ipscan_l.h: $(TOOL)/lexer.c $(TOP)/ip_scan.h 410 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 411 412ippool: $(IPPOOL) $(OBJ)/libipf.a 413 $(CC) $(DEBUG) -I. $(CFLAGS) $(IPPOOL) -o $@ -ll -lkvm -L. -lipf 414 415ippool.o: $(TOOL)/ippool.c $(TOP)/ip_pool.h 416 $(CC) $(CCARGS) -c $(TOOL)/ippool.c -o $@ 417 418ippool_y.o: ippool_y.c ippool_y.h $(TOP)/ip_pool.h ippool_l.h 419 $(CC) $(CCARGS) -c ippool_y.c -o $@ 420 421ippool_l.o: ippool_l.c ippool_y.h $(TOP)/ip_pool.h 422 $(CC) $(CCARGS) -I. -c ippool_l.c -o $@ 423 424ippool_y.c: $(TOOL)/ippool_y.y $(TOP)/ip_pool.h ippool_l.h 425 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 426 427ippool_y.h: ippool_y.c 428 429ippool_l.c: $(TOOL)/lexer.c $(TOP)/ip_pool.h 430 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 431 432ippool_l.h: $(TOOL)/lexer.h 433 (cd $(TOOL); make "DEST=$(HERE)" $(HERE)/$@) 434 435iptrafcon.o: $(TOP)/iptrafcon.c 436 $(CC) $(CCARGS) -c $< -o $@ 437 438iptrafcon: $(IPTRAFCON) $(OBJ)/libipf.a 439 $(CC) $(CCARGS) $(IPTRAFCON) -o $@ $(LIBS) 440 441.y.c: 442 443.l.c: 444 445clean: 446 ${RM} -f ../ipf ../ipnat ../ipmon ../ippool ../ipftest 447 ${RM} -f ../ipscan ../ipsyncm ../ipsyncs 448 ${RM} -f *.core *.o *.a ipt ipfstat ipf ipfstat ipftest ipmon 449 ${RM} -f if_ipl ipnat ipfrule.ko* ipf.kld* 450 ${RM} -f vnode_if.h $(LKM) ioconf.h *.ko setdef1.c setdef0.c setdefs.h 451 ${RM} -f ip_fil.c ipf_l.c ipf_y.c ipf_y.h ipf_l.h 452 ${RM} -f ipscan ipscan_y.c ipscan_y.h ipscan_l.c ipscan_l.h 453 ${RM} -f ippool ippool_y.c ippool_y.h ippool_l.c ippool_l.h 454 ${RM} -f ipnat_y.c ipnat_y.h ipnat_l.c ipnat_l.h 455 ${RM} -f ipmon_y.c ipmon_y.h ipmon_l.c ipmon_l.h 456 ${RM} -f ipsyncm ipsyncs ipfs ip_rules.c ip_rules.h 457 ${RM} -f *.da *.gcov *.bb *.bbg tools 458 459 ${MAKE} -f Makefile.ipsend ${MFLAGS} clean 460 if [ -f Makefile.kmod ] ; then \ 461 ${MAKE} -f Makefile.kmod ${MFLAGS} clean; \ 462 fi 463 -(for i in *; do \ 464 if [ -d $${i} -a -f $${i}/Makefile ] ; then \ 465 cd $${i}; (make TOP=../.. clean); cd ..; \ 466 /bin/rm -f $${i}/Makefile $${i}/Makefile.ipsend; \ 467 /bin/rm -f $${i}/Makefile.kmod; \ 468 rmdir $${i}; \ 469 fi \ 470 done) 471 472install: 473 for i in ip_compat.h ip_fil.h ip_nat.h ip_state.h ip_proxy.h \ 474 ip_frag.h ip_auth.h; do \ 475 /bin/cp $(TOP)/$$i /usr/include/netinet/; \ 476 $(CHMOD) 444 /usr/include/netinet/$$i; \ 477 done 478 -if [ -d /lkm -a -f if_ipl.o ] ; then \ 479 cp if_ipl.o /lkm; \ 480 fi 481 -if [ -d /modules -a -f ipf.ko ] ; then \ 482 cp ipf.ko /modules; \ 483 fi 484 -if [ -d /modules -a -f ipfrule.ko ] ; then \ 485 cp ipfrule.ko /modules; \ 486 fi 487 -if [ -d /boot/kernel -a -f ipf.ko ] ; then \ 488 cp ipf.ko /boot/kernel; \ 489 fi 490 -if [ -d /boot/kernel -a -f ipfrule.ko ] ; then \ 491 cp ipfrule.ko /boot/kernel; \ 492 fi 493 -if [ -d /usr/lkm -a -f if_ipl.o ] ; then \ 494 cp if_ipl.o /usr/lkm; \ 495 fi 496 -$(INSTALL) -cs -g wheel -m 755 -o root ipscan $(SBINDEST) 497 (cd $(TOP)/man; make INSTALL=$(INSTALL) MANDIR=$(MANDIR) install; cd $(TOP)) 498 @for i in ipf:$(SBINDEST) ipfs:$(SBINDEST) ipnat:$(SBINDEST) \ 499 ippool:$(BINDEST) ipsyncm:$(BINDEST) ipsyncs:$(BINDEST) \ 500 ipfstat:$(SBINDEST) ipftest:$(SBINDEST) ipmon:$(BINDEST); do \ 501 def="`expr $$i : '[^:]*:\(.*\)'`"; \ 502 p="`expr $$i : '\([^:]*\):.*'`"; \ 503 dd=; \ 504 for d in $(SEARCHDIRS); do \ 505 if [ -f $$d/$$p ] ; then \ 506 echo "$(INSTALL) -cs -g wheel -m 755 -o root $$p $$d"; \ 507 $(INSTALL) -cs -g wheel -m 755 -o root $$p $$d; \ 508 dd=XXX; \ 509 fi; \ 510 done; \ 511 if [ -z "$$dd" ] ; then \ 512 echo $(INSTALL) -cs -g wheel -m 755 -o root $$p $$def; \ 513 $(INSTALL) -cs -g wheel -m 755 -o root $$p $$def; \ 514 fi \ 515 done 516 (cd $(TOP)/man; make INSTALL=$(INSTALL) MANDIR=$(MANDIR) install; cd $(TOP)) 517 518coverage: 519 ksh -c 'for i in *.da; do j=$${i%%.da}.c; gcov $$j 2>&1 | egrep -v "y.tab.c|Could|Creating|_l\.c|\.h"; done' | sort -n > report 520 sort -n report | perl -e 'while(<>) { next if (/^0.00/); s/\%//g; @F=split;$$lc+=$$F[2];$$t += $$F[0]/100*$$F[2];} printf "%d of %d = %d%%\n", $$t, $$lc,$$t/$$lc*100;' >> report 521 522clean-coverage: 523 /bin/rm -f *.gcov *.da 524