From 8440506ee8945ad57f5e20e9962084d67808eb22 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Mon, 15 Jun 2015 17:42:23 +1000 Subject: Add tcpdump and libpcap. - Update the file builder generator to handle generator specific cflags and includes. The tcpdump and libpcap have localised headers and need specific headers paths to see them. There are also module specific flags and these need to be passed to the lex and yacc generators. - Add the tcpdump support. --- libbsd.py | 324 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 321 insertions(+), 3 deletions(-) (limited to 'libbsd.py') diff --git a/libbsd.py b/libbsd.py index 4d98e515..56d3a7aa 100755 --- a/libbsd.py +++ b/libbsd.py @@ -137,7 +137,7 @@ def rtems(mm): mm.generator['rtems-path'](), mm.generator['no-convert'](), mm.generator['no-convert'](), - mm.generator['kvm-symbols']())) + mm.generator['kvm-symbols'](includes = 'rtemsbsd/rtems'))) mod.addFile(mm.generator['file']('lib/libc/net/nslexer.l', mm.generator['freebsd-path'](), mm.generator['convert'](), @@ -1856,7 +1856,7 @@ def user_space(mm): 'sbin/dhclient/tree.h', 'sbin/ifconfig/ifconfig.h', 'sbin/ifconfig/regdomain.h', - 'usr.bin/netstat/netstat.h', + 'usr.bin/netstat/netstat.h' ] ) mod.addFile(mm.generator['file']('include/rpc/rpcb_prot.x', @@ -1871,7 +1871,7 @@ def user_space(mm): mm.generator['route-keywords']())) mod.addUserSpaceSourceFiles( [ - 'lib/libc/db/btree/bt_close.c', + 'lib/libc/db/btree/bt_close.c', 'lib/libc/db/btree/bt_conv.c', 'lib/libc/db/btree/bt_debug.c', 'lib/libc/db/btree/bt_delete.c', @@ -2043,6 +2043,322 @@ def user_space(mm): ) return mod +# +# Contrib libpcap +# +def contrib_libpcap(mm): + mod = builder.Module('contrib_libpcap') + cflags = ['-DINET6', + '-D_U_=__attribute__((unused))', + '-DHAVE_INTTYPES=1', + '-DHAVE_STDINT=1', + '-DHAVE_STRERROR=1', + '-DHAVE_STRLCPY=1', + '-DHAVE_SNPRINTF=1', + '-DHAVE_VSNPRINTF=1'] + mod.addUserSpaceHeaderFiles( + [ + 'contrib/libpcap/arcnet.h', + 'contrib/libpcap/atmuni31.h', + 'contrib/libpcap/ethertype.h', + 'contrib/libpcap/gencode.h', + 'contrib/libpcap/ieee80211.h', + 'contrib/libpcap/llc.h', + 'contrib/libpcap/nlpid.h', + 'contrib/libpcap/pcap-common.h', + 'contrib/libpcap/pcap-int.h', + 'contrib/libpcap/pcap-namedb.h', + 'contrib/libpcap/pcap.h', + 'contrib/libpcap/pcap/ipnet.h', + 'contrib/libpcap/pcap/namedb.h', + 'contrib/libpcap/pcap/pcap.h', + 'contrib/libpcap/pcap/sll.h', + 'contrib/libpcap/pcap/usb.h', + 'contrib/libpcap/ppp.h', + 'contrib/libpcap/sf-pcap-ng.h', + 'contrib/libpcap/sf-pcap.h', + 'contrib/libpcap/sunatmpos.h', + ] + ) + gen_cflags = cflags + ['-DNEED_YYPARSE_WRAPPER=1', + '-Dyylval=pcap_lval'] + mod.addFile(mm.generator['file']('contrib/libpcap/scanner.l', + mm.generator['freebsd-path'](), + mm.generator['convert'](), + mm.generator['convert'](), + mm.generator['lex']('pcap', + 'scanner.c', + gen_cflags))) + mod.addFile(mm.generator['file']('contrib/libpcap/grammar.y', + mm.generator['freebsd-path'](), + mm.generator['convert'](), + mm.generator['convert'](), + mm.generator['yacc']('pcap', + 'tokdefs.h', + gen_cflags))) + mod.addUserSpaceSourceFiles( + [ + 'contrib/libpcap/bpf_image.c', + 'contrib/libpcap/etherent.c', + 'contrib/libpcap/fad-getad.c', + 'contrib/libpcap/gencode.c', + 'contrib/libpcap/inet.c', + 'contrib/libpcap/pcap.c', + 'contrib/libpcap/pcap-bpf.c', + 'contrib/libpcap/pcap-common.c', + 'contrib/libpcap/optimize.c', + 'contrib/libpcap/nametoaddr.c', + 'contrib/libpcap/savefile.c', + 'contrib/libpcap/sf-pcap.c', + 'contrib/libpcap/sf-pcap-ng.c', + ], + mm.generator['source'](cflags) + ) + return mod + +# +# /usr/sbin/tcpdump +# +def usr_sbin_tcpdump(mm): + mod = builder.Module('usr_sbin_tcpdump') + mod.addUserSpaceHeaderFiles( + [ + 'contrib/tcpdump/addrtoname.h', + 'contrib/tcpdump/af.h', + 'contrib/tcpdump/ah.h', + 'contrib/tcpdump/aodv.h', + 'contrib/tcpdump/appletalk.h', + 'contrib/tcpdump/arcnet.h', + 'contrib/tcpdump/atm.h', + 'contrib/tcpdump/bgp.h', + 'contrib/tcpdump/bootp.h', + 'contrib/tcpdump/chdlc.h', + 'contrib/tcpdump/cpack.h', + 'contrib/tcpdump/dccp.h', + 'contrib/tcpdump/decnet.h', + 'contrib/tcpdump/decode_prefix.h', + 'contrib/tcpdump/enc.h', + 'contrib/tcpdump/esp.h', + 'contrib/tcpdump/ether.h', + 'contrib/tcpdump/ethertype.h', + 'contrib/tcpdump/extract.h', + 'contrib/tcpdump/fddi.h', + 'contrib/tcpdump/forces.h', + 'contrib/tcpdump/gmpls.h', + 'contrib/tcpdump/gmt2local.h', + 'contrib/tcpdump/icmp6.h', + 'contrib/tcpdump/ieee802_11.h', + 'contrib/tcpdump/ieee802_11_radio.h', + 'contrib/tcpdump/igrp.h', + 'contrib/tcpdump/interface.h', + 'contrib/tcpdump/ip.h', + 'contrib/tcpdump/ip6.h', + 'contrib/tcpdump/ipfc.h', + 'contrib/tcpdump/ipnet.h', + 'contrib/tcpdump/ipproto.h', + 'contrib/tcpdump/ipsec_doi.h', + 'contrib/tcpdump/ipx.h', + 'contrib/tcpdump/isakmp.h', + 'contrib/tcpdump/l2tp.h', + 'contrib/tcpdump/l2vpn.h', + 'contrib/tcpdump/lane.h', + 'contrib/tcpdump/llc.h', + 'contrib/tcpdump/machdep.h', + 'contrib/tcpdump/mib.h', + 'contrib/tcpdump/mpls.h', + 'contrib/tcpdump/nameser.h', + 'contrib/tcpdump/netbios.h', + 'contrib/tcpdump/netdissect.h', + 'contrib/tcpdump/nfs.h', + 'contrib/tcpdump/nfsfh.h', + 'contrib/tcpdump/nlpid.h', + 'contrib/tcpdump/ntp.h', + 'contrib/tcpdump/oakley.h', + 'contrib/tcpdump/ospf.h', + 'contrib/tcpdump/ospf6.h', + 'contrib/tcpdump/oui.h', + 'contrib/tcpdump/pcap-missing.h', + 'contrib/tcpdump/pmap_prot.h', + 'contrib/tcpdump/ppi.h', + 'contrib/tcpdump/ppp.h', + 'contrib/tcpdump/route6d.h', + 'contrib/tcpdump/rpc_auth.h', + 'contrib/tcpdump/rpc_msg.h', + 'contrib/tcpdump/rx.h', + 'contrib/tcpdump/sctpConstants.h', + 'contrib/tcpdump/sctpHeader.h', + 'contrib/tcpdump/setsignal.h', + 'contrib/tcpdump/signature.h', + 'contrib/tcpdump/slcompress.h', + 'contrib/tcpdump/slip.h', + 'contrib/tcpdump/sll.h', + 'contrib/tcpdump/smb.h', + 'contrib/tcpdump/tcp.h', + 'contrib/tcpdump/tcpdump-stdinc.h', + 'contrib/tcpdump/telnet.h', + 'contrib/tcpdump/tftp.h', + 'contrib/tcpdump/timed.h', + 'contrib/tcpdump/token.h', + 'contrib/tcpdump/udp.h', + 'usr.sbin/tcpdump/tcpdump/config.h', + ] + ) + mod.addUserSpaceSourceFiles( + [ + 'contrib/tcpdump/addrtoname.c', + 'contrib/tcpdump/af.c', + 'contrib/tcpdump/bpf_dump.c', + 'contrib/tcpdump/checksum.c', + 'contrib/tcpdump/cpack.c', + 'contrib/tcpdump/gmpls.c', + 'contrib/tcpdump/gmt2local.c', + 'contrib/tcpdump/in_cksum.c', + 'contrib/tcpdump/ipproto.c', + 'contrib/tcpdump/machdep.c', + 'contrib/tcpdump/nlpid.c', + 'contrib/tcpdump/l2vpn.c', + 'contrib/tcpdump/oui.c', + 'contrib/tcpdump/parsenfsfh.c', + 'contrib/tcpdump/print-802_11.c', + 'contrib/tcpdump/print-802_15_4.c', + 'contrib/tcpdump/print-ah.c', + 'contrib/tcpdump/print-aodv.c', + 'contrib/tcpdump/print-ap1394.c', + 'contrib/tcpdump/print-arcnet.c', + 'contrib/tcpdump/print-arp.c', + 'contrib/tcpdump/print-ascii.c', + 'contrib/tcpdump/print-atalk.c', + 'contrib/tcpdump/print-atm.c', + 'contrib/tcpdump/print-babel.c', + 'contrib/tcpdump/print-beep.c', + 'contrib/tcpdump/print-bfd.c', + 'contrib/tcpdump/print-bgp.c', + 'contrib/tcpdump/print-bootp.c', + 'contrib/tcpdump/print-bt.c', + 'contrib/tcpdump/print-carp.c', + 'contrib/tcpdump/print-cdp.c', + 'contrib/tcpdump/print-cfm.c', + 'contrib/tcpdump/print-chdlc.c', + 'contrib/tcpdump/print-cip.c', + 'contrib/tcpdump/print-cnfp.c', + 'contrib/tcpdump/print-dccp.c', + 'contrib/tcpdump/print-decnet.c', + 'contrib/tcpdump/print-dhcp6.c', + 'contrib/tcpdump/print-domain.c', + 'contrib/tcpdump/print-dtp.c', + 'contrib/tcpdump/print-dvmrp.c', + 'contrib/tcpdump/print-eap.c', + 'contrib/tcpdump/print-egp.c', + 'contrib/tcpdump/print-eigrp.c', + 'contrib/tcpdump/print-enc.c', + 'contrib/tcpdump/print-esp.c', + 'contrib/tcpdump/print-ether.c', + 'contrib/tcpdump/print-fddi.c', + 'contrib/tcpdump/print-forces.c', + 'contrib/tcpdump/print-fr.c', + 'contrib/tcpdump/print-frag6.c', + 'contrib/tcpdump/print-gre.c', + 'contrib/tcpdump/print-hsrp.c', + 'contrib/tcpdump/print-icmp.c', + 'contrib/tcpdump/print-icmp6.c', + 'contrib/tcpdump/print-igmp.c', + 'contrib/tcpdump/print-igrp.c', + 'contrib/tcpdump/print-ip.c', + 'contrib/tcpdump/print-ip6.c', + 'contrib/tcpdump/print-ip6opts.c', + 'contrib/tcpdump/print-ipcomp.c', + 'contrib/tcpdump/print-ipfc.c', + 'contrib/tcpdump/print-ipnet.c', + 'contrib/tcpdump/print-ipx.c', + 'contrib/tcpdump/print-isakmp.c', + 'contrib/tcpdump/print-isoclns.c', + 'contrib/tcpdump/print-juniper.c', + 'contrib/tcpdump/print-krb.c', + 'contrib/tcpdump/print-l2tp.c', + 'contrib/tcpdump/print-lane.c', + 'contrib/tcpdump/print-ldp.c', + 'contrib/tcpdump/print-llc.c', + 'contrib/tcpdump/print-lldp.c', + 'contrib/tcpdump/print-lmp.c', + 'contrib/tcpdump/print-lspping.c', + 'contrib/tcpdump/print-lwapp.c', + 'contrib/tcpdump/print-lwres.c', + 'contrib/tcpdump/print-mobile.c', + 'contrib/tcpdump/print-mobility.c', + 'contrib/tcpdump/print-mpcp.c', + 'contrib/tcpdump/print-mpls.c', + 'contrib/tcpdump/print-msdp.c', + 'contrib/tcpdump/print-msnlb.c', + 'contrib/tcpdump/print-netbios.c', + 'contrib/tcpdump/print-nfs.c', + 'contrib/tcpdump/print-ntp.c', + 'contrib/tcpdump/print-null.c', + 'contrib/tcpdump/print-olsr.c', + 'contrib/tcpdump/print-ospf.c', + 'contrib/tcpdump/print-ospf6.c', + 'contrib/tcpdump/print-otv.c', + 'contrib/tcpdump/print-pflog.c', + 'contrib/tcpdump/print-pfsync.c', + 'contrib/tcpdump/print-pgm.c', + 'contrib/tcpdump/print-pim.c', + 'contrib/tcpdump/print-ppi.c', + 'contrib/tcpdump/print-ppp.c', + 'contrib/tcpdump/print-pppoe.c', + 'contrib/tcpdump/print-pptp.c', + 'contrib/tcpdump/print-radius.c', + 'contrib/tcpdump/print-raw.c', + 'contrib/tcpdump/print-rip.c', + 'contrib/tcpdump/print-ripng.c', + 'contrib/tcpdump/print-rpki-rtr.c', + 'contrib/tcpdump/print-rrcp.c', + 'contrib/tcpdump/print-rsvp.c', + 'contrib/tcpdump/print-rt6.c', + 'contrib/tcpdump/print-rx.c', + 'contrib/tcpdump/print-sctp.c', + 'contrib/tcpdump/print-sflow.c', + 'contrib/tcpdump/print-sip.c', + 'contrib/tcpdump/print-sl.c', + 'contrib/tcpdump/print-sll.c', + 'contrib/tcpdump/print-slow.c', + 'contrib/tcpdump/print-smb.c', + 'contrib/tcpdump/print-snmp.c', + 'contrib/tcpdump/print-stp.c', + 'contrib/tcpdump/print-sunatm.c', + #'contrib/tcpdump/print-sunrpc.c', + 'contrib/tcpdump/print-symantec.c', + 'contrib/tcpdump/print-syslog.c', + 'contrib/tcpdump/print-tcp.c', + 'contrib/tcpdump/print-telnet.c', + 'contrib/tcpdump/print-tftp.c', + 'contrib/tcpdump/print-timed.c', + 'contrib/tcpdump/print-tipc.c', + 'contrib/tcpdump/print-token.c', + 'contrib/tcpdump/print-udld.c', + 'contrib/tcpdump/print-udp.c', + 'contrib/tcpdump/print-usb.c', + 'contrib/tcpdump/print-vjc.c', + 'contrib/tcpdump/print-vqp.c', + 'contrib/tcpdump/print-vrrp.c', + 'contrib/tcpdump/print-vtp.c', + 'contrib/tcpdump/print-vxlan.c', + 'contrib/tcpdump/print-wb.c', + 'contrib/tcpdump/print-zephyr.c', + 'contrib/tcpdump/print-zeromq.c', + 'contrib/tcpdump/setsignal.c', + 'contrib/tcpdump/signature.c', + 'contrib/tcpdump/smbutil.c', + 'contrib/tcpdump/tcpdump.c', + 'contrib/tcpdump/util.c', + ], + mm.generator['source'](['-DINET6', + '-D_U_=__attribute__((unused))', + '-DHAVE_CONFIG_H=1', + '-DHAVE_NET_PFVAR_H=1'], + ['freebsd/contrib/tcpdump', + 'freebsd/usr.sbin/tcpdump/tcpdump']) + ) + return mod + # # in_chksum Module # @@ -2289,6 +2605,8 @@ def sources(mm): mm.addModule(in_cksum(mm)) mm.addModule(user_space(mm)) + mm.addModule(contrib_libpcap(mm)) + mm.addModule(usr_sbin_tcpdump(mm)) mm.addModule(tests(mm)) mm.addModule(dhcpcd(mm)) -- cgit v1.2.3