xref: /aosp_15_r20/external/libpcap/Android.bp (revision 8b26181f966a6af5cf6981a6f474313de533bb28)
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