117683Spst# Copyright (c) 1993, 1994, 1995, 1996 217683Spst# The Regents of the University of California. All rights reserved. 317683Spst# 417683Spst# Redistribution and use in source and binary forms, with or without 517683Spst# modification, are permitted provided that: (1) source code distributions 617683Spst# retain the above copyright notice and this paragraph in its entirety, (2) 717683Spst# distributions including binary code include the above copyright notice and 817683Spst# this paragraph in its entirety in the documentation or other materials 917683Spst# provided with the distribution, and (3) all advertising materials mentioning 1017683Spst# features or use of this software display the following acknowledgement: 1117683Spst# ``This product includes software developed by the University of California, 1217683Spst# Lawrence Berkeley Laboratory and its contributors.'' Neither the name of 1317683Spst# the University nor the names of its contributors may be used to endorse 1417683Spst# or promote products derived from this software without specific prior 1517683Spst# written permission. 1617683Spst# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 1717683Spst# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 1817683Spst# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 1917683Spst# 20214518Srpaulo# @(#) $Header: /tcpdump/master/libpcap/Makefile.in,v 1.142 2008-11-22 17:30:24 guy Exp $ (LBL) 2117683Spst 2217683Spst# 2317683Spst# Various configurable paths (remember to edit Makefile.in, not Makefile) 2417683Spst# 2517683Spst 2617683Spst# Top level hierarchy 2717683Spstprefix = @prefix@ 2817683Spstexec_prefix = @exec_prefix@ 29190225Srpaulodatarootdir = @datarootdir@ 30190225Srpaulo# Pathname of directory to install the configure program 31190225Srpaulobindir = @bindir@ 3217683Spst# Pathname of directory to install the include files 3375107Sfennerincludedir = @includedir@ 3417683Spst# Pathname of directory to install the library 3575107Sfennerlibdir = @libdir@ 36190225Srpaulo# Pathname of directory to install the man pages 3775107Sfennermandir = @mandir@ 3817683Spst 3926175Sfenner# VPATH 4026175Sfennersrcdir = @srcdir@ 4126175SfennerVPATH = @srcdir@ 4226175Sfenner 4317683Spst# 4417683Spst# You shouldn't need to edit anything below. 4517683Spst# 4617683Spst 47214518SrpauloLD = /usr/bin/ld 4817683SpstCC = @CC@ 49235426SdelphijAR = @AR@ 5017683SpstCCOPT = @V_CCOPT@ 5117683SpstINCLS = -I. @V_INCLS@ 52127664SbmsDEFS = @DEFS@ @V_DEFS@ 53214518SrpauloADDLOBJS = @ADDLOBJS@ 54214518SrpauloADDLARCHIVEOBJS = @ADDLARCHIVEOBJS@ 55214518SrpauloLIBS = @LIBS@ 56235426SdelphijCFLAGS = @CFLAGS@ 57214518SrpauloLDFLAGS = @LDFLAGS@ 58146768SsamDYEXT = @DYEXT@ 59214518SrpauloV_RPATH_OPT = @V_RPATH_OPT@ 60172677SmlaierPROG=libpcap 6117683Spst 6217683Spst# Standard CFLAGS 63235426SdelphijFULL_CFLAGS = $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS) 6417683Spst 6517683SpstINSTALL = @INSTALL@ 6675107SfennerINSTALL_PROGRAM = @INSTALL_PROGRAM@ 6775107SfennerINSTALL_DATA = @INSTALL_DATA@ 6875107SfennerRANLIB = @RANLIB@ 6917683Spst 7017683Spst# 7117683Spst# Flex and bison allow you to specify the prefixes of the global symbols 7217683Spst# used by the generated parser. This allows programs to use lex/yacc 7317683Spst# and link against libpcap. If you don't have flex or bison, get them. 7417683Spst# 7517683SpstLEX = @V_LEX@ 7617683SpstYACC = @V_YACC@ 7717683Spst 7817683Spst# Explicitly define compilation rule since SunOS 4's make doesn't like gcc. 7917683Spst# Also, gcc does not remove the .o before forking 'as', which can be a 8017683Spst# problem if you don't own the file but can write to the directory. 8117683Spst.c.o: 8217683Spst @rm -f $@ 83235426Sdelphij $(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c 8417683Spst 85241231SdelphijPSRC = pcap-@V_PCAP@.c @USB_SRC@ @BT_SRC@ @CAN_SRC@ @NETFILTER_SRC@ @CANUSB_SRC@ 86127664SbmsFSRC = fad-@V_FINDALLDEVS@.c 87127664SbmsSSRC = @SSRC@ 88214518SrpauloCSRC = pcap.c inet.c gencode.c optimize.c nametoaddr.c etherent.c \ 89214518Srpaulo savefile.c sf-pcap.c sf-pcap-ng.c pcap-common.c \ 90214518Srpaulo bpf_image.c bpf_dump.c 91214518SrpauloGENSRC = scanner.c grammar.c bpf_filter.c version.c 9275107SfennerLIBOBJS = @LIBOBJS@ 9317683Spst 94127664SbmsSRC = $(PSRC) $(FSRC) $(CSRC) $(SSRC) $(GENSRC) 9517683Spst 9617683Spst# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot 9717683Spst# hack the extra indirection 98127664SbmsOBJ = $(PSRC:.c=.o) $(FSRC:.c=.o) $(CSRC:.c=.o) $(SSRC:.c=.o) $(GENSRC:.c=.o) $(LIBOBJS) 99214518SrpauloPUBHDR = \ 100214518Srpaulo pcap.h \ 101214518Srpaulo pcap-bpf.h \ 102214518Srpaulo pcap-namedb.h \ 103214518Srpaulo pcap/bpf.h \ 104214518Srpaulo pcap/bluetooth.h \ 105214518Srpaulo pcap/ipnet.h \ 106214518Srpaulo pcap/namedb.h \ 107214518Srpaulo pcap/pcap.h \ 108214518Srpaulo pcap/sll.h \ 109214518Srpaulo pcap/vlan.h \ 110214518Srpaulo pcap/usb.h 111214518Srpaulo 112214518SrpauloHDR = $(PUBHDR) \ 113190225Srpaulo arcnet.h \ 114190225Srpaulo atmuni31.h \ 115190225Srpaulo ethertype.h \ 116190225Srpaulo gencode.h \ 117190225Srpaulo ieee80211.h \ 118190225Srpaulo llc.h \ 119190225Srpaulo nlpid.h \ 120214518Srpaulo pcap-common.h \ 121190225Srpaulo pcap-int.h \ 122190225Srpaulo pcap-stdinc.h \ 123190225Srpaulo ppp.h \ 124214518Srpaulo sf-pcap.h \ 125214518Srpaulo sf-pcap-ng.h \ 126190225Srpaulo sunatmpos.h 127190225Srpaulo 128235426SdelphijTESTS = \ 129235426Sdelphij filtertest \ 130235426Sdelphij findalldevstest \ 131235426Sdelphij nonblocktest \ 132235426Sdelphij opentest \ 133235426Sdelphij selpolltest 134235426Sdelphij 135235426SdelphijTESTS_SRC = \ 136235426Sdelphij tests/filtertest.c \ 137235426Sdelphij tests/findalldevstest.c \ 138235426Sdelphij tests/nonblocktest.c \ 139235426Sdelphij tests/opentest.c \ 140235426Sdelphij tests/reactivatetest.c \ 141235426Sdelphij tests/selpolltest.c 142235426Sdelphij 14317683SpstGENHDR = \ 144190225Srpaulo scanner.h tokdefs.h version.h 14517683Spst 14617683SpstTAGFILES = \ 147214518Srpaulo $(SRC) $(HDR) 14817683Spst 149235426SdelphijCLEANFILES = $(OBJ) libpcap.* $(TESTS) \ 150235426Sdelphij $(PROG)-`cat $(srcdir)/VERSION`.tar.gz $(GENSRC) $(GENHDR) \ 151214518Srpaulo lex.yy.c pcap-config 15217683Spst 153190225SrpauloMAN1 = pcap-config.1 15439291Sfenner 155190225SrpauloMAN3PCAP_EXPAND = \ 156190225Srpaulo pcap.3pcap.in \ 157190225Srpaulo pcap_compile.3pcap.in \ 158190225Srpaulo pcap_datalink.3pcap.in \ 159190225Srpaulo pcap_dump_open.3pcap.in \ 160190225Srpaulo pcap_list_datalinks.3pcap.in \ 161235426Sdelphij pcap_list_tstamp_types.3pcap.in \ 162190225Srpaulo pcap_open_dead.3pcap.in \ 163235426Sdelphij pcap_open_offline.3pcap.in \ 164235426Sdelphij pcap_set_tstamp_type.3pcap.in 165190225Srpaulo 166190225SrpauloMAN3PCAP_NOEXPAND = \ 167190225Srpaulo pcap_activate.3pcap \ 168190225Srpaulo pcap_breakloop.3pcap \ 169190225Srpaulo pcap_can_set_rfmon.3pcap \ 170190225Srpaulo pcap_close.3pcap \ 171190225Srpaulo pcap_create.3pcap \ 172190225Srpaulo pcap_datalink_name_to_val.3pcap \ 173190225Srpaulo pcap_datalink_val_to_name.3pcap \ 174190225Srpaulo pcap_dump.3pcap \ 175190225Srpaulo pcap_dump_close.3pcap \ 176190225Srpaulo pcap_dump_file.3pcap \ 177190225Srpaulo pcap_dump_flush.3pcap \ 178190225Srpaulo pcap_dump_ftell.3pcap \ 179190225Srpaulo pcap_file.3pcap \ 180190225Srpaulo pcap_fileno.3pcap \ 181190225Srpaulo pcap_findalldevs.3pcap \ 182190225Srpaulo pcap_freecode.3pcap \ 183190225Srpaulo pcap_get_selectable_fd.3pcap \ 184190225Srpaulo pcap_geterr.3pcap \ 185190225Srpaulo pcap_inject.3pcap \ 186190225Srpaulo pcap_is_swapped.3pcap \ 187190225Srpaulo pcap_lib_version.3pcap \ 188190225Srpaulo pcap_lookupdev.3pcap \ 189190225Srpaulo pcap_lookupnet.3pcap \ 190190225Srpaulo pcap_loop.3pcap \ 191190225Srpaulo pcap_major_version.3pcap \ 192190225Srpaulo pcap_next_ex.3pcap \ 193190225Srpaulo pcap_offline_filter.3pcap \ 194190225Srpaulo pcap_open_live.3pcap \ 195190225Srpaulo pcap_set_buffer_size.3pcap \ 196190225Srpaulo pcap_set_datalink.3pcap \ 197190225Srpaulo pcap_set_promisc.3pcap \ 198190225Srpaulo pcap_set_rfmon.3pcap \ 199190225Srpaulo pcap_set_snaplen.3pcap \ 200190225Srpaulo pcap_set_timeout.3pcap \ 201190225Srpaulo pcap_setdirection.3pcap \ 202190225Srpaulo pcap_setfilter.3pcap \ 203190225Srpaulo pcap_setnonblock.3pcap \ 204190225Srpaulo pcap_snapshot.3pcap \ 205190225Srpaulo pcap_stats.3pcap \ 206190225Srpaulo pcap_statustostr.3pcap \ 207235426Sdelphij pcap_strerror.3pcap \ 208235426Sdelphij pcap_tstamp_type_name_to_val.3pcap \ 209235426Sdelphij pcap_tstamp_type_val_to_name.3pcap 210190225Srpaulo 211190225SrpauloMAN3PCAP = $(MAN3PCAP_NOEXPAND) $(MAN3PCAP_EXPAND:.in=) 212190225Srpaulo 213190225SrpauloMANFILE = \ 214190225Srpaulo pcap-savefile.manfile.in 215190225Srpaulo 216190225SrpauloMANMISC = \ 217190225Srpaulo pcap-filter.manmisc.in \ 218235426Sdelphij pcap-linktype.manmisc.in \ 219235426Sdelphij pcap-tstamp.manmisc.in 220190225Srpaulo 221190225SrpauloEXTRA_DIST = \ 222235426Sdelphij $(TESTS_SRC) \ 223190225Srpaulo CHANGES \ 224190225Srpaulo ChmodBPF/ChmodBPF \ 225190225Srpaulo ChmodBPF/StartupParameters.plist \ 226190225Srpaulo CREDITS \ 227190225Srpaulo INSTALL.txt \ 228190225Srpaulo LICENSE \ 229190225Srpaulo Makefile.in \ 230190225Srpaulo README \ 231190225Srpaulo README.aix \ 232190225Srpaulo README.dag \ 233190225Srpaulo README.hpux \ 234190225Srpaulo README.linux \ 235190225Srpaulo README.macosx \ 236190225Srpaulo README.septel \ 237190225Srpaulo README.sita \ 238190225Srpaulo README.tru64 \ 239190225Srpaulo README.Win32 \ 240190225Srpaulo SUNOS4/nit_if.o.sparc \ 241190225Srpaulo SUNOS4/nit_if.o.sun3 \ 242190225Srpaulo SUNOS4/nit_if.o.sun4c.4.0.3c \ 243190225Srpaulo TODO \ 244190225Srpaulo VERSION \ 245190225Srpaulo aclocal.m4 \ 246190225Srpaulo bpf/net/bpf_filter.c \ 247190225Srpaulo chmod_bpf \ 248190225Srpaulo config.guess \ 249190225Srpaulo config.h.in \ 250190225Srpaulo config.sub \ 251190225Srpaulo configure \ 252190225Srpaulo configure.in \ 253190225Srpaulo dlpisubs.c \ 254190225Srpaulo dlpisubs.h \ 255190225Srpaulo fad-getad.c \ 256190225Srpaulo fad-gifc.c \ 257190225Srpaulo fad-glifc.c \ 258190225Srpaulo fad-null.c \ 259190225Srpaulo fad-sita.c \ 260190225Srpaulo fad-win32.c \ 261190225Srpaulo grammar.y \ 262190225Srpaulo install-sh \ 263190225Srpaulo lbl/os-aix4.h \ 264190225Srpaulo lbl/os-hpux11.h \ 265190225Srpaulo lbl/os-osf4.h \ 266190225Srpaulo lbl/os-osf5.h \ 267190225Srpaulo lbl/os-solaris2.h \ 268190225Srpaulo lbl/os-sunos4.h \ 269190225Srpaulo lbl/os-ultrix4.h \ 270190225Srpaulo missing/snprintf.c \ 271190225Srpaulo mkdep \ 272190225Srpaulo msdos/bin2c.c \ 273190225Srpaulo msdos/common.dj \ 274190225Srpaulo msdos/makefile \ 275190225Srpaulo msdos/makefile.dj \ 276190225Srpaulo msdos/makefile.wc \ 277190225Srpaulo msdos/ndis2.c \ 278190225Srpaulo msdos/ndis2.h \ 279190225Srpaulo msdos/ndis_0.asm \ 280190225Srpaulo msdos/pkt_rx0.asm \ 281190225Srpaulo msdos/pkt_rx1.s \ 282190225Srpaulo msdos/pktdrvr.c \ 283190225Srpaulo msdos/pktdrvr.h \ 284190225Srpaulo msdos/readme.dos \ 285190225Srpaulo org.tcpdump.chmod_bpf.plist \ 286190225Srpaulo packaging/pcap.spec.in \ 287190225Srpaulo pcap-bpf.c \ 288190225Srpaulo pcap-bt-linux.c \ 289190225Srpaulo pcap-bt-linux.h \ 290214518Srpaulo pcap-can-linux.c \ 291214518Srpaulo pcap-can-linux.h \ 292241231Sdelphij pcap-canusb-linux.c \ 293241231Sdelphij pcap-canusb-linux.h \ 294190225Srpaulo pcap-config.in \ 295190225Srpaulo pcap-dag.c \ 296190225Srpaulo pcap-dag.h \ 297190225Srpaulo pcap-dlpi.c \ 298190225Srpaulo pcap-dos.c \ 299190225Srpaulo pcap-dos.h \ 300190225Srpaulo pcap-enet.c \ 301190225Srpaulo pcap-int.h \ 302190225Srpaulo pcap-libdlpi.c \ 303190225Srpaulo pcap-linux.c \ 304190225Srpaulo pcap-namedb.h \ 305235426Sdelphij pcap-netfilter-linux.c \ 306235426Sdelphij pcap-netfilter-linux.h \ 307190225Srpaulo pcap-nit.c \ 308190225Srpaulo pcap-null.c \ 309190225Srpaulo pcap-pf.c \ 310190225Srpaulo pcap-septel.c \ 311190225Srpaulo pcap-septel.h \ 312190225Srpaulo pcap-sita.h \ 313190225Srpaulo pcap-sita.c \ 314190225Srpaulo pcap-sita.html \ 315214518Srpaulo pcap-snf.c \ 316214518Srpaulo pcap-snf.h \ 317190225Srpaulo pcap-snit.c \ 318190225Srpaulo pcap-snoop.c \ 319190225Srpaulo pcap-usb-linux.c \ 320190225Srpaulo pcap-usb-linux.h \ 321190225Srpaulo pcap-win32.c \ 322190225Srpaulo runlex.sh \ 323190225Srpaulo scanner.l \ 324190225Srpaulo Win32/Include/Gnuc.h \ 325190225Srpaulo Win32/Include/addrinfo.h \ 326190225Srpaulo Win32/Include/bittypes.h \ 327190225Srpaulo Win32/Include/cdecl_ext.h \ 328190225Srpaulo Win32/Include/inetprivate.h \ 329190225Srpaulo Win32/Include/ip6_misc.h \ 330190225Srpaulo Win32/Include/sockstorage.h \ 331190225Srpaulo Win32/Include/arpa/nameser.h \ 332190225Srpaulo Win32/Include/net/if.h \ 333190225Srpaulo Win32/Include/net/netdb.h \ 334190225Srpaulo Win32/Include/net/paths.h \ 335190225Srpaulo Win32/Prj/libpcap.dsp \ 336190225Srpaulo Win32/Prj/libpcap.dsw \ 337190225Srpaulo Win32/Src/ffs.c \ 338190225Srpaulo Win32/Src/gai_strerror.c \ 339190225Srpaulo Win32/Src/getaddrinfo.c \ 340190225Srpaulo Win32/Src/getnetbynm.c \ 341190225Srpaulo Win32/Src/getnetent.c \ 342190225Srpaulo Win32/Src/getopt.c \ 343190225Srpaulo Win32/Src/getservent.c \ 344190225Srpaulo Win32/Src/inet_aton.c \ 345190225Srpaulo Win32/Src/inet_net.c \ 346190225Srpaulo Win32/Src/inet_pton.c 347190225Srpaulo 348214518Srpauloall: libpcap.a shared pcap-config 349190225Srpaulo 35017683Spstlibpcap.a: $(OBJ) 35126175Sfenner @rm -f $@ 352235426Sdelphij $(AR) rc $@ $(OBJ) $(ADDLARCHIVEOBJS) 35317683Spst $(RANLIB) $@ 35417683Spst 355146768Ssamshared: libpcap.$(DYEXT) 356146768Ssam 357146768Ssamlibpcap.so: $(OBJ) 358146768Ssam @rm -f $@ 359214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 360214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 361214518Srpaulo @V_SHLIB_CMD@ @V_SHLIB_OPT@ @V_SONAME_OPT@$@.$$MAJOR_VER $(LDFLAGS) \ 362214518Srpaulo -o $@.$$VER $(OBJ) $(ADDLOBJS) $(LIBS) 363146768Ssam 364190225Srpaulo# 365190225Srpaulo# The following rule succeeds, but the result is untested. 366190225Srpaulo# 367214518Srpaulo# In Mac OS X, the libpcap dylib has the name "libpcap.A.dylib", with 368214518Srpaulo# its full path as the install_name, and with the compatibility and 369214518Srpaulo# current version both set to 1. The compatibility version is set to 370214518Srpaulo# 1 so that programs built with a newer version of the library will run 371214518Srpaulo# against older versions; multi-platform software probably will fail if 372214518Srpaulo# it uses APIs added in the newer version, but Mac OS X-specific software 373214518Srpaulo# will use weak linking and check at run time whether those APIs are 374214518Srpaulo# available. 375190225Srpaulo# 376214518Srpaulo# We also use "A" as the major version, and 1 as the compatibility version, 377214518Srpaulo# but set the current version to the value in VERSION, with any non-numeric 378214518Srpaulo# stuff stripped off (the compatibility and current version must be of the 379214518Srpaulo# form X[.Y[.Z]], with Y and Z possibly absent, and with all components 380214518Srpaulo# numeric). 381214518Srpaulo# 382146768Ssamlibpcap.dylib: $(OBJ) 383146768Ssam rm -f libpcap*.dylib 384214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 385214518Srpaulo MAJOR_VER=A; \ 386214518Srpaulo COMPAT_VER=1; \ 387214518Srpaulo CURRENT_VER=`sed 's/[^0-9.].*$$//' $(srcdir)/VERSION`; \ 388214518Srpaulo $(CC) -dynamiclib -undefined error $(LDFLAGS) \ 389214518Srpaulo -o libpcap.$$VER.dylib $(OBJ) $(ADDLOBJS) $(LIBS) \ 390214518Srpaulo -install_name $(libdir)/libpcap.$$MAJOR_VER.dylib \ 391214518Srpaulo -compatibility_version $$COMPAT_VER \ 392214518Srpaulo -current_version $$CURRENT_VER 393146768Ssam 394214518Srpaulo# 395214518Srpaulo# The HP-UX linker manual says that the convention for a versioned library 396214518Srpaulo# is libXXX.{number}, not libXXX.sl.{number}. That appears to be the case 397214518Srpaulo# on at least one HP-UX 11.00 system; libXXX.sl is a symlink to 398214518Srpaulo# libXXX.{number}. 399214518Srpaulo# 400214518Srpaulo# The manual also says "library-level versioning" (think "sonames") was 401214518Srpaulo# added in HP-UX 10.0. 402214518Srpaulo# 403214518Srpaulo# XXX - this assumes we're using the HP linker, rather than the GNU 404214518Srpaulo# linker, even with GCC. 405214518Srpaulo# 406214518Srpaulolibpcap.sl: $(OBJ) 407214518Srpaulo @MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 408214518Srpaulo rm -f libpcap.$$MAJOR_VER 409214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 410214518Srpaulo ld -b $(LDFLAGS) -o libpcap.$$MAJOR_VER +h libpcap.$$MAJOR_VER \ 411214518Srpaulo $(OBJ) $(ADDLOBJS) $(LIBS) 412214518Srpaulo 413214518Srpaulo# 414214518Srpaulo# AIX is different from everybody else. A shared library is an archive 415214518Srpaulo# library with one or more shared-object components. We still build a 416214518Srpaulo# normal static archive library on AIX, for the benefit of the traditional 417214518Srpaulo# scheme of building libpcap and tcpdump in subdirectories of the 418214518Srpaulo# same directory, with tcpdump statically linked with the libpcap 419214518Srpaulo# in question, but we also build a shared library as "libpcap.shareda" 420214518Srpaulo# and install *it*, rather than the static library, as "libpcap.a". 421214518Srpaulo# 422214518Srpaulolibpcap.shareda: $(OBJ) 423214518Srpaulo @rm -f $@ shr.o 424214518Srpaulo $(CC) @V_SHLIB_OPT@ -o shr.o $(OBJ) $(ADDLOBJS) $(LDFLAGS) $(LIBS) 425235426Sdelphij $(AR) rc $@ shr.o 426214518Srpaulo 427214518Srpaulo# 428214518Srpaulo# For platforms that don't support shared libraries (or on which we 429214518Srpaulo# don't support shared libraries). 430214518Srpaulo# 431214518Srpaulolibpcap.none: 432214518Srpaulo 43326175Sfennerscanner.c: $(srcdir)/scanner.l 43426175Sfenner @rm -f $@ 435214518Srpaulo $(srcdir)/runlex.sh $(LEX) -o$@ $< 43617683Spst 43717683Spstscanner.o: scanner.c tokdefs.h 438235426Sdelphij $(CC) $(FULL_CFLAGS) -c scanner.c 43956889Sfenner 440127664Sbmspcap.o: version.h 441127664Sbms 44217683Spsttokdefs.h: grammar.c 44326175Sfennergrammar.c: $(srcdir)/grammar.y 44426175Sfenner @rm -f grammar.c tokdefs.h 44517683Spst $(YACC) -d $< 44617683Spst mv y.tab.c grammar.c 44717683Spst mv y.tab.h tokdefs.h 44817683Spst 44917683Spstgrammar.o: grammar.c 45026175Sfenner @rm -f $@ 451235426Sdelphij $(CC) $(FULL_CFLAGS) -Dyylval=pcap_lval -c grammar.c 45217683Spst 45339291Sfennerversion.o: version.c 454235426Sdelphij $(CC) $(FULL_CFLAGS) -c version.c 45556889Sfenner 456127664Sbmssnprintf.o: $(srcdir)/missing/snprintf.c 457235426Sdelphij $(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/snprintf.c 45875107Sfenner 45939291Sfennerversion.c: $(srcdir)/VERSION 46039291Sfenner @rm -f $@ 461214518Srpaulo if grep GIT ${srcdir}/VERSION >/dev/null; then \ 462214518Srpaulo read ver <${srcdir}/VERSION; \ 463214518Srpaulo echo $$ver | tr -d '\012'; \ 464214518Srpaulo date +_%Y_%m_%d; \ 465214518Srpaulo else \ 466214518Srpaulo cat ${srcdir}/VERSION; \ 467214518Srpaulo fi | sed -e 's/.*/char pcap_version[] = "&";/' > $@ 46839291Sfenner 469127664Sbms# 470127664Sbms# NOTE: this really is supposed to be static; importing a string 471127664Sbms# from a shared library does not work very well on many 472127664Sbms# versions of UNIX (Solaris, Linux, and the BSDs, for example), 473127664Sbms# so we make the version string static and return it from 474127664Sbms# a function, which does work. 475127664Sbms# 476127664Sbmsversion.h: $(srcdir)/VERSION 477127664Sbms @rm -f $@ 478214518Srpaulo if grep GIT ${srcdir}/VERSION >/dev/null; then \ 479214518Srpaulo read ver <${srcdir}/VERSION; \ 480214518Srpaulo echo $$ver | tr -d '\012'; \ 481214518Srpaulo date +_%Y_%m_%d; \ 482214518Srpaulo else \ 483214518Srpaulo cat ${srcdir}/VERSION; \ 484214518Srpaulo fi | sed -e 's/.*/static const char pcap_version_string[] = "libpcap version &";/' > $@ 485127664Sbms 48675107Sfennerbpf_filter.c: $(srcdir)/bpf/net/bpf_filter.c 48775107Sfenner rm -f bpf_filter.c 48875107Sfenner ln -s $(srcdir)/bpf/net/bpf_filter.c bpf_filter.c 48956889Sfenner 49075107Sfennerbpf_filter.o: bpf_filter.c 491235426Sdelphij $(CC) $(FULL_CFLAGS) -c bpf_filter.c 49217683Spst 493190225Srpaulo# 494190225Srpaulo# Generate the pcap-config script. 495190225Srpaulo# 496235426Sdelphij# Some Makes, e.g. AIX Make and Solaris Make, can't handle "--file=$@.tmp:$<"; 497235426Sdelphij# for example, the Solaris 9 make man page says 498235426Sdelphij# 499235426Sdelphij# Because make assigns $< and $* as it would for implicit rules 500235426Sdelphij# (according to the suffixes list and the directory contents), 501235426Sdelphij# they may be unreliable when used within explicit target entries. 502235426Sdelphij# 503235426Sdelphij# and this is an explicit target entry. 504235426Sdelphij# 505235426Sdelphij# Therefore, instead of using $<, we explicitly put in $(srcdir)/pcap-config.in. 506235426Sdelphij# 507235426Sdelphijpcap-config: $(srcdir)/pcap-config.in ./config.status 508190225Srpaulo @rm -f $@ $@.tmp 509235426Sdelphij ./config.status --file=$@.tmp:$(srcdir)/pcap-config.in 510190225Srpaulo mv $@.tmp $@ 511190225Srpaulo chmod a+x $@ 512190225Srpaulo 513190225Srpaulo# 514190225Srpaulo# Test programs - not built by default, and not installed. 515190225Srpaulo# 516235426Sdelphijtests: $(TESTS) 517190225Srpaulo 518235426Sdelphijfiltertest: tests/filtertest.c libpcap.a 519235426Sdelphij $(CC) $(FULL_CFLAGS) -I. -L. -o filtertest $(srcdir)/tests/filtertest.c libpcap.a $(LIBS) 520190225Srpaulo 521235426Sdelphijfindalldevstest: tests/findalldevstest.c libpcap.a 522235426Sdelphij $(CC) $(FULL_CFLAGS) -I. -L. -o findalldevstest $(srcdir)/tests/findalldevstest.c libpcap.a $(LIBS) 523214518Srpaulo 524235426Sdelphijnonblocktest: tests/nonblocktest.c libpcap.a 525235426Sdelphij $(CC) $(FULL_CFLAGS) -I. -L. -o nonblocktest $(srcdir)/tests/nonblocktest.c libpcap.a $(LIBS) 526214518Srpaulo 527235426Sdelphijopentest: tests/opentest.c libpcap.a 528235426Sdelphij $(CC) $(FULL_CFLAGS) -I. -L. -o opentest $(srcdir)/tests/opentest.c libpcap.a $(LIBS) 529235426Sdelphij 530235426Sdelphijselpolltest: tests/selpolltest.c libpcap.a 531235426Sdelphij $(CC) $(FULL_CFLAGS) -I. -L. -o selpolltest $(srcdir)/tests/selpolltest.c libpcap.a $(LIBS) 532235426Sdelphij 533214518Srpauloinstall: install-shared install-archive pcap-config 53475107Sfenner [ -d $(DESTDIR)$(libdir) ] || \ 53575107Sfenner (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 53675107Sfenner [ -d $(DESTDIR)$(includedir) ] || \ 53775107Sfenner (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir)) 538190225Srpaulo [ -d $(DESTDIR)$(includedir)/pcap ] || \ 539190225Srpaulo (mkdir -p $(DESTDIR)$(includedir)/pcap; chmod 755 $(DESTDIR)$(includedir)/pcap) 540190225Srpaulo [ -d $(DESTDIR)$(mandir)/man1 ] || \ 541190225Srpaulo (mkdir -p $(DESTDIR)$(mandir)/man1; chmod 755 $(DESTDIR)$(mandir)/man1) 542190225Srpaulo [ -d $(DESTDIR)$(mandir)/man3 ] || \ 543190225Srpaulo (mkdir -p $(DESTDIR)$(mandir)/man3; chmod 755 $(DESTDIR)$(mandir)/man3) 544190225Srpaulo [ -d $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@ ] || \ 545190225Srpaulo (mkdir -p $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@; chmod 755 $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@) 546190225Srpaulo [ -d $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@ ] || \ 547190225Srpaulo (mkdir -p $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@; chmod 755 $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@) 548214518Srpaulo for i in $(PUBHDR); do \ 549214518Srpaulo $(INSTALL_DATA) $(srcdir)/$$i \ 550214518Srpaulo $(DESTDIR)$(includedir)/$$i; done 551214518Srpaulo [ -d $(DESTDIR)$(bindir) ] || \ 552214518Srpaulo (mkdir -p $(DESTDIR)$(bindir); chmod 755 $(DESTDIR)$(bindir)) 553190225Srpaulo $(INSTALL_PROGRAM) pcap-config $(DESTDIR)$(bindir)/pcap-config 554190225Srpaulo for i in $(MAN1); do \ 555190225Srpaulo $(INSTALL_DATA) $(srcdir)/$$i \ 556190225Srpaulo $(DESTDIR)$(mandir)/man1/$$i; done 557214518Srpaulo for i in $(MAN3PCAP_NOEXPAND); do \ 558190225Srpaulo $(INSTALL_DATA) $(srcdir)/$$i \ 559190225Srpaulo $(DESTDIR)$(mandir)/man3/$$i; done 560214518Srpaulo for i in $(MAN3PCAP_EXPAND:.in=); do \ 561214518Srpaulo $(INSTALL_DATA) $$i \ 562214518Srpaulo $(DESTDIR)$(mandir)/man3/$$i; done 563214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap 564190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_name.3pcap \ 565190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap 566214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap 567190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_dump_open.3pcap \ 568190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap 569235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_freealldevs.3pcap 570235426Sdelphij ln $(DESTDIR)$(mandir)/man3/pcap_findalldevs.3pcap \ 571235426Sdelphij $(DESTDIR)$(mandir)/man3/pcap_freealldevs.3pcap 572214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap 573190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_geterr.3pcap \ 574190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap 575214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap 576190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_inject.3pcap \ 577190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap 578235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_free_datalinks.3pcap 579235426Sdelphij ln $(DESTDIR)$(mandir)/man3/pcap_list_datalinks.3pcap \ 580235426Sdelphij $(DESTDIR)$(mandir)/man3/pcap_free_datalinks.3pcap 581235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_free_tstamp_types.3pcap 582235426Sdelphij ln $(DESTDIR)$(mandir)/man3/pcap_list_tstamp_types.3pcap \ 583235426Sdelphij $(DESTDIR)$(mandir)/man3/pcap_free_tstamp_types.3pcap 584214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap 585190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_loop.3pcap \ 586190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap 587214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap 588190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_major_version.3pcap \ 589190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap 590214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_next.3pcap 591190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_next_ex.3pcap \ 592190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_next.3pcap 593214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap 594190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_open_offline.3pcap \ 595190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap 596214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap 597190225Srpaulo ln $(DESTDIR)$(mandir)/man3/pcap_setnonblock.3pcap \ 598190225Srpaulo $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap 599190225Srpaulo for i in $(MANFILE); do \ 600214518Srpaulo $(INSTALL_DATA) `echo $$i | sed 's/.manfile.in/.manfile/'` \ 601190225Srpaulo $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@/`echo $$i | sed 's/.manfile.in/.@MAN_FILE_FORMATS@/'`; done 602190225Srpaulo for i in $(MANMISC); do \ 603214518Srpaulo $(INSTALL_DATA) `echo $$i | sed 's/.manmisc.in/.manmisc/'` \ 604190225Srpaulo $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done 60517683Spst 606146768Ssaminstall-shared: install-shared-$(DYEXT) 607146768Ssaminstall-shared-so: libpcap.so 608214518Srpaulo [ -d $(DESTDIR)$(libdir) ] || \ 609214518Srpaulo (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 610214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 611214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 612214518Srpaulo $(INSTALL_PROGRAM) libpcap.so.$$VER $(DESTDIR)$(libdir)/libpcap.so.$$VER; \ 613214518Srpaulo ln -sf libpcap.so.$$VER $(DESTDIR)$(libdir)/libpcap.so.$$MAJOR_VER; \ 614214518Srpaulo ln -sf libpcap.so.$$MAJOR_VER $(DESTDIR)$(libdir)/libpcap.so 615146768Ssaminstall-shared-dylib: libpcap.dylib 616214518Srpaulo [ -d $(DESTDIR)$(libdir) ] || \ 617214518Srpaulo (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 618214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 619214518Srpaulo MAJOR_VER=A; \ 620214518Srpaulo $(INSTALL_PROGRAM) libpcap.$$VER.dylib $(DESTDIR)$(libdir)/libpcap.$$VER.dylib; \ 621214518Srpaulo ln -sf libpcap.$$VER.dylib $(DESTDIR)$(libdir)/libpcap.$$MAJOR_VER.dylib; \ 622214518Srpaulo ln -sf libpcap.$$MAJOR_VER.dylib $(DESTDIR)$(libdir)/libpcap.dylib 623214518Srpauloinstall-shared-sl: libpcap.sl 624214518Srpaulo [ -d $(DESTDIR)$(libdir) ] || \ 625214518Srpaulo (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 626214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 627214518Srpaulo $(INSTALL_PROGRAM) libpcap.$$MAJOR_VER $(DESTDIR)$(libdir) 628214518Srpaulo ln -sf libpcap.$$MAJOR_VER $(DESTDIR)$(libdir)/libpcap.sl 629214518Srpauloinstall-shared-shareda: libpcap.shareda 630214518Srpaulo # 631214518Srpaulo # AIX shared libraries are weird. They're archive libraries 632214518Srpaulo # with one or more shared object components. 633214518Srpaulo # 634214518Srpaulo [ -d $(DESTDIR)$(libdir) ] || \ 635214518Srpaulo (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 636214518Srpaulo $(INSTALL_PROGRAM) libpcap.shareda $(DESTDIR)$(libdir)/libpcap.a 637214518Srpauloinstall-shared-none: 638146768Ssam 639214518Srpauloinstall-archive: install-archive-$(DYEXT) 640214518Srpauloinstall-archive-so install-archive-dylib install-archive-sl install-archive-none: libpcap.a 641214518Srpaulo # 642214518Srpaulo # Most platforms have separate suffixes for shared and 643214518Srpaulo # archive libraries, so we install both. 644214518Srpaulo # 645214518Srpaulo [ -d $(DESTDIR)$(libdir) ] || \ 646214518Srpaulo (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir)) 647214518Srpaulo $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a 648214518Srpaulo $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a 649214518Srpauloinstall-archive-shareda: 650214518Srpaulo # 651214518Srpaulo # AIX, however, doesn't, so we don't install the archive 652214518Srpaulo # library on AIX. 653214518Srpaulo # 654214518Srpaulo 655214518Srpaulouninstall: uninstall-shared 65675107Sfenner rm -f $(DESTDIR)$(libdir)/libpcap.a 657214518Srpaulo for i in $(PUBHDR); do \ 658214518Srpaulo rm -f $(DESTDIR)$(includedir)/$$i; done 659190225Srpaulo -rmdir $(DESTDIR)$(includedir)/pcap 660214518Srpaulo rm -f $(DESTDIR)/$(bindir)/pcap-config 661190225Srpaulo for i in $(MAN1); do \ 662190225Srpaulo rm -f $(DESTDIR)$(mandir)/man1/$$i; done 663190225Srpaulo for i in $(MAN3PCAP); do \ 664190225Srpaulo rm -f $(DESTDIR)$(mandir)/man3/$$i; done 665214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_datalink_val_to_description.3pcap 666214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_dump_fopen.3pcap 667235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_freealldevs.3pcap 668214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_perror.3pcap 669214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_sendpacket.3pcap 670235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_free_datalinks.3pcap 671235426Sdelphij rm -f $(DESTDIR)$(mandir)/man3/pcap_free_tstamp_types.3pcap 672214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_dispatch.3pcap 673214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_minor_version.3pcap 674214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_next.3pcap 675214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_fopen_offline.3pcap 676214518Srpaulo rm -f $(DESTDIR)$(mandir)/man3/pcap_getnonblock.3pcap 677190225Srpaulo for i in $(MANFILE); do \ 678190225Srpaulo rm -f $(DESTDIR)$(mandir)/man@MAN_FILE_FORMATS@/`echo $$i | sed 's/.manfile.in/.@MAN_FILE_FORMATS@/'`; done 679190225Srpaulo for i in $(MANMISC); do \ 680190225Srpaulo rm -f $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done 68117683Spst 682214518Srpaulouninstall-shared: uninstall-shared-$(DYEXT) 683214518Srpaulouninstall-shared-so: 684214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 685214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 686214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.so.$$VER; \ 687214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.so.$$MAJOR_VER; \ 688214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.so 689214518Srpaulouninstall-shared-dylib: 690214518Srpaulo VER=`cat $(srcdir)/VERSION`; \ 691214518Srpaulo MAJOR_VER=A; \ 692214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.$$VER.dylib; \ 693214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.$$MAJOR_VER.dylib; \ 694214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.dylib 695214518Srpaulouninstall-shared-sl: 696214518Srpaulo MAJOR_VER=`sed 's/\([0-9][0-9]*\)\..*/\1/' $(srcdir)/VERSION`; \ 697214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.$$MAJOR_VER; \ 698214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.sl 699214518Srpaulouninstall-shared-shareda: 700214518Srpaulo rm -f $(DESTDIR)$(libdir)/libpcap.a 701214518Srpaulouninstall-shared-none: 702214518Srpaulo 70317683Spstclean: 704214518Srpaulo rm -f $(CLEANFILES) 70517683Spst 706146768Ssamdistclean: clean 707146768Ssam rm -f Makefile config.cache config.log config.status \ 708235426Sdelphij config.h gnuc.h net os-proto.h bpf_filter.c pcap-config \ 709190225Srpaulo stamp-h stamp-h.in 710190225Srpaulo rm -f $(MAN3PCAP_EXPAND:.in=) $(MANFILE:.in=) $(MANMISC:.in=) 711146768Ssam rm -rf autom4te.cache 71217683Spst 71317683Spsttags: $(TAGFILES) 71417683Spst ctags -wtd $(TAGFILES) 71517683Spst 716146768Ssampackaging/pcap.spec: packaging/pcap.spec.in VERSION 717146768Ssam RPMVERSION=`cat VERSION | sed s/-.*//g`; \ 718146768Ssam sed -e s/@VERSION@/$$RPMVERSION/ -e s/@NAME@/libpcap-`cat VERSION`/ $< > $@ 719146768Ssam 720214518Srpauloreleasetar: 721172677Smlaier @cwd=`pwd` ; dir=`basename $$cwd` ; name=$(PROG)-`cat VERSION` ; \ 722190225Srpaulo mkdir $$name; \ 723190225Srpaulo tar cf - $(CSRC) $(HDR) $(MAN1) $(MAN3PCAP_EXPAND) \ 724190225Srpaulo $(MAN3PCAP_NOEXPAND) $(MANFILE) $(MANMISC) $(EXTRA_DIST) | \ 725190225Srpaulo (cd $$name; tar xf -); \ 726190225Srpaulo tar -c -z -f $$name.tar.gz $$name; \ 727190225Srpaulo rm -rf $$name 72817683Spst 729127664Sbmsdepend: $(GENSRC) $(GENHDR) bpf_filter.c 73017683Spst ./mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC) 731146768Ssam 732146768SsamMakefile: Makefile.in config.status 733146768Ssam ./config.status 734146768Ssam @echo your Makefile was out of date, now run $(MAKE) again 735146768Ssam exit 1 736