blob: eb27a7a9934b6020fa578aa3a81321b081cb7258 [file] [log] [blame]
The Android Open Source Project2949f582009-03-03 19:30:46 -08001# Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
2# The Regents of the University of California. All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that: (1) source code distributions
6# retain the above copyright notice and this paragraph in its entirety, (2)
7# distributions including binary code include the above copyright notice and
8# this paragraph in its entirety in the documentation or other materials
9# provided with the distribution, and (3) all advertising materials mentioning
10# features or use of this software display the following acknowledgement:
11# ``This product includes software developed by the University of California,
12# Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
13# the University nor the names of its contributors may be used to endorse
14# or promote products derived from this software without specific prior
15# written permission.
16# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19#
JP Abgrall53f17a92014-02-12 14:02:41 -080020# @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.325 2008-11-21 23:17:26 guy Exp $ (LBL)
The Android Open Source Project2949f582009-03-03 19:30:46 -080021
22#
23# Various configurable paths (remember to edit Makefile.in, not Makefile)
24#
25
26# Top level hierarchy
27prefix = @prefix@
28exec_prefix = @exec_prefix@
JP Abgrall53f17a92014-02-12 14:02:41 -080029datarootdir = @datarootdir@
The Android Open Source Project2949f582009-03-03 19:30:46 -080030# Pathname of directory to install the binary
31sbindir = @sbindir@
32# Pathname of directory to install the man page
33mandir = @mandir@
34
35# VPATH
36srcdir = @srcdir@
37VPATH = @srcdir@
38
39#
40# You shouldn't need to edit anything below here.
41#
42
43CC = @CC@
JP Abgrall53f17a92014-02-12 14:02:41 -080044MKDEP = @MKDEP@
The Android Open Source Project2949f582009-03-03 19:30:46 -080045PROG = tcpdump
46CCOPT = @V_CCOPT@
47INCLS = -I. @V_INCLS@
48DEFS = @DEFS@ @CPPFLAGS@ @V_DEFS@
49
50# Standard CFLAGS
JP Abgrall53f17a92014-02-12 14:02:41 -080051CFLAGS = @CFLAGS@
52FULL_CFLAGS = $(CCOPT) $(DEFS) $(INCLS) $(CFLAGS)
The Android Open Source Project2949f582009-03-03 19:30:46 -080053
54# Standard LDFLAGS
55LDFLAGS = @LDFLAGS@
56
57# Standard LIBS
58LIBS = @LIBS@
59
60INSTALL = @INSTALL@
61INSTALL_PROGRAM = @INSTALL_PROGRAM@
62INSTALL_DATA = @INSTALL_DATA@
JP Abgrall53f17a92014-02-12 14:02:41 -080063RANLIB = @RANLIB@
64
65DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
The Android Open Source Project2949f582009-03-03 19:30:46 -080066
67# Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
68# Also, gcc does not remove the .o before forking 'as', which can be a
69# problem if you don't own the file but can write to the directory.
70.c.o:
71 @rm -f $@
JP Abgrall53f17a92014-02-12 14:02:41 -080072 $(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
The Android Open Source Project2949f582009-03-03 19:30:46 -080073
JP Abgrall53f17a92014-02-12 14:02:41 -080074CSRC = addrtoname.c af.c checksum.c cpack.c gmpls.c oui.c gmt2local.c ipproto.c \
75 nlpid.c l2vpn.c machdep.c parsenfsfh.c in_cksum.c \
76 print-802_11.c print-802_15_4.c print-ap1394.c print-ah.c \
77 print-arcnet.c print-aodv.c print-arp.c print-ascii.c print-atalk.c \
78 print-atm.c print-beep.c print-bfd.c print-bgp.c \
79 print-bootp.c print-bt.c print-calm-fast.c print-carp.c print-cdp.c print-cfm.c \
The Android Open Source Project2949f582009-03-03 19:30:46 -080080 print-chdlc.c print-cip.c print-cnfp.c print-dccp.c print-decnet.c \
JP Abgrall53f17a92014-02-12 14:02:41 -080081 print-domain.c print-dtp.c print-dvmrp.c print-enc.c print-egp.c \
The Android Open Source Project2949f582009-03-03 19:30:46 -080082 print-eap.c print-eigrp.c\
JP Abgrall53f17a92014-02-12 14:02:41 -080083 print-esp.c print-ether.c print-fddi.c print-forces.c print-fr.c \
84 print-geonet.c print-gre.c print-hsrp.c print-icmp.c print-igmp.c \
85 print-igrp.c print-ip.c print-ipcomp.c print-ipfc.c print-ipnet.c \
86 print-ipx.c print-isoclns.c print-juniper.c print-krb.c \
87 print-l2tp.c print-lane.c print-ldp.c print-lldp.c print-llc.c \
88 print-lmp.c print-lspping.c print-lwapp.c \
89 print-lwres.c print-mobile.c print-mpcp.c print-mpls.c print-mptcp.c print-msdp.c \
90 print-msnlb.c print-nflog.c print-nfs.c print-ntp.c print-null.c \
91 print-olsr.c print-openflow.c print-openflow-1.0.c print-ospf.c \
92 print-pgm.c print-pim.c \
93 print-ppi.c print-ppp.c print-pppoe.c print-pptp.c \
94 print-radius.c print-raw.c print-rip.c print-rpki-rtr.c print-rrcp.c print-rsvp.c \
95 print-rx.c print-sctp.c print-sflow.c print-sip.c print-sl.c print-sll.c \
The Android Open Source Project2949f582009-03-03 19:30:46 -080096 print-slow.c print-snmp.c print-stp.c print-sunatm.c print-sunrpc.c \
97 print-symantec.c print-syslog.c print-tcp.c print-telnet.c print-tftp.c \
JP Abgrall53f17a92014-02-12 14:02:41 -080098 print-timed.c print-tipc.c print-token.c print-udld.c print-udp.c \
99 print-usb.c print-vjc.c print-vqp.c print-vrrp.c print-vtp.c \
100 print-wb.c print-zephyr.c print-zeromq.c print-vxlan.c print-otv.c signature.c setsignal.c tcpdump.c util.c
101
102LIBNETDISSECT_SRC=print-isakmp.c
103LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o)
104LIBNETDISSECT=libnetdissect.a
The Android Open Source Project2949f582009-03-03 19:30:46 -0800105
106LOCALSRC = @LOCALSRC@
107GENSRC = version.c
108LIBOBJS = @LIBOBJS@
109
JP Abgrall53f17a92014-02-12 14:02:41 -0800110SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC)
The Android Open Source Project2949f582009-03-03 19:30:46 -0800111
112# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
113# hack the extra indirection
JP Abgrall53f17a92014-02-12 14:02:41 -0800114OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) $(LOCALSRC:.c=.o) $(LIBOBJS) $(LIBNETDISSECT_OBJ)
115HDR = \
116 addrtoname.h \
117 af.h \
118 ah.h \
119 aodv.h \
120 appletalk.h \
121 arcnet.h \
122 atm.h \
123 atmuni31.h \
124 bootp.h \
125 bgp.h \
126 chdlc.h \
127 cpack.h \
128 dccp.h \
129 decnet.h \
130 decode_prefix.h \
131 enc.h \
132 esp.h \
133 ether.h \
134 ethertype.h \
135 extract.h \
136 fddi.h \
137 gmpls.h \
138 gmt2local.h \
139 icmp6.h \
140 ieee802_11.h \
141 ieee802_11_radio.h \
142 igrp.h \
143 interface.h \
144 interface.h \
145 ip.h \
146 ip6.h \
147 ipfc.h \
148 ipnet.h \
149 ipproto.h \
150 ipsec_doi.h \
151 ipx.h \
152 isakmp.h \
153 l2tp.h \
154 l2vpn.h \
155 lane.h \
156 llc.h \
157 machdep.h \
158 mib.h \
159 mpls.h \
160 mptcp.h \
161 nameser.h \
162 netbios.h \
163 netdissect.h \
164 nfs.h \
165 nfsfh.h \
166 nlpid.h \
167 ntp.h \
168 oakley.h \
169 openflow.h \
170 ospf.h \
171 ospf6.h \
172 oui.h \
173 pcap-missing.h \
174 pmap_prot.h \
175 ppi.h \
176 ppp.h \
177 route6d.h \
178 rpc_auth.h \
179 rpc_msg.h \
180 rx.h \
181 sctpConstants.h \
182 sctpHeader.h \
The Android Open Source Project2949f582009-03-03 19:30:46 -0800183 setsignal.h \
JP Abgrall53f17a92014-02-12 14:02:41 -0800184 signature.h \
185 slcompress.h \
186 slip.h \
187 sll.h \
188 smb.h \
189 tcp.h \
190 tcpdump-stdinc.h \
191 telnet.h \
192 tftp.h \
193 timed.h \
194 token.h \
195 udp.h
The Android Open Source Project2949f582009-03-03 19:30:46 -0800196
197TAGHDR = \
198 /usr/include/arpa/tftp.h \
199 /usr/include/net/if_arp.h \
200 /usr/include/net/slip.h \
201 /usr/include/netinet/if_ether.h \
202 /usr/include/netinet/in.h \
203 /usr/include/netinet/ip_icmp.h \
204 /usr/include/netinet/tcp.h \
205 /usr/include/netinet/udp.h \
206 /usr/include/protocols/routed.h
207
208TAGFILES = $(SRC) $(HDR) $(TAGHDR)
209
210CLEANFILES = $(PROG) $(OBJ) $(GENSRC)
211
JP Abgrall53f17a92014-02-12 14:02:41 -0800212EXTRA_DIST = \
213 CHANGES \
214 CREDITS \
215 INSTALL.txt \
216 LICENSE \
217 Makefile.in \
218 Makefile-devel-adds \
219 README.md \
220 Readme.Win32 \
221 VERSION \
222 aclocal.m4 \
223 atime.awk \
224 bpf_dump.c \
225 config.guess \
226 config.h.in \
227 config.sub \
228 configure \
229 configure.in \
230 install-sh \
231 lbl/os-osf4.h \
232 lbl/os-solaris2.h \
233 lbl/os-sunos4.h \
234 lbl/os-ultrix4.h \
235 makemib \
236 missing/addrinfo.h \
237 missing/dlnames.c \
238 missing/datalinks.c \
239 missing/getnameinfo.c \
240 missing/inet_aton.c \
241 missing/inet_ntop.c \
242 missing/inet_pton.c \
243 missing/snprintf.c \
244 missing/sockstorage.h \
245 missing/strdup.c \
246 missing/strlcat.c \
247 missing/strlcpy.c \
248 missing/strsep.c \
249 mkdep \
250 packetdat.awk \
251 pcap_dump_ftell.c \
252 print-babel.c \
253 print-dhcp6.c \
254 print-frag6.c \
255 print-icmp6.c \
256 print-ip6.c \
257 print-ip6opts.c \
258 print-mobility.c \
259 print-netbios.c \
260 print-ospf6.c \
261 print-pflog.c \
262 print-ripng.c \
263 print-rt6.c \
264 print-smb.c \
265 send-ack.awk \
266 smbutil.c \
267 stime.awk \
268 strcasecmp.c \
269 tcpdump.1.in \
270 vfprintf.c \
271 win32/Include/bittypes.h \
272 win32/Include/errno.h \
273 win32/Include/getopt.h \
274 win32/Include/w32_fzs.h \
275 win32/Src/getopt.c \
276 win32/prj/GNUmakefile \
277 win32/prj/WinDump.dsp \
278 win32/prj/WinDump.dsw
279
280TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print`
281
The Android Open Source Project2949f582009-03-03 19:30:46 -0800282all: $(PROG)
283
284$(PROG): $(OBJ) @V_PCAPDEP@
285 @rm -f $@
JP Abgrall53f17a92014-02-12 14:02:41 -0800286 $(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
287
288$(LIBNETDISSECT): $(LIBNETDISSECT_OBJ)
289 @rm -f $@
290 $(AR) cr $@ $(LIBNETDISSECT_OBJ)
291 $(RANLIB) $@
The Android Open Source Project2949f582009-03-03 19:30:46 -0800292
293datalinks.o: $(srcdir)/missing/datalinks.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800294 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800295dlnames.o: $(srcdir)/missing/dlnames.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800296 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800297getnameinfo.o: $(srcdir)/missing/getnameinfo.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800298 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getnameinfo.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800299getaddrinfo.o: $(srcdir)/missing/getaddrinfo.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800300 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getaddrinfo.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800301inet_pton.o: $(srcdir)/missing/inet_pton.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800302 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_pton.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800303inet_ntop.o: $(srcdir)/missing/inet_ntop.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800304 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_ntop.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800305inet_aton.o: $(srcdir)/missing/inet_aton.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800306 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_aton.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800307snprintf.o: $(srcdir)/missing/snprintf.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800308 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800309strlcat.o: $(srcdir)/missing/strlcat.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800310 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800311strlcpy.o: $(srcdir)/missing/strlcpy.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800312 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800313strsep.o: $(srcdir)/missing/strsep.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800314 $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strsep.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800315
316version.o: version.c
JP Abgrall53f17a92014-02-12 14:02:41 -0800317 $(CC) $(FULL_CFLAGS) -c version.c
The Android Open Source Project2949f582009-03-03 19:30:46 -0800318
319version.c: $(srcdir)/VERSION
320 @rm -f $@
JP Abgrall53f17a92014-02-12 14:02:41 -0800321 if grep GIT ${srcdir}/VERSION >/dev/null; then \
322 read ver <${srcdir}/VERSION; \
323 echo $$ver | tr -d '\012'; \
324 date +_%Y_%m_%d; \
325 else \
326 cat ${srcdir}/VERSION; \
327 fi | sed -e 's/.*/const char version[] = "&";/' > $@
The Android Open Source Project2949f582009-03-03 19:30:46 -0800328
JP Abgrall53f17a92014-02-12 14:02:41 -0800329install: all
The Android Open Source Project2949f582009-03-03 19:30:46 -0800330 [ -d $(DESTDIR)$(sbindir) ] || \
331 (mkdir -p $(DESTDIR)$(sbindir); chmod 755 $(DESTDIR)$(sbindir))
332 $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
JP Abgrall53f17a92014-02-12 14:02:41 -0800333 $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG).`cat ${srcdir}/VERSION`
The Android Open Source Project2949f582009-03-03 19:30:46 -0800334 [ -d $(DESTDIR)$(mandir)/man1 ] || \
335 (mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1)
JP Abgrall53f17a92014-02-12 14:02:41 -0800336 $(INSTALL_DATA) $(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
The Android Open Source Project2949f582009-03-03 19:30:46 -0800337
338uninstall:
339 rm -f $(DESTDIR)$(sbindir)/$(PROG)
340 rm -f $(DESTDIR)$(mandir)/man1/$(PROG).1
341
342lint: $(GENSRC)
343 lint -hbxn $(SRC) | \
344 grep -v 'struct/union .* never defined' | \
345 grep -v 'possible pointer alignment problem'
346
347clean:
JP Abgrall53f17a92014-02-12 14:02:41 -0800348 rm -f $(CLEANFILES) $(PROG)-`cat VERSION`.tar.gz
The Android Open Source Project2949f582009-03-03 19:30:46 -0800349
350distclean:
351 rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
JP Abgrall53f17a92014-02-12 14:02:41 -0800352 config.h gnuc.h os-proto.h stamp-h stamp-h.in $(PROG).1
353 rm -rf autom4te.cache
354
355check: tcpdump
356 (cd tests && ./TESTrun.sh)
The Android Open Source Project2949f582009-03-03 19:30:46 -0800357
358tags: $(TAGFILES)
359 ctags -wtd $(TAGFILES)
360
JP Abgrall53f17a92014-02-12 14:02:41 -0800361TAGS: $(TAGFILES)
362 etags $(TAGFILES)
363
The Android Open Source Project2949f582009-03-03 19:30:46 -0800364releasetar:
365 @cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \
JP Abgrall53f17a92014-02-12 14:02:41 -0800366 mkdir $$name; \
367 tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) $(TEST_DIST) | (cd $$name; tar xf -); \
368 tar -c -z -f $$name.tar.gz $$name; \
369 rm -rf $$name
370
371testlist:
372 echo $(TEST_DIST)
The Android Open Source Project2949f582009-03-03 19:30:46 -0800373
374depend: $(GENSRC)
JP Abgrall53f17a92014-02-12 14:02:41 -0800375 $(MKDEP) -c $(CC) -m $(DEPENDENCY_CFLAG) $(DEFS) $(INCLS) $(SRC)