1package { 2 default_applicable_licenses: ["external_libpcap_license"], 3} 4 5license { 6 name: "external_libpcap_license", 7 visibility: [":__subpackages__"], 8 license_kinds: [ 9 "SPDX-license-identifier-Apache-2.0", 10 "SPDX-license-identifier-BSD", 11 "SPDX-license-identifier-ISC", 12 "SPDX-license-identifier-MIT", 13 ], 14 license_text: [ 15 "LICENSE", 16 "NOTICE", 17 ], 18} 19 20cc_defaults { 21 name: "libpcap_defaults", 22 cflags: [ 23 "-D_BSD_SOURCE", 24 "-DHAVE_CONFIG_H", 25 "-Dlint", 26 "-D_U_=__attribute__((__unused__))", 27 "-Wall", 28 "-Werror", 29 "-Wno-macro-redefined", 30 "-Wno-pointer-arith", 31 "-Wno-sign-compare", 32 "-Wno-unused-parameter", 33 "-Wno-unused-result", 34 "-Wno-tautological-compare", 35 ], 36} 37 38cc_library { 39 name: "libpcap", 40 host_supported: true, 41 vendor_available: true, 42 // Build against the NDK 29 because it's used by the network stack mainline module tests, which 43 // need to support Q. 44 // TODO(b/148792341): stop hardcoding sdk_version integers in libraries all over the tree and 45 // define a min_apex_sdk_version property that all module code can use. 46 sdk_version: "29", 47 defaults: ["libpcap_defaults"], 48 49 // (Matches order in libpcap's Makefile.) 50 srcs: [ 51 "bpf_dump.c", 52 "bpf_filter.c", 53 "bpf_image.c", 54 "etherent.c", 55 "fad-getad.c", 56 "fmtutils.c", 57 "gencode.c", 58 "grammar.c", 59 "nametoaddr.c", 60 "optimize.c", 61 "pcap-common.c", 62 "pcap-linux.c", 63 "pcap-netfilter-linux-android.c", 64 "pcap-usb-linux.c", 65 "pcap-util.c", 66 "pcap.c", 67 "savefile.c", 68 "scanner.c", 69 "sf-pcap.c", 70 "sf-pcapng.c", 71 ], 72 73 target: { 74 linux: { 75 srcs: [ 76 "missing/strlcpy.c", 77 ], 78 }, 79 darwin: { 80 enabled: false, 81 }, 82 }, 83 84 export_include_dirs: ["."], 85} 86 87// 88// Tests (but not _unit_ tests). 89// 90// It's unlikely anyone's running these manually, but at least compiling them 91// shows we can compile libpcap callers... 92// 93 94cc_test { 95 name: "libpcap_can_set_rfmon_test", 96 defaults: ["libpcap_defaults"], 97 gtest: false, 98 srcs: ["testprogs/can_set_rfmon_test.c"], 99 static_libs: ["libpcap"], 100} 101 102cc_test { 103 name: "libpcap_capture_test", 104 defaults: ["libpcap_defaults"], 105 gtest: false, 106 srcs: ["testprogs/capturetest.c"], 107 static_libs: ["libpcap"], 108} 109 110cc_test { 111 name: "libpcap_filter_test", 112 defaults: ["libpcap_defaults"], 113 gtest: false, 114 srcs: ["testprogs/filtertest.c"], 115 static_libs: ["libpcap"], 116} 117 118cc_test { 119 name: "libpcap_findalldevs_test", 120 defaults: ["libpcap_defaults"], 121 gtest: false, 122 srcs: ["testprogs/findalldevstest.c"], 123 static_libs: ["libpcap"], 124} 125 126cc_test { 127 name: "libpcap_open_test", 128 defaults: ["libpcap_defaults"], 129 gtest: false, 130 srcs: ["testprogs/opentest.c"], 131 static_libs: ["libpcap"], 132} 133 134cc_test { 135 name: "libpcap_reactivate_test", 136 defaults: ["libpcap_defaults"], 137 gtest: false, 138 srcs: ["testprogs/reactivatetest.c"], 139 static_libs: ["libpcap"], 140} 141 142cc_test { 143 name: "libpcap_selpoll_test", 144 defaults: ["libpcap_defaults"], 145 gtest: false, 146 srcs: ["testprogs/selpolltest.c"], 147 static_libs: ["libpcap"], 148} 149 150cc_test { 151 name: "libpcap_threadsignal_test", 152 defaults: ["libpcap_defaults"], 153 gtest: false, 154 srcs: ["testprogs/threadsignaltest.c"], 155 static_libs: ["libpcap"], 156} 157 158cc_test { 159 name: "libpcap_valgrind_test", 160 defaults: ["libpcap_defaults"], 161 gtest: false, 162 srcs: ["testprogs/valgrindtest.c"], 163 static_libs: ["libpcap"], 164} 165