summaryrefslogtreecommitdiffstats
path: root/libbsd.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2015-06-15 17:42:23 +1000
committerChris Johns <chrisj@rtems.org>2015-06-15 17:42:23 +1000
commit8440506ee8945ad57f5e20e9962084d67808eb22 (patch)
tree38f567b1c56846b88f5f0828bd244b05519998ba /libbsd.py
parentUpdate LibBSD doco. (diff)
downloadrtems-libbsd-8440506ee8945ad57f5e20e9962084d67808eb22.tar.bz2
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.
Diffstat (limited to 'libbsd.py')
-rwxr-xr-xlibbsd.py324
1 files changed, 321 insertions, 3 deletions
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',
@@ -2044,6 +2044,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
#
def in_cksum(mm):
@@ -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))