1# $NetBSD: Makefile,v 1.34 2023/08/17 16:19:05 christos Exp $ 2 3USE_SHLIBDIR=yes 4.include <bsd.init.mk> 5USE_FORT?= yes # network protocol library 6 7CPPFLAGS+= -DPCAP_DONT_INCLUDE_PCAP_BPF_H -DHAVE_CONFIG_H -DENABLE_REMOTE 8CPPFLAGS+= -DPCAP_SUPPORT_RPCAP 9CPPFLAGS+= -I${.OBJDIR} 10 11.SUFFIXES: .3 .3pcap 12 13.3pcap.3: 14 @rm -f ${.TARGET} 15 ${TOOL_SED} -e 's,@MAN_FILE_FORMATS@,5,g' \ 16 -e 's,@MAN_MISC_INFO@,7,g' \ 17 -e 's,3PCAP,3,g' < ${.ALLSRC} > ${.TARGET} 18 19 20# Search first in the kernel for bpf_filter.c 21.PATH: ${NETBSDSRCDIR}/sys/net 22.PATH: ${SRCDIR} 23 24LIB= pcap 25MAN3= \ 26pcap_activate.3pcap \ 27pcap_breakloop.3pcap \ 28pcap_can_set_rfmon.3pcap \ 29pcap_close.3pcap \ 30pcap_create.3pcap \ 31pcap_datalink_name_to_val.3pcap \ 32pcap_datalink_val_to_name.3pcap \ 33pcap_dump.3pcap \ 34pcap_dump_close.3pcap \ 35pcap_dump_file.3pcap \ 36pcap_dump_flush.3pcap \ 37pcap_dump_ftell.3pcap \ 38pcap_file.3pcap \ 39pcap_fileno.3pcap \ 40pcap_findalldevs.3pcap \ 41pcap_freecode.3pcap \ 42pcap_get_required_select_timeout.3pcap \ 43pcap_get_selectable_fd.3pcap \ 44pcap_geterr.3pcap \ 45pcap_inject.3pcap \ 46pcap_is_swapped.3pcap \ 47pcap_lib_version.3pcap \ 48pcap_lookupdev.3pcap \ 49pcap_lookupnet.3pcap \ 50pcap_loop.3pcap \ 51pcap_major_version.3pcap \ 52pcap_next_ex.3pcap \ 53pcap_offline_filter.3pcap \ 54pcap_open_live.3pcap \ 55pcap_set_buffer_size.3pcap \ 56pcap_set_datalink.3pcap \ 57pcap_set_promisc.3pcap \ 58pcap_set_rfmon.3pcap \ 59pcap_set_snaplen.3pcap \ 60pcap_set_timeout.3pcap \ 61pcap_setdirection.3pcap \ 62pcap_setfilter.3pcap \ 63pcap_setnonblock.3pcap \ 64pcap_snapshot.3pcap \ 65pcap_stats.3pcap \ 66pcap_statustostr.3pcap \ 67pcap_strerror.3pcap \ 68pcap_tstamp_type_name_to_val.3pcap \ 69pcap_tstamp_type_val_to_name.3pcap \ 70${MAN3IN:.in=} 71 72MAN3IN= \ 73pcap.3pcap.in \ 74pcap_compile.3pcap.in \ 75pcap_datalink.3pcap.in \ 76pcap_dump_open.3pcap.in \ 77pcap_get_tstamp_precision.3pcap.in \ 78pcap_list_datalinks.3pcap.in \ 79pcap_list_tstamp_types.3pcap.in \ 80pcap_open_dead.3pcap.in \ 81pcap_open_offline.3pcap.in \ 82pcap_set_immediate_mode.3pcap.in \ 83pcap_set_tstamp_precision.3pcap.in \ 84pcap_set_tstamp_type.3pcap.in 85 86MANFILEIN= \ 87pcap-savefile.manfile.in 88 89MANMISCIN= \ 90pcap-filter.manmisc.in \ 91pcap-linktype.manmisc.in \ 92pcap-tstamp.manmisc.in 93 94 95CLEANFILES+= ${MAN} 96 97MAN= ${MAN3:S/3pcap/3/g} ${MAN3IN:S/3pcap.in/3/g} \ 98 ${MANMISCIN:S/manmisc.in/7/g} ${MANFILEIN:S/manfile.in/5/g} 99WARNS?= 4 100 101.for i in ${MAN3IN} 102${i:S/pcap.in//}: ${i} __sed 103.endfor 104 105.for i in ${MANMISCIN} 106${i:S/manmisc.in/7/}: ${i} __sed 107.endfor 108 109.for i in ${MANFILEIN} 110${i:S/manfile.in/5/}: ${i} __sed 111.endfor 112 113CPPFLAGS+= -I${.CURDIR}/../include -I${.CURDIR} -I${SRCDIR} 114CPPFLAGS+= -DYYBISON -DYYDEBUG 115LPREFIX= pcap_ 116LFLAGS+= --header-file=scanner.h 117YPREFIX= pcap_ 118YHEADER= 1 119 120CPPFLAGS+= -DHAVE_CONFIG_H 121#CPPFLAGS+= -D_U_="__attribute__((__unused__))" 122 123.if (${USE_INET6} != "no") 124CPPFLAGS+= -DINET6 125.endif 126 127SRCS= \ 128bpf_dump.c \ 129bpf_filter.c \ 130bpf_image.c \ 131etherent.c \ 132fad-getad.c \ 133fmtutils.c \ 134gencode.c \ 135grammar.y \ 136nametoaddr.c \ 137optimize.c \ 138pcap-bpf.c \ 139pcap-common.c \ 140pcap-new.c \ 141pcap-rpcap.c \ 142pcap-rpcap-unix.c \ 143pcap-usb-linux-common.c \ 144pcap-util.c \ 145pcap.c \ 146rpcap-protocol.c \ 147savefile.c \ 148scanner.l \ 149sf-pcap.c \ 150sf-pcapng.c \ 151sockutils.c 152 153 154INCS= pcap/pcap.h pcap/namedb.h pcap/funcattrs.h \ 155 pcap/pcap-inttypes.h pcap/compiler-tests.h pcap/socket.h 156INCSDIR= /usr/include 157INCSYMLINKS+= ../net/bpf.h ${INCSDIR}/pcap/bpf.h 158INCSYMLINKS+= pcap/pcap.h ${INCSDIR}/pcap.h 159INCSYMLINKS+= pcap/namedb.h ${INCSDIR}/pcap-namedb.h 160 161scanner.d scanner.o: tokdefs.h 162 163tokdefs.h: grammar.h 164 cp $? $@ 165 166CLEANFILES+= tokdefs.h scanner.h grammar.y 167 168COPTS.bpf_image.c+= -Wno-format-nonliteral 169 170COPTS.gencode.c+= ${CC_WNO_IMPLICIT_FALLTHROUGH} 171COPTS.pcap.c+= ${CC_WNO_FORMAT_TRUNCATION} 172COPTS.pcap-bpf.c+= ${CC_WNO_STRINGOP_TRUNCATION} 173COPTS.pcap-new.c+= ${CC_WNO_FORMAT_TRUNCATION} 174COPTS.pcap-rpcap.c+= ${CC_WNO_FORMAT_TRUNCATION} 175 176CWARNFLAGS.clang+= -Wno-format-extra-args \ 177 -Wno-unneeded-internal-declaration 178 179grammar.y: grammar.y.in 180 ${_MKTARGET_CREATE} 181 ${TOOL_SED} -e 's/@REENTRANT_PARSER@/%pure-parser/g' < ${.ALLSRC} > ${.TARGET} 182 183.if ${USE_OPENSSL:Uno} == "yes" 184CPPFLAGS += -DHAVE_OPENSSL 185SRCS += sslutils.c 186LIBDPLIBS += ssl ${OPENSSLDIR}/lib/libssl \ 187 crypto ${OPENSSLDIR}/lib/libcrypto 188.endif 189 190.include <bsd.lib.mk> 191