2 # Copyright (C) 1993-1998 by Darren Reed.
4 # Redistribution and use in source and binary forms are permitted
5 # provided that this notice is preserved and due credit is given
6 # to the original author and the contributors.
10 SEARCHDIRS
=$(BINDEST
) $(SBINDEST
) /bin
/usr
/bin
/sbin
/usr
/sbin \
11 /usr
/local
/bin
/usr
/local
/sbin
13 CC
=cc -Wall
-Wstrict-prototypes
-Wuninitialized
-O
18 DEVFS
!=/usr
/bin
/lsvfs
2>&1 | sed
-n
's/.*devfs.*/-DDEVFS/p'
20 INC
=-I
/usr
/include -I
/sys
-I
/sys
/sys
-I
/sys
/arch
21 DEF
=-D
$(CPU
) -D__
$(CPU
)__
-DINET
-DKERNEL
-D_KERNEL
$(INC
) $(DEVFS
)
22 IPDEF
=$(DEF
) -DGATEWAY
-DDIRECTED_BROADCAST
29 MFLAGS
="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \
30 'CFLAGS=$(CFLAGS) $(SOLARIS2)' "IPFLKM=$(IPFLKM)" \
31 "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \
32 "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \
35 ########## ########## ########## ########## ########## ########## ##########
42 MODOBJS
=ip_fil.o fil_k.o ml_ipl.o ip_nat.o ip_frag.o ip_state.o ip_proxy.o \
44 DFLAGS
=$(IPFLKM
) $(DEF
) $(DLKM
)
45 IPF
=ipf.o parse.o common.o opt.o facpri.o
46 IPT
=ipt.o parse.o common.o fil.o ipft_sn.o ipft_ef.o ipft_td.o ipft_pc.o \
47 opt.o ipft_tx.o misc.o ip_frag_u.o ip_state_u.o ip_nat_u.o ip_proxy_u.o \
48 ip_auth_u.o ipft_hx.o ip_fil_u.o ip_log_u.o natparse.o facpri.o \
49 printnat.o printstate.o
50 IPNAT
=ipnat.o kmem.o natparse.o common.o printnat.o
51 FILS
=fils.o parse.o kmem.o opt.o facpri.o common.o printstate.o
53 build
all: ipf ipfs ipfstat ipftest ipmon ipnat
$(LKM
)
55 ln
-s
`pwd`/ipf
$(TOP
)
56 /bin
/rm -f
$(TOP
)/ipftest
57 ln
-s
`pwd`/ipftest
$(TOP
)
58 /bin
/rm -f
$(TOP
)/ipmon
59 ln
-s
`pwd`/ipmon
$(TOP
)
60 /bin
/rm -f
$(TOP
)/ipnat
61 ln
-s
`pwd`/ipnat
$(TOP
)
64 $(CC
) -static
$(DEBUG
) $(CFLAGS
) $(STATETOP_CFLAGS
) $(STATETOP_INC
) \
65 $(FILS
) -o
$@
$(LIBS
) $(STATETOP_LIB
) -lkvm
68 $(CC
) -static
$(DEBUG
) $(CFLAGS
) $(IPF
) -o
$@
$(LIBS
)
71 $(CC
) $(DEBUG
) $(CFLAGS
) $(IPT
) -o
$@
$(LIBS
)
74 $(CC
) -static
$(DEBUG
) $(CFLAGS
) $(IPNAT
) -o
$@
$(LIBS
) -lkvm
77 $(CC
) -static
$(DEBUG
) $(CFLAGS
) ipfs.o
-o
$@
$(LIBS
)
82 fils.o
: $(TOP
)/fils.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_frag.h \
83 $(TOP
)/ip_compat.h
$(TOP
)/ip_state.h
$(TOP
)/ip_nat.h
84 $(CC
) $(DEBUG
) $(CFLAGS
) $(STATETOP_CFLAGS
) $(STATETOP_INC
) \
85 -c
$(TOP
)/fils.c
-o
$@
87 ipfs.o
: $(TOP
)/ipfs.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_state.h \
89 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipfs.c
-o
$@
91 fil.o
: $(TOP
)/fil.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_compat.h
92 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/fil.c
-o
$@
94 fil_k.o
: $(TOP
)/fil.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_compat.h \
96 $(CC
) $(DEBUG
) $(CFLAGS
) $(POLICY
) $(DFLAGS
) -c
$(TOP
)/fil.c
-o
$@
98 ipf.o
: $(TOP
)/ipf.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
99 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipf.c
-o
$@
101 ipt.o
: $(TOP
)/ipt.c
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
$(TOP
)/ipf.h
102 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipt.c
-o
$@
104 misc.o
: $(TOP
)/misc.c
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
$(TOP
)/ipf.h
105 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/misc.c
-o
$@
107 opt.o
: $(TOP
)/opt.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
108 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/opt.c
-o
$@
110 ipnat.o
: $(TOP
)/ipnat.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_nat.h
111 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipnat.c
-o
$@
113 natparse.o
: $(TOP
)/natparse.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_nat.h \
115 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/natparse.c
-o
$@
117 printnat.o
: $(TOP
)/printnat.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h
$(TOP
)/ip_nat.h \
118 $(TOP
)/ip_compat.h
$(TOP
)/ip_proxy.h
119 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/printnat.c
-o
$@
121 printstate.o
: $(TOP
)/printstate.c
$(TOP
)/ip_fil.h
$(TOP
)/ipf.h \
122 $(TOP
)/ip_state.h
$(TOP
)/ip_compat.h
123 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/printstate.c
-o
$@
125 ipft_sn.o
: $(TOP
)/ipft_sn.c
$(TOP
)/ipt.h
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h \
127 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_sn.c
-o
$@
129 ipft_ef.o
: $(TOP
)/ipft_ef.c
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
130 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_ef.c
-o
$@
132 ipft_td.o
: $(TOP
)/ipft_td.c
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
133 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_td.c
-o
$@
135 ipft_pc.o
: $(TOP
)/ipft_pc.c
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
136 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_pc.c
-o
$@
138 ipft_tx.o
: $(TOP
)/ipft_tx.c
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
139 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_tx.c
-o
$@
141 ipft_hx.o
: $(TOP
)/ipft_hx.c
$(TOP
)/ipf.h
$(TOP
)/ip_fil.h
$(TOP
)/ipt.h
142 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ipft_hx.c
-o
$@
144 ip_nat_u.o
: $(TOP
)/ip_nat.c
$(TOP
)/ip_nat.h
$(TOP
)/ip_compat.h
$(TOP
)/ip_fil.h
145 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_nat.c
-o
$@
147 ip_proxy_u.o
: $(TOP
)/ip_proxy.c
$(TOP
)/ip_proxy.h
$(TOP
)/ip_compat.h \
148 $(TOP
)/ip_fil.h
$(TOP
)/ip_ftp_pxy.c
$(TOP
)/ip_rcmd_pxy.c \
149 $(TOP
)/ip_raudio_pxy.c
$(TOP
)/ip_ipsec_pxy.c
$(TOP
)/ip_nat.h
150 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_proxy.c
-o
$@
152 ip_frag_u.o
: $(TOP
)/ip_frag.c
$(TOP
)/ip_frag.h
$(TOP
)/ip_compat.h \
154 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_frag.c
-o
$@
156 ip_state_u.o
: $(TOP
)/ip_state.c
$(TOP
)/ip_state.h
$(TOP
)/ip_compat.h \
157 $(TOP
)/ip_fil.h
$(TOP
)/ip_nat.h
158 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_state.c
-o
$@
160 ip_auth_u.o
: $(TOP
)/ip_auth.c
$(TOP
)/ip_auth.h
$(TOP
)/ip_compat.h \
162 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_auth.c
-o
$@
164 ip_fil_u.o
: $(TOP
)/$(IPFILC
) $(TOP
)/ip_fil.h
$(TOP
)/ip_compat.h
165 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/$(IPFILC
) -o
$@
167 ip_log_u.o
: $(TOP
)/ip_log.c
$(TOP
)/ip_fil.h
$(TOP
)/ip_compat.h
168 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/ip_log.c
-o
$@
171 ld -r
$(MODOBJS
) -o
$(LKM
)
174 ipf.ko ipl.ko
: $(MODOBJS
)
175 gensetdefs
$(MODOBJS
)
176 $(CC
) $(DEBUG
) $(CFLAGS
) -c setdef0.c
177 $(CC
) $(DEBUG
) $(CFLAGS
) -c setdef1.c
178 ld -Bshareable
-o
$(LKM
) setdef0.o
$(MODOBJS
) setdef1.o
180 ip_nat.o
: $(TOP
)/ip_nat.c
$(TOP
)/ip_nat.h
$(TOP
)/ip_compat.h
$(TOP
)/ip_fil.h
181 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_nat.c
-o
$@
183 ip_frag.o
: $(TOP
)/ip_frag.c
$(TOP
)/ip_frag.h
$(TOP
)/ip_compat.h
$(TOP
)/ip_fil.h
184 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_frag.c
-o
$@
186 ip_state.o
: $(TOP
)/ip_state.c
$(TOP
)/ip_state.h
$(TOP
)/ip_compat.h \
187 $(TOP
)/ip_fil.h
$(TOP
)/ip_nat.h
188 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_state.c
-o
$@
190 ip_proxy.o
: $(TOP
)/ip_proxy.c
$(TOP
)/ip_proxy.h
$(TOP
)/ip_compat.h \
191 $(TOP
)/ip_fil.h
$(TOP
)/ip_ftp_pxy.c
$(TOP
)/ip_raudio_pxy.c \
192 $(TOP
)/ip_rcmd_pxy.c
$(TOP
)/ip_ipsec_pxy.c
$(TOP
)/ip_nat.h
193 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_proxy.c
-o
$@
195 ip_auth.o
: $(TOP
)/ip_auth.c
$(TOP
)/ip_auth.h
$(TOP
)/ip_compat.h \
197 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_auth.c
-o
$@
199 ip_fil.o
: $(TOP
)/$(IPFILC
) $(TOP
)/ip_fil.h
$(TOP
)/ip_compat.h
$(TOP
)/ip_nat.h
200 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/$(IPFILC
) -o
$@
202 ip_log.o
: $(TOP
)/ip_log.c
$(TOP
)/ip_compat.h
$(TOP
)/ip_fil.h
203 $(CC
) $(DEBUG
) $(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/ip_log.c
-o
$@
205 vnode_if.h
: $(VNODESHDIR
)/vnode_if.sh
$(VNODESHDIR
)/vnode_if.src
207 sh
$(VNODESHDIR
)/vnode_if.sh
$(VNODESHDIR
)/vnode_if.src
208 if
[ -f ..
/sys
/vnode_if.h
] ; then mv ..
/sys
/vnode_if.h .
; fi
211 ml_ipl.o
: $(TOP
)/$(MLD
) $(TOP
)/ipl.h
212 -/bin
/rm -f vnode_if.c
213 $(CC
) -I.
$(CFLAGS
) $(DFLAGS
) -c
$(TOP
)/$(ML
) -o
$@
215 kmem.o
: $(TOP
)/kmem.c
216 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/kmem.c
-o
$@
218 parse.o
: $(TOP
)/parse.c
$(TOP
)/ip_fil.h
219 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/parse.c
-o
$@
221 common.o
: $(TOP
)/common.c
$(TOP
)/ip_fil.h
222 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/common.c
-o
$@
224 facpri.o
: $(TOP
)/facpri.c
$(TOP
)/facpri.h
225 $(CC
) $(DEBUG
) $(CFLAGS
) -c
$(TOP
)/facpri.c
-o
$@
227 ipmon
: $(TOP
)/ipmon.c
228 $(CC
) $(DEBUG
) $(CFLAGS
) $(LOGFAC
) $(TOP
)/ipmon.c
-o
$@
$(LIBS
)
231 ${RM} -f
*.core
*.o ipt fils ipf ipfstat ipftest ipmon if_ipl ipnat \
232 vnode_if.h
$(LKM
) ioconf.h
*.ko setdef1.c setdef0.c setdefs.h \
233 y.tab.?
lex.yy.c ipfs
234 ${RM} -f ..
/opt_inet6.h ..
/ipftest ..
/ipmon ..
/ipf ..
/ipnat
236 ${MAKE} -f Makefile.ipsend
${MFLAGS} clean
238 if
[ -d
$${i} -a
-f
$${i}/Makefile
] ; then \
239 cd
$${i}; (make
clean); cd ..
; \
240 rm $${i}/Makefile
$${i}/Makefile.ipsend
; \
246 for i in ip_compat.h ip_fil.h ip_nat.h ip_state.h ip_proxy.h \
247 ip_frag.h ip_auth.h
; do \
248 /bin
/cp
$(TOP
)/$$i /usr
/include/netinet
/; \
249 $(CHMOD
) 444 /usr
/include/netinet
/$$i; \
251 -if
[ -d
/lkm
-a
-f if_ipl.o
] ; then \
254 -if
[ -d
/modules
-a
-f ipf.ko
] ; then \
255 cp ipf.ko
/modules
; \
257 @for i in ipf
:$(SBINDEST
) ipfs
:$(SBINDEST
) ipnat
:$(SBINDEST
) \
258 ipfstat
:$(SBINDEST
) ipftest
:$(SBINDEST
) ipmon
:$(BINDEST
); do \
259 def
="`expr $$i : '[^:]*:\(.*\)'`"; \
260 p
="`expr $$i : '\([^:]*\):.*'`"; \
261 for d in
$(SEARCHDIRS
); do \
262 if
[ -f
$$d/$$p ] ; then \
263 echo
"$(INSTALL) -cs -g wheel -m 755 -o root $$p $$d"; \
264 $(INSTALL
) -cs
-g wheel
-m
755 -o root
$$p $$d; \
268 if
[ -z
"$$dd" ] ; then \
269 echo
$(INSTALL
) -cs
-g wheel
-m
755 -o root
$$p $$def; \
270 $(INSTALL
) -cs
-g wheel
-m
755 -o root
$$p $$def; \
273 (cd
$(TOP
)/man
; make INSTALL
=$(INSTALL
) MANDIR
=$(MANDIR
) install; cd
$(TOP
))