xref: /titanic_53/usr/src/cmd/ipf/tools/Makefile.tools (revision b6805bf78d2bbbeeaea8909a05623587b42d58b3)
17c478bd9Sstevel@tonic-gate#
2f4b3ec61Sdh155122# CDDL HEADER START
3f4b3ec61Sdh155122#
4f4b3ec61Sdh155122# The contents of this file are subject to the terms of the
5f4b3ec61Sdh155122# Common Development and Distribution License (the "License").
6f4b3ec61Sdh155122# You may not use this file except in compliance with the License.
7f4b3ec61Sdh155122#
8f4b3ec61Sdh155122# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9f4b3ec61Sdh155122# or http://www.opensolaris.org/os/licensing.
10f4b3ec61Sdh155122# See the License for the specific language governing permissions
11f4b3ec61Sdh155122# and limitations under the License.
12f4b3ec61Sdh155122#
13f4b3ec61Sdh155122# When distributing Covered Code, include this CDDL HEADER in each
14f4b3ec61Sdh155122# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15f4b3ec61Sdh155122# If applicable, add the following below this CDDL HEADER, with the
16f4b3ec61Sdh155122# fields enclosed by brackets "[]" replaced with your own identifying
17f4b3ec61Sdh155122# information: Portions Copyright [yyyy] [name of copyright owner]
18f4b3ec61Sdh155122#
19f4b3ec61Sdh155122# CDDL HEADER END
20f4b3ec61Sdh155122#
21f4b3ec61Sdh155122#
2216070783SVladimir Kotal# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
237c478bd9Sstevel@tonic-gate# Use is subject to license terms.
247c478bd9Sstevel@tonic-gate#
25*b6805bf7SGordon Ross# Copyright 2013 Nexenta Systems, Inc.  All rights reserved.
26*b6805bf7SGordon Ross#
277c478bd9Sstevel@tonic-gate
287c478bd9Sstevel@tonic-gatePROG=		ipf ipfs ipmon ipnat ippool ipfstat
297c478bd9Sstevel@tonic-gateIPFPROG=	ipftest
307c478bd9Sstevel@tonic-gate
317c478bd9Sstevel@tonic-gateIPF_OBJS=	ipf.o ipfcomp.o ipf_y.o ipf_l.o
327c478bd9Sstevel@tonic-gateIPFS_OBJS=	ipfs.o
337c478bd9Sstevel@tonic-gateIPFSTAT_OBJS=	ipfstat.o
347c478bd9Sstevel@tonic-gateIPMON_OBJS=	ipmon.o ipmon_y.o ipmon_l.o
357c478bd9Sstevel@tonic-gateIPNAT_OBJS=	ipnat.o ipnat_y.o ipnat_l.o
367c478bd9Sstevel@tonic-gateIPPOOL_OBJS=	ippool.o ippool_y.o ippool_l.o
377c478bd9Sstevel@tonic-gateIPFTEST_OBJS=	ipftest.o  \
38d6c23f6fSyx160601		ip_fil.o ip_state.o ip_compat.o \
39d6c23f6fSyx160601		ip_frag.o ip_nat.o ip_nat6.o fil.o \
407c478bd9Sstevel@tonic-gate		ip_htable.o ip_lookup.o \
417c478bd9Sstevel@tonic-gate		ip_proxy.o ip_auth.o ip_log.o \
427c478bd9Sstevel@tonic-gate		ipf_y.o ipf_l.o \
437c478bd9Sstevel@tonic-gate		ipnat_y.o ipnat_l.o \
447c478bd9Sstevel@tonic-gate		ippool_y.o ippool_l.o \
457c478bd9Sstevel@tonic-gate		ip_pool.o radix.o
467c478bd9Sstevel@tonic-gate
477c478bd9Sstevel@tonic-gateOBJS=		$(IPF_OBJS) $(IPFS_OBJS) $(IPFSTAT_OBJS) \
48*b6805bf7SGordon Ross		$(IPMON_OBJS) $(IPNAT_OBJS) $(IPPOOL_OBJS) $(IPFTEST_OBJS)
497c478bd9Sstevel@tonic-gate
507c478bd9Sstevel@tonic-gateOBJSL=		$(IPF_OBJS) $(IPFS_OBJS) $(IPFSTAT_OBJS) \
517c478bd9Sstevel@tonic-gate		$(IPMON_OBJS) $(IPNAT_OBJS)
527c478bd9Sstevel@tonic-gate
537c478bd9Sstevel@tonic-gateSRCS=		$(OBJSL:%.o=../%.c)
547c478bd9Sstevel@tonic-gate
557c478bd9Sstevel@tonic-gateinclude ../../../Makefile.cmd
567c478bd9Sstevel@tonic-gateinclude ../../Makefile.ipf
577c478bd9Sstevel@tonic-gate
587c478bd9Sstevel@tonic-gateLDLIBS		+= $(LIBBPF)
5924da5b34SrieLDFLAGS		+= $(MAPFILE.NGB:%=-M%)
607c478bd9Sstevel@tonic-gate
617c478bd9Sstevel@tonic-gateCPPFLAGS	+= -I. -DIPFILTER_LOOKUP -DIPFILTER_LOG
627c478bd9Sstevel@tonic-gate
637c478bd9Sstevel@tonic-gateipfstat.o	:=	CPPFLAGS += -DSTATETOP
647c478bd9Sstevel@tonic-gateipfstat		:=	LDLIBS += -lcurses
657c478bd9Sstevel@tonic-gate
667c478bd9Sstevel@tonic-gateipf		:=	LDLIBS += -lsocket -lnsl
67734b6a94Sdarrenmipftest		:=	LDLIBS += -lsocket -lnsl -lmd
687c478bd9Sstevel@tonic-gateipfstat		:=	LDLIBS += -lsocket -lnsl -lkvm -lelf
697c478bd9Sstevel@tonic-gateipmon		:=	LDLIBS += -lsocket -lnsl
707c478bd9Sstevel@tonic-gateipnat		:=	LDLIBS += -lsocket -lnsl -lkvm -lelf
71f4b3ec61Sdh155122ippool		:=	LDLIBS += -lsocket -lnsl -lkvm -lelf
727c478bd9Sstevel@tonic-gate
737c478bd9Sstevel@tonic-gateCLEANFILES	+= $(OBJS)
74*b6805bf7SGordon RossCLOBBERFILES	+= $(IPFPROG)
757c478bd9Sstevel@tonic-gate
767c478bd9Sstevel@tonic-gateROOTIPF=	$(ROOTLIB)/ipf
777c478bd9Sstevel@tonic-gateROOTIPF32=	$(ROOTIPF)/$(MACH32)
787c478bd9Sstevel@tonic-gateROOTIPF64=	$(ROOTIPF)/$(MACH64)
797c478bd9Sstevel@tonic-gate
807c478bd9Sstevel@tonic-gateROOTIPFPROG32=	$(IPFPROG:%=$(ROOTIPF32)/%)
817c478bd9Sstevel@tonic-gateROOTIPFPROG64=	$(IPFPROG:%=$(ROOTIPF64)/%)
827c478bd9Sstevel@tonic-gate
837c478bd9Sstevel@tonic-gateROOTIPFLINKS=		$(IPFPROG:%=$(ROOTIPF)/%)
847c478bd9Sstevel@tonic-gateROOTUSRSBINLINKS=	$(PROG:%=$(ROOTUSRSBIN)/%)
857c478bd9Sstevel@tonic-gate
86*b6805bf7SGordon Rossall:
87*b6805bf7SGordon Ross
887c478bd9Sstevel@tonic-gate$(ROOTIPF32):
897c478bd9Sstevel@tonic-gate	$(INS.dir)
907c478bd9Sstevel@tonic-gate
917c478bd9Sstevel@tonic-gate$(ROOTIPF64):
927c478bd9Sstevel@tonic-gate	$(INS.dir)
937c478bd9Sstevel@tonic-gate
947c478bd9Sstevel@tonic-gate$(ROOTIPF)/%: %
957c478bd9Sstevel@tonic-gate	$(INS.file)
967c478bd9Sstevel@tonic-gate
977c478bd9Sstevel@tonic-gate$(ROOTIPF32)/%: %
987c478bd9Sstevel@tonic-gate	$(INS.file)
997c478bd9Sstevel@tonic-gate
1007c478bd9Sstevel@tonic-gate$(ROOTIPF64)/%: %
1017c478bd9Sstevel@tonic-gate	$(INS.file)
1027c478bd9Sstevel@tonic-gate
1037c478bd9Sstevel@tonic-gate$(ROOTUSRSBINLINKS): FRC
1047c478bd9Sstevel@tonic-gate	-$(RM) $@; $(LN) $(ISAEXEC) $@
1057c478bd9Sstevel@tonic-gate
1067c478bd9Sstevel@tonic-gate$(ROOTIPFLINKS): FRC
1077c478bd9Sstevel@tonic-gate	-$(RM) $@; $(LN) $(ISAEXEC) $@
1087c478bd9Sstevel@tonic-gate
1097c478bd9Sstevel@tonic-gate
1107c478bd9Sstevel@tonic-gate.KEEP_STATE:
1117c478bd9Sstevel@tonic-gate
11224da5b34Srieipf:	$(IPF_OBJS) $(LIBIPF) $(MAPFILE.NGB)
1137c478bd9Sstevel@tonic-gate	$(LINK.c) -o ipf $(IPF_OBJS) $(LDLIBS)
1147c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1157c478bd9Sstevel@tonic-gate
116ab25eeb5Syz155240ipf_y.o: ../ipf_y.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h \
1177c478bd9Sstevel@tonic-gate	../ipf_y.c ../ipf_l.h
1187c478bd9Sstevel@tonic-gate
1197c478bd9Sstevel@tonic-gate../ipf_y.c ../ipf_y.h: ../ipf_y.y
1207c478bd9Sstevel@tonic-gate	$(YACC) -d -b ipf ../ipf_y.y
1217c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.c/' \
1227c478bd9Sstevel@tonic-gate	   ipf.tab.c > ../ipf_y.c
1237c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \
1247c478bd9Sstevel@tonic-gate	   ipf.tab.h > ../ipf_y.h
1257c478bd9Sstevel@tonic-gate
126*b6805bf7SGordon RossCLEANFILES += ipf.tab.c ipf.tab.h
127*b6805bf7SGordon RossCLEANFILES += ../ipf_y.c ../ipf_y.h
128*b6805bf7SGordon Ross
129ab25eeb5Syz155240ipf_l.o: ../ipf_l.c $(COMMONIPF)/netinet/ip_fil.h $(COMMONIPF)/ipf.h  \
1307c478bd9Sstevel@tonic-gate	 ../ipf_y.h ../ipf_l.h
1317c478bd9Sstevel@tonic-gate	$(COMPILE.c) ../ipf_l.c -o $@
1327c478bd9Sstevel@tonic-gate
133ab25eeb5Syz155240../ipf_l.c: ../lexer.c $(COMMONIPF)/ipf.h $(COMMONIPF)/netinet/ip_fil.h
1347c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipf_yy/g' -e 's/y.tab.h/ipf_y.h/' \
1357c478bd9Sstevel@tonic-gate	       -e 's/lexer.h/ipf_l.h/' ../lexer.c > $@
1367c478bd9Sstevel@tonic-gate
1377c478bd9Sstevel@tonic-gate../ipf_l.h: ../lexer.h
1387c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipf_yy/g' ../lexer.h > $@
1397c478bd9Sstevel@tonic-gate
140*b6805bf7SGordon RossCLEANFILES += ../ipf_l.c ../ipf_l.h
141*b6805bf7SGordon Ross
142*b6805bf7SGordon Ross
1437c478bd9Sstevel@tonic-gateipfs:	$(IPFS_OBJS)
1447c478bd9Sstevel@tonic-gate	$(LINK.c) -o ipfs $(IPFS_OBJS) $(LDLIBS)
1457c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1467c478bd9Sstevel@tonic-gate
14724da5b34Srieipfstat:	$(IPFSTAT_OBJS) $(MAPFILE.NGB)
1487c478bd9Sstevel@tonic-gate	$(LINK.c) -o ipfstat $(IPFSTAT_OBJS) $(LDLIBS)
1497c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1507c478bd9Sstevel@tonic-gate
15124da5b34Srieipmon:	$(IPMON_OBJS) $(LIBIPF) $(MAPFILE.NGB)
1527c478bd9Sstevel@tonic-gate	$(LINK.c) -o ipmon $(IPMON_OBJS) $(LDLIBS)
1537c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1547c478bd9Sstevel@tonic-gate
1557c478bd9Sstevel@tonic-gateipmon_y.o: ../ipmon_y.c $(COMMONIPF)/ipmon.h \
1567c478bd9Sstevel@tonic-gate	../ipmon_y.h ../ipmon_l.h
1577c478bd9Sstevel@tonic-gate
1587c478bd9Sstevel@tonic-gate../ipmon_y.c ../ipmon_y.h: ../ipmon_y.y
1597c478bd9Sstevel@tonic-gate	$(YACC) -d -b ipmon ../ipmon_y.y
1607c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipmon_yy/g' \
1617c478bd9Sstevel@tonic-gate	    -e 's/extern [a-z]* .*();//' \
1627c478bd9Sstevel@tonic-gate	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
1637c478bd9Sstevel@tonic-gate	   ipmon.tab.c > ../ipmon_y.c
1647c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \
1657c478bd9Sstevel@tonic-gate	   ipmon.tab.h > ../ipmon_y.h
1667c478bd9Sstevel@tonic-gate
167*b6805bf7SGordon RossCLEANFILES += ipmon.tab.c ipmon.tab.h
168*b6805bf7SGordon RossCLEANFILES += ../ipmon_y.c ../ipmon_y.h
169*b6805bf7SGordon Ross
1707c478bd9Sstevel@tonic-gateipmon_l.o: ../ipmon_l.c $(COMMONIPF)/ipmon.h ../ipmon_y.h ../ipmon_l.h
1717c478bd9Sstevel@tonic-gate	$(COMPILE.c) ../ipmon_l.c -o $@
1727c478bd9Sstevel@tonic-gate
1737c478bd9Sstevel@tonic-gate../ipmon_l.c: ../lexer.c $(COMMONIPF)/ipmon.h
1747c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipmon_yy/g' -e 's/y.tab.h/ipmon_y.h/' \
1757c478bd9Sstevel@tonic-gate            -e 's/lexer.h/ipmon_l.h/' ../lexer.c > $@
1767c478bd9Sstevel@tonic-gate
1777c478bd9Sstevel@tonic-gate../ipmon_l.h: ../lexer.h
1787c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipmon_yy/g' ../lexer.h > $@
1797c478bd9Sstevel@tonic-gate
180*b6805bf7SGordon RossCLEANFILES += ../ipmon_l.c ../ipmon_l.h
181*b6805bf7SGordon Ross
18224da5b34Srieipnat:	$(IPNAT_OBJS) $(LIBIPF) $(MAPFILE.NGB)
1837c478bd9Sstevel@tonic-gate	$(LINK.c) -o ipnat $(IPNAT_OBJS) $(LDLIBS)
1847c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
1857c478bd9Sstevel@tonic-gate
186ab25eeb5Syz155240ipnat_y.o: ../ipnat_y.c $(COMMONIPF)/netinet/ip_nat.h \
1877c478bd9Sstevel@tonic-gate	../ipnat_y.h ../ipnat_l.h
1887c478bd9Sstevel@tonic-gate
1897c478bd9Sstevel@tonic-gate../ipnat_y.c ../ipnat_y.h: ../ipnat_y.y
1907c478bd9Sstevel@tonic-gate	$(YACC) -d -b ipnat ../ipnat_y.y
1917c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipnat_yy/g' \
1927c478bd9Sstevel@tonic-gate	    -e 's/extern [a-z]* .*();//' \
1937c478bd9Sstevel@tonic-gate	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
1947c478bd9Sstevel@tonic-gate	   ipnat.tab.c > ../ipnat_y.c
1957c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \
1967c478bd9Sstevel@tonic-gate	   ipnat.tab.h > ../ipnat_y.h
1977c478bd9Sstevel@tonic-gate
198*b6805bf7SGordon RossCLEANFILES += ipnat.tab.c ipnat.tab.h
199*b6805bf7SGordon RossCLEANFILES += ../ipnat_y.c ../ipnat_y.h
200*b6805bf7SGordon Ross
201ab25eeb5Syz155240ipnat_l.o: ../ipnat_l.c $(COMMONIPF)/netinet/ip_nat.h ../ipnat_l.h
2027c478bd9Sstevel@tonic-gate	$(COMPILE.c) ../ipnat_l.c -o $@
2037c478bd9Sstevel@tonic-gate
204ab25eeb5Syz155240../ipnat_l.c: ../lexer.c $(COMMONIPF)/netinet/ip_nat.h
2057c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipnat_yy/g' -e 's/y.tab.h/ipnat_y.h/' \
2067c478bd9Sstevel@tonic-gate	       -e 's/lexer.h/ipnat_l.h/' ../lexer.c > $@
2077c478bd9Sstevel@tonic-gate
2087c478bd9Sstevel@tonic-gate../ipnat_l.h: ../lexer.h
2097c478bd9Sstevel@tonic-gate	sed -e 's/yy/ipnat_yy/g' ../lexer.h > $@
2107c478bd9Sstevel@tonic-gate
211*b6805bf7SGordon RossCLEANFILES += ../ipnat_l.c ../ipnat_l.h
212*b6805bf7SGordon Ross
21324da5b34Srieippool:	$(IPPOOL_OBJS) $(LIBIPF) $(MAPFILE.NGB)
2147c478bd9Sstevel@tonic-gate	$(LINK.c) -o ippool $(IPPOOL_OBJS) $(LDLIBS)
2157c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
2167c478bd9Sstevel@tonic-gate
217ab25eeb5Syz155240ippool_y.o: ../ippool_y.c $(COMMONIPF)/netinet/ip_pool.h \
2187c478bd9Sstevel@tonic-gate	../ippool_y.h ../ippool_l.h
2197c478bd9Sstevel@tonic-gate
2207c478bd9Sstevel@tonic-gate../ippool_y.c ../ippool_y.h: ../ippool_y.y
2217c478bd9Sstevel@tonic-gate	$(YACC) -d -b ippool ../ippool_y.y
2227c478bd9Sstevel@tonic-gate	sed -e 's/yy/ippool_yy/g' \
2237c478bd9Sstevel@tonic-gate	    -e 's/extern [a-z]* .*();//' \
2247c478bd9Sstevel@tonic-gate	    -e 's/^\(static [a-z]* .*\)();/\1(void);/' \
2257c478bd9Sstevel@tonic-gate	   ippool.tab.c > ../ippool_y.c
2267c478bd9Sstevel@tonic-gate	sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \
2277c478bd9Sstevel@tonic-gate	   ippool.tab.h > ../ippool_y.h
2287c478bd9Sstevel@tonic-gate
229*b6805bf7SGordon RossCLEANFILES += ippool.tab.c ippool.tab.h
230*b6805bf7SGordon RossCLEANFILES += ../ippool_y.c ../ippool_y.h
231*b6805bf7SGordon Ross
232ab25eeb5Syz155240ippool_l.o: ../ippool_l.c $(COMMONIPF)/netinet/ip_pool.h ../ippool_l.h
2337c478bd9Sstevel@tonic-gate	$(COMPILE.c) ../ippool_l.c -o $@
2347c478bd9Sstevel@tonic-gate
235ab25eeb5Syz155240../ippool_l.c: ../lexer.c $(COMMONIPF)/netinet/ip_pool.h
2367c478bd9Sstevel@tonic-gate	sed -e 's/yy/ippool_yy/g' -e 's/y.tab.h/ippool_y.h/' \
2377c478bd9Sstevel@tonic-gate	       -e 's/lexer.h/ippool_l.h/' ../lexer.c > $@
2387c478bd9Sstevel@tonic-gate
2397c478bd9Sstevel@tonic-gate../ippool_l.h: ../lexer.h
2407c478bd9Sstevel@tonic-gate	sed -e 's/yy/ippool_yy/g' ../lexer.h > $@
2417c478bd9Sstevel@tonic-gate
242*b6805bf7SGordon RossCLEANFILES += ../ippool_l.c ../ippool_l.h
243*b6805bf7SGordon Ross
24424da5b34Srieipftest:	$(IPFTEST_OBJS) $(LIBIPF) $(MAPFILE.NGB)
24524da5b34Srie	$(LINK.c) $(ZIGNORE) -o ipftest $(IPFTEST_OBJS) $(LDLIBS)
2467c478bd9Sstevel@tonic-gate	$(POST_PROCESS)
2477c478bd9Sstevel@tonic-gate
2487c478bd9Sstevel@tonic-gateclean:
2497c478bd9Sstevel@tonic-gate	-$(RM) $(CLEANFILES)
2507c478bd9Sstevel@tonic-gate
2517c478bd9Sstevel@tonic-gatelint: 	lint_SRCS
2527c478bd9Sstevel@tonic-gate
25316070783SVladimir Kotal#
25416070783SVladimir Kotal# NOTE: all rules must use relative paths otherwise absolute paths will be
25516070783SVladimir Kotal#       embedded into the binaries making them false positives and
25616070783SVladimir Kotal#       reported by wsdiff
25716070783SVladimir Kotal#
25816070783SVladimir Kotal
25916070783SVladimir Kotal%.o:	../../../../uts/common/inet/ipf/%.c
2607c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
2617c478bd9Sstevel@tonic-gate
2627c478bd9Sstevel@tonic-gate%.o:	../%.c
2637c478bd9Sstevel@tonic-gate	$(COMPILE.c) $<
2647c478bd9Sstevel@tonic-gate
26516070783SVladimir Kotal%.o:	../../../../common/net/patricia/%.c
266c793af95Ssangeeta	$(COMPILE.c) $<
267c793af95Ssangeeta
2687c478bd9Sstevel@tonic-gateinclude ../../../Makefile.targ
2697c478bd9Sstevel@tonic-gate
2707c478bd9Sstevel@tonic-gateFRC:
271