# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.262 2002-07-05 16:08:45 fenner Exp $ (LBL)
+# @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.325 2008-11-21 23:17:26 guy Exp $ (LBL)
#
# Various configurable paths (remember to edit Makefile.in, not Makefile)
PROG = tcpdump
CCOPT = @V_CCOPT@
INCLS = -I. @V_INCLS@
-DEFS = @DEFS@
+DEFS = @DEFS@ @CPPFLAGS@ @V_DEFS@
# Standard CFLAGS
CFLAGS = $(CCOPT) $(DEFS) $(INCLS)
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
+RANLIB = @RANLIB@
# Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
# Also, gcc does not remove the .o before forking 'as', which can be a
@rm -f $@
$(CC) $(CFLAGS) -c $(srcdir)/$*.c
-CSRC = addrtoname.c gmt2local.c machdep.c parsenfsfh.c \
- print-802_11.c print-ah.c print-arcnet.c print-arp.c \
- print-ascii.c print-atalk.c print-atm.c print-bgp.c \
- print-bootp.c print-beep.c print-cdp.c print-chdlc.c \
- print-cip.c print-cnfp.c print-decnet.c print-domain.c \
- print-dvmrp.c print-egp.c print-esp.c print-ether.c \
- print-fddi.c print-gre.c print-hsrp.c print-icmp.c \
- print-igmp.c print-igrp.c print-ip.c print-ipcomp.c \
- print-ipx.c print-isakmp.c print-isoclns.c print-krb.c \
- print-l2tp.c print-lane.c print-lcp.c print-llc.c print-lwres.c \
- print-msdp.c print-mobile.c print-mobility.c print-mpls.c print-nfs.c \
- print-ntp.c print-null.c print-ospf.c print-pflog.c \
- print-pim.c print-ppp.c print-pppoe.c print-pptp.c \
- print-radius.c print-raw.c print-rip.c print-rx.c \
- print-sctp.c print-sl.c print-sll.c print-snmp.c \
- print-stp.c print-sunrpc.c print-tcp.c \
- print-telnet.c print-tftp.c print-timed.c print-token.c \
- print-udp.c print-vjc.c print-vrrp.c print-wb.c print-zephyr.c \
- setsignal.c tcpdump.c util.c
+CSRC = addrtoname.c af.c checksum.c cpack.c gmpls.c oui.c gmt2local.c ipproto.c \
+ nlpid.c l2vpn.c machdep.c parsenfsfh.c \
+ print-802_11.c print-ap1394.c print-ah.c print-arcnet.c \
+ print-aodv.c print-arp.c print-ascii.c print-atalk.c print-atm.c \
+ print-beep.c print-bfd.c print-bgp.c print-bootp.c print-bt.c \
+ print-cdp.c print-cfm.c print-chdlc.c print-cip.c print-cnfp.c \
+ print-dccp.c print-decnet.c \
+ print-domain.c print-dtp.c print-dvmrp.c print-enc.c print-egp.c \
+ print-eap.c print-eigrp.c\
+ print-esp.c print-ether.c print-fddi.c print-fr.c \
+ print-gre.c print-hsrp.c print-icmp.c print-igmp.c \
+ print-igrp.c print-ip.c print-ipcomp.c print-ipfc.c print-ipnet.c \
+ print-ipx.c print-isoclns.c print-juniper.c print-krb.c \
+ print-l2tp.c print-lane.c print-ldp.c print-lldp.c print-llc.c \
+ print-lmp.c print-lspping.c print-lwapp.c \
+ print-lwres.c print-mobile.c print-mpcp.c print-mpls.c print-msdp.c \
+ print-nfs.c print-ntp.c print-null.c print-olsr.c print-ospf.c \
+ print-pgm.c print-pim.c print-ppp.c print-pppoe.c print-pptp.c \
+ print-radius.c print-raw.c print-rip.c print-rrcp.c print-rsvp.c \
+ print-rx.c print-sctp.c print-sflow.c print-sip.c print-sl.c print-sll.c \
+ print-slow.c print-snmp.c print-stp.c print-sunatm.c print-sunrpc.c \
+ print-symantec.c print-syslog.c print-tcp.c print-telnet.c print-tftp.c \
+ print-timed.c print-token.c print-udld.c print-udp.c print-usb.c \
+ print-vjc.c print-vqp.c print-vrrp.c print-vtp.c print-forces.c \
+ print-wb.c print-zephyr.c signature.c setsignal.c tcpdump.c util.c
+
+LIBNETDISSECT_SRC=print-isakmp.c
+LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o)
+LIBNETDISSECT=libnetdissect.a
LOCALSRC = @LOCALSRC@
GENSRC = version.c
LIBOBJS = @LIBOBJS@
-SRC = $(CSRC) $(GENSRC) $(LOCALSRC)
+SRC = $(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC)
# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
# hack the extra indirection
-OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) $(LOCALSRC:.c=.o) $(LIBOBJS)
-HDR = addrtoname.h appletalk.h bootp.h decnet.h \
- ethertype.h extract.h fddi.h gmt2local.h igrp.h interface.h \
- ipx.h llc.h machdep.h mib.h nfsfh.h nfsv2.h ntp.h ospf.h \
+OBJ = $(CSRC:.c=.o) $(GENSRC:.c=.o) $(LOCALSRC:.c=.o) $(LIBOBJS) $(LIBNETDISSECT_OBJ)
+HDR = \
+ acconfig.h \
+ addrtoname.h \
+ af.h \
+ ah.h \
+ aodv.h \
+ appletalk.h \
+ arcnet.h \
+ atm.h \
+ atmuni31.h \
+ bootp.h \
+ bgp.h \
+ chdlc.h \
+ cpack.h \
+ dccp.h \
+ decnet.h \
+ decode_prefix.h \
+ enc.h \
+ esp.h \
+ ether.h \
+ ethertype.h \
+ extract.h \
+ fddi.h \
+ forces.h \
+ gmpls.h \
+ gmt2local.h \
+ icmp6.h \
+ ieee802_11.h \
+ ieee802_11_radio.h \
+ igrp.h \
+ interface.h \
+ interface.h \
+ ip.h \
+ ip6.h \
+ ipfc.h \
+ ipnet.h \
+ ipproto.h \
+ ipsec_doi.h \
+ ipx.h \
+ isakmp.h \
+ l2tp.h \
+ l2vpn.h \
+ lane.h \
+ llc.h \
+ machdep.h \
+ mib.h \
+ mpls.h \
+ nameser.h \
+ netbios.h \
+ netdissect.h \
+ nfs.h \
+ nfsfh.h \
+ nlpid.h \
+ ntp.h \
+ oakley.h \
+ ospf.h \
+ ospf6.h \
+ oui.h \
+ pcap-missing.h \
+ pmap_prot.h \
+ ppp.h \
+ route6d.h \
+ rpc_auth.h \
+ rpc_msg.h \
+ rx.h \
+ sctpConstants.h \
+ sctpHeader.h \
setsignal.h \
- gnuc.h ipsec_doi.h isakmp.h l2tp.h nameser.h \
- netbios.h oakley.h ospf6.h ppp.h route6d.h
+ signature.h \
+ slcompress.h \
+ slip.h \
+ sll.h \
+ smb.h \
+ tcp.h \
+ tcpdump-stdinc.h \
+ telnet.h \
+ tftp.h \
+ timed.h \
+ token.h \
+ udp.h
TAGHDR = \
/usr/include/arpa/tftp.h \
CLEANFILES = $(PROG) $(OBJ) $(GENSRC)
+EXTRA_DIST = \
+ CHANGES \
+ CREDITS \
+ INSTALL.txt \
+ LICENSE \
+ Makefile.in \
+ Makefile-devel-adds \
+ README \
+ Readme.Win32 \
+ VERSION \
+ aclocal.m4 \
+ atime.awk \
+ bpf_dump.c \
+ config.guess \
+ config.h.in \
+ config.sub \
+ configure \
+ configure.in \
+ install-sh \
+ lbl/os-osf4.h \
+ lbl/os-solaris2.h \
+ lbl/os-sunos4.h \
+ lbl/os-ultrix4.h \
+ makemib \
+ missing/addrinfo.h \
+ missing/addrsize.h \
+ missing/dlnames.c \
+ missing/datalinks.c \
+ missing/getnameinfo.c \
+ missing/inet_aton.c \
+ missing/inet_ntop.c \
+ missing/inet_pton.c \
+ missing/resolv6.h \
+ missing/resolv_ext.h \
+ missing/snprintf.c \
+ missing/sockstorage.h \
+ missing/strdup.c \
+ missing/strlcat.c \
+ missing/strlcpy.c \
+ missing/strsep.c \
+ mkdep \
+ packetdat.awk \
+ pcap_dump_ftell.c \
+ print-dhcp6.c \
+ print-frag6.c \
+ print-icmp6.c \
+ print-ip6.c \
+ print-ip6opts.c \
+ print-mobility.c \
+ print-netbios.c \
+ print-ospf6.c \
+ print-pflog.c \
+ print-ripng.c \
+ print-rt6.c \
+ print-smb.c \
+ send-ack.awk \
+ smbutil.c \
+ stime.awk \
+ strcasecmp.c \
+ tcpdump.1.in \
+ tests/02-sunrise-sunset-esp.puu \
+ tests/08-sunrise-sunset-aes.puu \
+ tests/08-sunrise-sunset-esp2.puu \
+ tests/TESTLIST \
+ tests/TESTonce \
+ tests/TESTrun.sh \
+ tests/bgp-infinite-loop.pcap \
+ tests/bgp_vpn_attrset.out \
+ tests/bgp_vpn_attrset.pcap \
+ tests/chdlc-slarp-short.pcap \
+ tests/chdlc-slarp.pcap \
+ tests/dio.out \
+ tests/dio.pcap \
+ tests/e1000g.out \
+ tests/e1000g.pcap \
+ tests/eapon1.gdbinit \
+ tests/eapon1.out \
+ tests/eapon1.puu \
+ tests/eapon2.puu \
+ tests/esp-secrets.txt \
+ tests/esp0.out \
+ tests/esp1.gdbinit \
+ tests/esp1.out \
+ tests/esp2.gdbinit \
+ tests/esp2.out \
+ tests/esp3.gdbinit \
+ tests/esp4.gdbinit \
+ tests/esp5.gdbinit \
+ tests/esp5.out \
+ tests/espudp1.out \
+ tests/espudp1.puu \
+ tests/forces1.out \
+ tests/forces1.pcap \
+ tests/forces1vvv.out \
+ tests/forces1vvvv.out \
+ tests/forces2.out \
+ tests/forces2.pcap \
+ tests/forces2v.out \
+ tests/forces2vv.out \
+ tests/ikev2.puu \
+ tests/ikev2four.out \
+ tests/ikev2four.puu \
+ tests/ikev2fourv.out \
+ tests/ikev2fourv4.out \
+ tests/ikev2pI2-secrets.txt \
+ tests/ikev2pI2.out \
+ tests/ikev2pI2.puu \
+ tests/isakmp-delete-segfault.puu \
+ tests/isakmp-identification-segfault.puu \
+ tests/isakmp-pointer-loop.puu \
+ tests/isakmp1.out \
+ tests/isakmp2.out \
+ tests/isakmp3.out \
+ tests/isakmp4.out \
+ tests/isakmp4500.puu \
+ tests/isis-infinite-loop.pcap \
+ tests/ldp-infinite-loop.pcap \
+ tests/lmp.out \
+ tests/lmp.puu \
+ tests/lmp.sh \
+ tests/lspping-fec-ldp.pcap \
+ tests/lspping-fec-rsvp.pcap \
+ tests/mpls-ldp-hello.out \
+ tests/mpls-ldp-hello.puu \
+ tests/mpls-traceroute.pcap \
+ tests/ospf-gmpls.out \
+ tests/ospf-gmpls.puu \
+ tests/print-A.out \
+ tests/print-AA.out \
+ tests/print-capX.out \
+ tests/print-capXX.out \
+ tests/print-flags.puu \
+ tests/print-flags.sh \
+ tests/print-x.out \
+ tests/print-xx.out \
+ tests/rsvp-infinite-loop.pcap \
+ vfprintf.c \
+ win32/Include/Arpa/tftp.h \
+ win32/Include/bittypes.h \
+ win32/Include/errno.h \
+ win32/Include/getopt.h \
+ win32/Include/inetprivate.h \
+ win32/Include/telnet.h \
+ win32/Include/w32_fzs.h \
+ win32/Include/Netinet/in_systm.h \
+ win32/Include/Netinet/ip.h \
+ win32/Src/getopt.c \
+ win32/prj/GNUmakefile \
+ win32/prj/WinDump.dsp \
+ win32/prj/WinDump.dsw
+
all: $(PROG)
$(PROG): $(OBJ) @V_PCAPDEP@
@rm -f $@
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
+$(LIBNETDISSECT): $(LIBNETDISSECT_OBJ)
+ @rm -f $@
+ $(AR) cr $@ $(LIBNETDISSECT_OBJ)
+ $(RANLIB) $@
+
+datalinks.o: $(srcdir)/missing/datalinks.c
+ $(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c
+dlnames.o: $(srcdir)/missing/dlnames.c
+ $(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c
getnameinfo.o: $(srcdir)/missing/getnameinfo.c
$(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/getnameinfo.c
getaddrinfo.o: $(srcdir)/missing/getaddrinfo.c
$(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
strlcpy.o: $(srcdir)/missing/strlcpy.c
$(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
+strsep.o: $(srcdir)/missing/strsep.c
+ $(CC) $(CFLAGS) -o $@ -c $(srcdir)/missing/strsep.c
version.o: version.c
$(CC) $(CFLAGS) -c version.c
version.c: $(srcdir)/VERSION
@rm -f $@
- sed -e 's/.*/char version[] = "&";/' $(srcdir)/VERSION > $@
+ if grep GIT ${srcdir}/VERSION >/dev/null; then \
+ read ver <${srcdir}/VERSION; \
+ echo $$ver | tr -d '\012'; \
+ date +_%Y_%m_%d; \
+ else \
+ cat ${srcdir}/VERSION; \
+ fi | sed -e 's/.*/const char version[] = "&";/' > $@
-install:
+install: all
[ -d $(DESTDIR)$(sbindir) ] || \
(mkdir -p $(DESTDIR)$(sbindir); chmod 755 $(DESTDIR)$(sbindir))
$(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
+ $(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG).`cat ${srcdir}/VERSION`
[ -d $(DESTDIR)$(mandir)/man1 ] || \
(mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1)
- $(INSTALL_DATA) $(srcdir)/$(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
+ $(INSTALL_DATA) $(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
uninstall:
rm -f $(DESTDIR)$(sbindir)/$(PROG)
grep -v 'possible pointer alignment problem'
clean:
- rm -f $(CLEANFILES)
+ rm -f $(CLEANFILES) $(PROG)-`cat VERSION`.tar.gz
distclean:
rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
- config.h gnuc.h os-proto.h stamp-h stamp-h.in
+ config.h gnuc.h os-proto.h stamp-h stamp-h.in $(PROG).1
+
+check: tcpdump
+ uudecode --help || (echo "No uudecode program found, not running tests"; echo "apt-get/rpm install sharutils?"; exit 1)
+ (cd tests && ./TESTrun.sh)
tags: $(TAGFILES)
ctags -wtd $(TAGFILES)
-tar:
+TAGS: $(TAGFILES)
+ etags $(TAGFILES)
+
+releasetar:
@cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \
- list="" ; tar="tar chf" ; \
- for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \
- echo \
- "rm -f ../$$name; ln -s $$dir ../$$name" ; \
- rm -f ../$$name; ln -s $$dir ../$$name ; \
- echo \
- "(cd .. ; $$tar - [lots of files]) | compress > /tmp/$$name.tar.Z" ; \
- (cd .. ; $$tar - $$list) | compress > /tmp/$$name.tar.Z ; \
- echo \
- "rm -f ../$$name" ; \
- rm -f ../$$name
+ mkdir $$name; \
+ tar cf - $(CSRC) $(HDR) $(LIBNETDISSECT_SRC) $(EXTRA_DIST) | (cd $$name; tar xf -); \
+ tar -c -z -f $$name.tar.gz $$name; \
+ rm -rf $$name
depend: $(GENSRC)
${srcdir}/mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC)