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-common.c", 65 "pcap-usb-linux.c", 66 "pcap-util.c", 67 "pcap.c", 68 "savefile.c", 69 "scanner.c", 70 "sf-pcap.c", 71 "sf-pcapng.c", 72 ], 73 74 target: { 75 linux: { 76 srcs: [ 77 "missing/strlcpy.c", 78 ], 79 }, 80 darwin: { 81 enabled: false, 82 }, 83 }, 84 85 export_include_dirs: ["."], 86} 87 88// 89// Tests (but not _unit_ tests). 90// 91// It's unlikely anyone's running these manually, but at least compiling them 92// shows we can compile libpcap callers... 93// 94 95cc_test { 96 name: "libpcap_can_set_rfmon_test", 97 defaults: ["libpcap_defaults"], 98 gtest: false, 99 srcs: ["testprogs/can_set_rfmon_test.c"], 100 static_libs: ["libpcap"], 101} 102 103cc_test { 104 name: "libpcap_capture_test", 105 defaults: ["libpcap_defaults"], 106 gtest: false, 107 srcs: ["testprogs/capturetest.c"], 108 static_libs: ["libpcap"], 109} 110 111cc_test { 112 name: "libpcap_filter_test", 113 defaults: ["libpcap_defaults"], 114 gtest: false, 115 srcs: ["testprogs/filtertest.c"], 116 static_libs: ["libpcap"], 117} 118 119cc_test { 120 name: "libpcap_findalldevs_test", 121 defaults: ["libpcap_defaults"], 122 gtest: false, 123 srcs: ["testprogs/findalldevstest.c"], 124 static_libs: ["libpcap"], 125} 126 127cc_test { 128 name: "libpcap_open_test", 129 defaults: ["libpcap_defaults"], 130 gtest: false, 131 srcs: ["testprogs/opentest.c"], 132 static_libs: ["libpcap"], 133} 134 135cc_test { 136 name: "libpcap_reactivate_test", 137 defaults: ["libpcap_defaults"], 138 gtest: false, 139 srcs: ["testprogs/reactivatetest.c"], 140 static_libs: ["libpcap"], 141} 142 143cc_test { 144 name: "libpcap_selpoll_test", 145 defaults: ["libpcap_defaults"], 146 gtest: false, 147 srcs: ["testprogs/selpolltest.c"], 148 static_libs: ["libpcap"], 149} 150 151cc_test { 152 name: "libpcap_threadsignal_test", 153 defaults: ["libpcap_defaults"], 154 gtest: false, 155 srcs: ["testprogs/threadsignaltest.c"], 156 static_libs: ["libpcap"], 157} 158 159cc_test { 160 name: "libpcap_valgrind_test", 161 defaults: ["libpcap_defaults"], 162 gtest: false, 163 srcs: ["testprogs/valgrindtest.c"], 164 static_libs: ["libpcap"], 165} 166