17c478bd9Sstevel@tonic-gate# 233f2fefdSDarren Reed# CDDL HEADER START 37c478bd9Sstevel@tonic-gate# 433f2fefdSDarren Reed# The contents of this file are subject to the terms of the 533f2fefdSDarren Reed# Common Development and Distribution License (the "License"). 633f2fefdSDarren Reed# You may not use this file except in compliance with the License. 733f2fefdSDarren Reed# 833f2fefdSDarren Reed# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 933f2fefdSDarren Reed# or http://www.opensolaris.org/os/licensing. 1033f2fefdSDarren Reed# See the License for the specific language governing permissions 1133f2fefdSDarren Reed# and limitations under the License. 1233f2fefdSDarren Reed# 1333f2fefdSDarren Reed# When distributing Covered Code, include this CDDL HEADER in each 1433f2fefdSDarren Reed# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1533f2fefdSDarren Reed# If applicable, add the following below this CDDL HEADER, with the 1633f2fefdSDarren Reed# fields enclosed by brackets "[]" replaced with your own identifying 1733f2fefdSDarren Reed# information: Portions Copyright [yyyy] [name of copyright owner] 1833f2fefdSDarren Reed# 1933f2fefdSDarren Reed# CDDL HEADER END 2033f2fefdSDarren Reed# 2133f2fefdSDarren Reed# 2233f2fefdSDarren Reed# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 2333f2fefdSDarren Reed# Use is subject to license terms. 247c478bd9Sstevel@tonic-gate# 25*f3ac6781SToomas Soome# Copyright 2013 Nexenta Systems, Inc. All rights reserved. 26*f3ac6781SToomas Soome# 27*f3ac6781SToomas Soome# Copyright (c) 2012, Joyent Inc. All rights reserved. 28*f3ac6781SToomas Soome# 297c478bd9Sstevel@tonic-gate# cmd/ipf/tools/Makefile 307c478bd9Sstevel@tonic-gate# 317c478bd9Sstevel@tonic-gate# 327c478bd9Sstevel@tonic-gate 33*f3ac6781SToomas Soomeinclude ../../Makefile.cmd 34*f3ac6781SToomas Soomeinclude ../../Makefile.cmd.64 35*f3ac6781SToomas Soomeinclude ../Makefile.ipf 36*f3ac6781SToomas Soomeinclude ../../Makefile.ctf 37*f3ac6781SToomas Soome 387c478bd9Sstevel@tonic-gateLICENCE= IPFILTER.LICENCE 397c478bd9Sstevel@tonic-gate 40*f3ac6781SToomas SoomePROG= ipf ipfs ipmon ipnat ippool ipfstat 41*f3ac6781SToomas SoomeIPFPROG= ipftest 427c478bd9Sstevel@tonic-gate 43*f3ac6781SToomas SoomeIPF_OBJS= ipf.o ipfcomp.o ipfzone.o ipf_y.o ipf_l.o 44*f3ac6781SToomas SoomeIPFS_OBJS= ipfs.o ipfzone.o 45*f3ac6781SToomas SoomeIPFSTAT_OBJS= ipfstat.o ipfzone.o 46*f3ac6781SToomas SoomeIPMON_OBJS= ipmon.o ipfzone.o ipmon_y.o ipmon_l.o 47*f3ac6781SToomas SoomeIPNAT_OBJS= ipnat.o ipfzone.o ipnat_y.o ipnat_l.o 48*f3ac6781SToomas SoomeIPPOOL_OBJS= ippool.o ipfzone.o ippool_y.o ippool_l.o 49*f3ac6781SToomas SoomeIPFTEST_OBJS= ipftest.o ipfzone.o \ 50*f3ac6781SToomas Soome ip_fil.o ip_state.o ip_compat.o \ 51*f3ac6781SToomas Soome ip_frag.o ip_nat.o ip_nat6.o fil.o \ 52*f3ac6781SToomas Soome ip_htable.o ip_lookup.o \ 53*f3ac6781SToomas Soome ip_proxy.o ip_auth.o ip_log.o \ 54*f3ac6781SToomas Soome ipf_y.o ipf_l.o \ 55*f3ac6781SToomas Soome ipnat_y.o ipnat_l.o \ 56*f3ac6781SToomas Soome ippool_y.o ippool_l.o \ 57*f3ac6781SToomas Soome ip_pool.o radix.o 587c478bd9Sstevel@tonic-gate 597c478bd9Sstevel@tonic-gateUSRLIBIPF= $(ROOTLIB)/ipf 607c478bd9Sstevel@tonic-gateUSRLIBIPFLICENCE= $(LICENCE:%=$(USRLIBIPF)/%) 617c478bd9Sstevel@tonic-gate 627c478bd9Sstevel@tonic-gate$(USRLIBIPFLICENCE):=FILEMODE= 0644 637c478bd9Sstevel@tonic-gate 64*f3ac6781SToomas SoomeCFLAGS += -D_ELF64 65*f3ac6781SToomas SoomeLDLIBS += -L ../lib -lipf 66*f3ac6781SToomas Soome 67*f3ac6781SToomas SoomeLDLIBS += $(LIBBPF) 68*f3ac6781SToomas SoomeLDFLAGS += $(MAPFILE.NGB:%=-Wl,-M%) 69*f3ac6781SToomas Soome 70*f3ac6781SToomas SoomeCPPFLAGS += -I. -DIPFILTER_LOOKUP -DIPFILTER_LOG 71*f3ac6781SToomas Soome 72*f3ac6781SToomas Soomeipfstat.o := CPPFLAGS += -DSTATETOP 73*f3ac6781SToomas Soomeipfstat := LDLIBS += -lcurses 74*f3ac6781SToomas Soome 75*f3ac6781SToomas Soomeipf := LDLIBS += -lsocket -lnsl 76*f3ac6781SToomas Soomeipf := OBJS += $(IPF_OBJS) 77*f3ac6781SToomas Soomeipfs := OBJS += $(IPFS_OBJS) 78*f3ac6781SToomas Soomeipftest := LDLIBS += -lsocket -lnsl -lmd 79*f3ac6781SToomas Soomeipftest := OBJS += $(IPFTEST_OBJS) 80*f3ac6781SToomas Soomeipfstat := LDLIBS += -lsocket -lnsl -lkvm -lelf 81*f3ac6781SToomas Soomeipfstat := OBJS += $(IPFSTAT_OBJS) 82*f3ac6781SToomas Soomeipmon := LDLIBS += -lsocket -lnsl 83*f3ac6781SToomas Soomeipmon := OBJS += $(IPMON_OBJS) 84*f3ac6781SToomas Soomeipnat := LDLIBS += -lsocket -lnsl -lkvm -lelf 85*f3ac6781SToomas Soomeipnat := OBJS += $(IPNAT_OBJS) 86*f3ac6781SToomas Soomeippool := LDLIBS += -lsocket -lnsl -lkvm -lelf 87*f3ac6781SToomas Soomeippool := OBJS += $(IPPOOL_OBJS) 88*f3ac6781SToomas Soome 89*f3ac6781SToomas SoomeCLEANFILES += $(IPF_OBJS) $(IPFS_OBJS) $(IPFTEST_OBJS) $(IPFSTAT_OBJS) 90*f3ac6781SToomas SoomeCLEANFILES += $(IPMON_OBJS) $(IPNAT_OBJS) $(IPPOOL_OBJS) 91*f3ac6781SToomas SoomeCLOBBERFILES += $(IPFPROG) 92*f3ac6781SToomas Soome 93*f3ac6781SToomas SoomeROOTIPF= $(ROOTLIB)/ipf 94*f3ac6781SToomas Soome 95*f3ac6781SToomas SoomeROOTIPFPROG= $(IPFPROG:%=$(ROOTIPF)/%) 96*f3ac6781SToomas Soome 97*f3ac6781SToomas Soome.KEEP_STATE: 98*f3ac6781SToomas Soome 99*f3ac6781SToomas Soomeall: $(PROG) $(IPFPROG) 100*f3ac6781SToomas Soome 101*f3ac6781SToomas Soomeinstall: all install_local $(ROOTIPF) $(ROOTUSRSBINPROG) $(ROOTIPFPROG) 1027c478bd9Sstevel@tonic-gate 1037c478bd9Sstevel@tonic-gate$(USRLIBIPF): 1047c478bd9Sstevel@tonic-gate $(INS.dir) 1057c478bd9Sstevel@tonic-gate 1067c478bd9Sstevel@tonic-gate$(USRLIBIPF)/% : % 1077c478bd9Sstevel@tonic-gate $(INS.file) 1087c478bd9Sstevel@tonic-gate 109*f3ac6781SToomas Soome$(ROOTIPF)/%: % 110*f3ac6781SToomas Soome $(INS.file) 1117c478bd9Sstevel@tonic-gate 112*f3ac6781SToomas Soomeipf: $(IPF_OBJS) $(LIBIPF) $(MAPFILE.NGB) 113*f3ac6781SToomas Soome $(LINK.c) -o ipf $(IPF_OBJS) $(LDLIBS) 114*f3ac6781SToomas Soome $(POST_PROCESS) 1157c478bd9Sstevel@tonic-gate 116*f3ac6781SToomas Soomeipf_y.o: ipf_y.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h \ 117*f3ac6781SToomas Soome ipf_y.c ipf_l.h 118*f3ac6781SToomas Soome 119*f3ac6781SToomas Soomeipf_y.c ipf_y.h: ipf_y.y 120*f3ac6781SToomas Soome $(YACC) -d -b ipf ipf_y.y 121*f3ac6781SToomas Soome sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.c/' \ 122*f3ac6781SToomas Soome ipf.tab.c > ipf_y.c 123*f3ac6781SToomas Soome sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \ 124*f3ac6781SToomas Soome ipf.tab.h > ipf_y.h 125*f3ac6781SToomas Soome 126*f3ac6781SToomas SoomeCLEANFILES += ipf.tab.c ipf.tab.h 127*f3ac6781SToomas SoomeCLEANFILES += ipf_y.c ipf_y.h 128*f3ac6781SToomas Soome 129*f3ac6781SToomas Soomeipf_l.o: ipf_l.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h \ 130*f3ac6781SToomas Soome ipf_y.h ipf_l.h 131*f3ac6781SToomas Soome 132*f3ac6781SToomas Soomeipf_l.c: lexer.c $(COMMONIPF)/ipf.h $(COMMONIPF)/netinet/ip_fil.h 133*f3ac6781SToomas Soome sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \ 134*f3ac6781SToomas Soome -e 's/lexer.h/ipf_l.h/' lexer.c > $@ 135*f3ac6781SToomas Soome 136*f3ac6781SToomas Soomeipf_l.h: lexer.h 137*f3ac6781SToomas Soome sed -e 's/yy/ipf_yy/g' lexer.h > $@ 138*f3ac6781SToomas Soome 139*f3ac6781SToomas SoomeCLEANFILES += ipf_l.c ipf_l.h 140*f3ac6781SToomas Soome 141*f3ac6781SToomas Soomeipfs: $(IPFS_OBJS) 142*f3ac6781SToomas Soome $(LINK.c) -o ipfs $(IPFS_OBJS) $(LDLIBS) 143*f3ac6781SToomas Soome $(POST_PROCESS) 144*f3ac6781SToomas Soome 145*f3ac6781SToomas Soomeipfstat: $(IPFSTAT_OBJS) $(MAPFILE.NGB) 146*f3ac6781SToomas Soome $(LINK.c) -o ipfstat $(IPFSTAT_OBJS) $(LDLIBS) 147*f3ac6781SToomas Soome $(POST_PROCESS) 148*f3ac6781SToomas Soome 149*f3ac6781SToomas Soomeipmon: $(IPMON_OBJS) $(LIBIPF) $(MAPFILE.NGB) 150*f3ac6781SToomas Soome $(LINK.c) -o ipmon $(IPMON_OBJS) $(LDLIBS) 151*f3ac6781SToomas Soome $(POST_PROCESS) 152*f3ac6781SToomas Soome 153*f3ac6781SToomas Soomeipmon_y.o: ipmon_y.c $(COMMONIPF)/ipmon.h ipmon_y.h ipmon_l.h 154*f3ac6781SToomas Soome 155*f3ac6781SToomas Soomeipmon_y.c ipmon_y.h: ipmon_y.y 156*f3ac6781SToomas Soome $(YACC) -d -b ipmon ipmon_y.y 157*f3ac6781SToomas Soome sed -e 's/yy/ipmon_yy/g' \ 158*f3ac6781SToomas Soome -e 's/extern [a-z]* .*();//' \ 159*f3ac6781SToomas Soome -e 's/^\(static [a-z]* .*\)();/\1(void);/' \ 160*f3ac6781SToomas Soome ipmon.tab.c > ipmon_y.c 161*f3ac6781SToomas Soome sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \ 162*f3ac6781SToomas Soome ipmon.tab.h > ipmon_y.h 163*f3ac6781SToomas Soome 164*f3ac6781SToomas SoomeCLEANFILES += ipmon.tab.c ipmon.tab.h 165*f3ac6781SToomas SoomeCLEANFILES += ipmon_y.c ipmon_y.h 166*f3ac6781SToomas Soome 167*f3ac6781SToomas Soomeipmon_l.o: ipmon_l.c $(COMMONIPF)/ipmon.h ipmon_y.h ipmon_l.h 168*f3ac6781SToomas Soome 169*f3ac6781SToomas Soomeipmon_l.c: lexer.c $(COMMONIPF)/ipmon.h 170*f3ac6781SToomas Soome sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \ 171*f3ac6781SToomas Soome -e 's/lexer.h/ipmon_l.h/' lexer.c > $@ 172*f3ac6781SToomas Soome 173*f3ac6781SToomas Soomeipmon_l.h: lexer.h 174*f3ac6781SToomas Soome sed -e 's/yy/ipmon_yy/g' lexer.h > $@ 175*f3ac6781SToomas Soome 176*f3ac6781SToomas SoomeCLEANFILES += ipmon_l.c ipmon_l.h 177*f3ac6781SToomas Soome 178*f3ac6781SToomas Soomeipnat: $(IPNAT_OBJS) $(LIBIPF) $(MAPFILE.NGB) 179*f3ac6781SToomas Soome $(LINK.c) -o ipnat $(IPNAT_OBJS) $(LDLIBS) 180*f3ac6781SToomas Soome $(POST_PROCESS) 181*f3ac6781SToomas Soome 182*f3ac6781SToomas Soomeipnat_y.o: ipnat_y.c $(COMMONIPF)/netinet/ip_nat.h ipnat_y.h ipnat_l.h 183*f3ac6781SToomas Soome 184*f3ac6781SToomas Soomeipnat_y.c ipnat_y.h: ipnat_y.y 185*f3ac6781SToomas Soome $(YACC) -d -b ipnat ipnat_y.y 186*f3ac6781SToomas Soome sed -e 's/yy/ipnat_yy/g' \ 187*f3ac6781SToomas Soome -e 's/extern [a-z]* .*();//' \ 188*f3ac6781SToomas Soome -e 's/^\(static [a-z]* .*\)();/\1(void);/' \ 189*f3ac6781SToomas Soome ipnat.tab.c > ipnat_y.c 190*f3ac6781SToomas Soome sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \ 191*f3ac6781SToomas Soome ipnat.tab.h > ipnat_y.h 192*f3ac6781SToomas Soome 193*f3ac6781SToomas SoomeCLEANFILES += ipnat.tab.c ipnat.tab.h 194*f3ac6781SToomas SoomeCLEANFILES += ipnat_y.c ipnat_y.h 195*f3ac6781SToomas Soome 196*f3ac6781SToomas Soomeipnat_l.o: ipnat_l.c $(COMMONIPF)/netinet/ip_nat.h ipnat_l.h 197*f3ac6781SToomas Soome 198*f3ac6781SToomas Soomeipnat_l.c: lexer.c $(COMMONIPF)/netinet/ip_nat.h 199*f3ac6781SToomas Soome sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \ 200*f3ac6781SToomas Soome -e 's/lexer.h/ipnat_l.h/' lexer.c > $@ 201*f3ac6781SToomas Soome 202*f3ac6781SToomas Soomeipnat_l.h: lexer.h 203*f3ac6781SToomas Soome sed -e 's/yy/ipnat_yy/g' lexer.h > $@ 204*f3ac6781SToomas Soome 205*f3ac6781SToomas SoomeCLEANFILES += ipnat_l.c ipnat_l.h 206*f3ac6781SToomas Soome 207*f3ac6781SToomas Soomeippool: $(IPPOOL_OBJS) $(LIBIPF) $(MAPFILE.NGB) 208*f3ac6781SToomas Soome $(LINK.c) -o ippool $(IPPOOL_OBJS) $(LDLIBS) 209*f3ac6781SToomas Soome $(POST_PROCESS) 210*f3ac6781SToomas Soome 211*f3ac6781SToomas Soomeippool_y.o: ippool_y.c $(COMMONIPF)/netinet/ip_pool.h ippool_y.h ippool_l.h 212*f3ac6781SToomas Soome 213*f3ac6781SToomas Soomeippool_y.c ippool_y.h: ippool_y.y 214*f3ac6781SToomas Soome $(YACC) -d -b ippool ippool_y.y 215*f3ac6781SToomas Soome sed -e 's/yy/ippool_yy/g' \ 216*f3ac6781SToomas Soome -e 's/extern [a-z]* .*();//' \ 217*f3ac6781SToomas Soome -e 's/^\(static [a-z]* .*\)();/\1(void);/' \ 218*f3ac6781SToomas Soome ippool.tab.c > ippool_y.c 219*f3ac6781SToomas Soome sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \ 220*f3ac6781SToomas Soome ippool.tab.h > ippool_y.h 221*f3ac6781SToomas Soome 222*f3ac6781SToomas SoomeCLEANFILES += ippool.tab.c ippool.tab.h 223*f3ac6781SToomas SoomeCLEANFILES += ippool_y.c ippool_y.h 224*f3ac6781SToomas Soome 225*f3ac6781SToomas Soomeippool_l.o: ippool_l.c $(COMMONIPF)/netinet/ip_pool.h ippool_l.h 226*f3ac6781SToomas Soome 227*f3ac6781SToomas Soomeippool_l.c: lexer.c $(COMMONIPF)/netinet/ip_pool.h 228*f3ac6781SToomas Soome sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \ 229*f3ac6781SToomas Soome -e 's/lexer.h/ippool_l.h/' lexer.c > $@ 230*f3ac6781SToomas Soome 231*f3ac6781SToomas Soomeippool_l.h: lexer.h 232*f3ac6781SToomas Soome sed -e 's/yy/ippool_yy/g' lexer.h > $@ 233*f3ac6781SToomas Soome 234*f3ac6781SToomas SoomeCLEANFILES += ippool_l.c ippool_l.h 235*f3ac6781SToomas Soome 236*f3ac6781SToomas Soomeipftest: $(IPFTEST_OBJS) $(LIBIPF) $(MAPFILE.NGB) 237*f3ac6781SToomas Soome $(LINK.c) $(ZIGNORE) -o ipftest $(IPFTEST_OBJS) $(LDLIBS) 238*f3ac6781SToomas Soome $(POST_PROCESS) 239*f3ac6781SToomas Soome 240*f3ac6781SToomas Soomeclean: 241*f3ac6781SToomas Soome -$(RM) $(CLEANFILES) 242*f3ac6781SToomas Soome 243*f3ac6781SToomas Soome# 244*f3ac6781SToomas Soome# NOTE: all rules must use relative paths otherwise absolute paths will be 245*f3ac6781SToomas Soome# embedded into the binaries making them false positives and 246*f3ac6781SToomas Soome# reported by wsdiff 247*f3ac6781SToomas Soome# 248*f3ac6781SToomas Soome 249*f3ac6781SToomas Soome%.o: ../../../uts/common/inet/ipf/%.c 250*f3ac6781SToomas Soome $(COMPILE.c) $< 251*f3ac6781SToomas Soome $(POST_PROCESS_O) 252*f3ac6781SToomas Soome 253*f3ac6781SToomas Soome%.o: ../../../common/net/patricia/%.c 254*f3ac6781SToomas Soome $(COMPILE.c) $< 255*f3ac6781SToomas Soome $(POST_PROCESS_O) 2567c478bd9Sstevel@tonic-gate 257b6805bf7SGordon Rossinstall_local: $(USRLIBIPF) $(USRLIBIPFLICENCE) 2587c478bd9Sstevel@tonic-gate 259*f3ac6781SToomas Soomeinclude ../../Makefile.targ 260