Home | History | Annotate | Download | only in tcpdump
      1 #  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 #
     20 # @(#) $Header: /tcpdump/master/tcpdump/Makefile.in,v 1.325 2008-11-21 23:17:26 guy Exp $ (LBL)
     21 
     22 #
     23 # Various configurable paths (remember to edit Makefile.in, not Makefile)
     24 #
     25 
     26 # Top level hierarchy
     27 prefix = @prefix@
     28 exec_prefix = @exec_prefix@
     29 datarootdir = @datarootdir@
     30 # Pathname of directory to install the binary
     31 sbindir = @sbindir@
     32 # Pathname of directory to install the man page
     33 mandir = @mandir@
     34 
     35 # VPATH
     36 srcdir = @srcdir@
     37 VPATH = @srcdir@
     38 
     39 #
     40 # You shouldn't need to edit anything below here.
     41 #
     42 
     43 CC = @CC@
     44 MKDEP = @MKDEP@
     45 PROG = tcpdump
     46 CCOPT = @V_CCOPT@
     47 INCLS = -I. @V_INCLS@
     48 DEFS = @DEFS@ @CPPFLAGS@ @V_DEFS@
     49 
     50 # Standard CFLAGS
     51 CFLAGS = @CFLAGS@
     52 FULL_CFLAGS = $(CCOPT) $(DEFS) $(INCLS) $(CFLAGS)
     53 
     54 # Standard LDFLAGS
     55 LDFLAGS = @LDFLAGS@
     56 
     57 # Standard LIBS
     58 LIBS = @LIBS@
     59 
     60 INSTALL = @INSTALL@
     61 INSTALL_PROGRAM = @INSTALL_PROGRAM@
     62 INSTALL_DATA = @INSTALL_DATA@
     63 RANLIB = @RANLIB@
     64 
     65 DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
     66 
     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 $@
     72 	$(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
     73 
     74 CSRC =	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 \
     80 	print-chdlc.c print-cip.c print-cnfp.c print-dccp.c print-decnet.c \
     81 	print-domain.c print-dtp.c print-dvmrp.c print-enc.c print-egp.c \
     82 	print-eap.c print-eigrp.c\
     83 	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 \
     96 	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 \
     98 	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 
    102 LIBNETDISSECT_SRC=print-isakmp.c
    103 LIBNETDISSECT_OBJ=$(LIBNETDISSECT_SRC:.c=.o)
    104 LIBNETDISSECT=libnetdissect.a
    105 
    106 LOCALSRC = @LOCALSRC@
    107 GENSRC = version.c
    108 LIBOBJS = @LIBOBJS@
    109 
    110 SRC =	$(CSRC) $(GENSRC) $(LOCALSRC) $(LIBNETDISSECT_SRC)
    111 
    112 # We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
    113 # hack the extra indirection
    114 OBJ =	$(CSRC:.c=.o) $(GENSRC:.c=.o) $(LOCALSRC:.c=.o) $(LIBOBJS) $(LIBNETDISSECT_OBJ)
    115 HDR = \
    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 \
    183 	setsignal.h \
    184 	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
    196 
    197 TAGHDR = \
    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 
    208 TAGFILES = $(SRC) $(HDR) $(TAGHDR)
    209 
    210 CLEANFILES = $(PROG) $(OBJ) $(GENSRC)
    211 
    212 EXTRA_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 
    280 TEST_DIST= `find tests \( -name 'DIFF' -prune \) -o \( -name NEW -prune \) -o -type f \! -name '.*' \! -name '*~' -print`
    281 
    282 all: $(PROG)
    283 
    284 $(PROG): $(OBJ) @V_PCAPDEP@
    285 	@rm -f $@
    286 	$(CC) $(FULL_CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
    287 
    288 $(LIBNETDISSECT): $(LIBNETDISSECT_OBJ)
    289 	@rm -f $@
    290 	$(AR) cr $@ $(LIBNETDISSECT_OBJ) 
    291 	$(RANLIB) $@
    292 
    293 datalinks.o: $(srcdir)/missing/datalinks.c
    294 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/datalinks.c
    295 dlnames.o: $(srcdir)/missing/dlnames.c
    296 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/dlnames.c
    297 getnameinfo.o: $(srcdir)/missing/getnameinfo.c
    298 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getnameinfo.c
    299 getaddrinfo.o: $(srcdir)/missing/getaddrinfo.c
    300 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/getaddrinfo.c
    301 inet_pton.o: $(srcdir)/missing/inet_pton.c
    302 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_pton.c
    303 inet_ntop.o: $(srcdir)/missing/inet_ntop.c
    304 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_ntop.c
    305 inet_aton.o: $(srcdir)/missing/inet_aton.c
    306 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/inet_aton.c
    307 snprintf.o: $(srcdir)/missing/snprintf.c
    308 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c
    309 strlcat.o: $(srcdir)/missing/strlcat.c
    310 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
    311 strlcpy.o: $(srcdir)/missing/strlcpy.c
    312 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
    313 strsep.o: $(srcdir)/missing/strsep.c
    314 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strsep.c
    315 
    316 version.o: version.c
    317 	$(CC) $(FULL_CFLAGS) -c version.c
    318 
    319 version.c: $(srcdir)/VERSION
    320 	@rm -f $@
    321 	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[] = "&";/' > $@
    328 
    329 install: all
    330 	[ -d $(DESTDIR)$(sbindir) ] || \
    331 	    (mkdir -p $(DESTDIR)$(sbindir); chmod 755 $(DESTDIR)$(sbindir))
    332 	$(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG)
    333 	$(INSTALL_PROGRAM) $(PROG) $(DESTDIR)$(sbindir)/$(PROG).`cat ${srcdir}/VERSION`
    334 	[ -d $(DESTDIR)$(mandir)/man1 ] || \
    335 	    (mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1)
    336 	$(INSTALL_DATA) $(PROG).1 $(DESTDIR)$(mandir)/man1/$(PROG).1
    337 
    338 uninstall:
    339 	rm -f $(DESTDIR)$(sbindir)/$(PROG)
    340 	rm -f $(DESTDIR)$(mandir)/man1/$(PROG).1
    341 
    342 lint: $(GENSRC)
    343 	lint -hbxn $(SRC) | \
    344 	    grep -v 'struct/union .* never defined' | \
    345 	    grep -v 'possible pointer alignment problem'
    346 
    347 clean:
    348 	rm -f $(CLEANFILES) $(PROG)-`cat VERSION`.tar.gz
    349 
    350 distclean:
    351 	rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
    352 	    config.h gnuc.h os-proto.h stamp-h stamp-h.in $(PROG).1
    353 	rm -rf autom4te.cache
    354 
    355 check: tcpdump
    356 	(cd tests && ./TESTrun.sh)
    357 
    358 tags: $(TAGFILES)
    359 	ctags -wtd $(TAGFILES)
    360 
    361 TAGS: $(TAGFILES)
    362 	etags $(TAGFILES)
    363 
    364 releasetar:
    365 	@cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \
    366 	   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 
    371 testlist:
    372 	echo $(TEST_DIST)
    373 
    374 depend: $(GENSRC)
    375 	$(MKDEP) -c $(CC) -m $(DEPENDENCY_CFLAG) $(DEFS) $(INCLS) $(SRC)
    376