xref: /aosp_15_r20/external/bc/Android.bp (revision 5a6e848804d15c18a0125914844ee4eb0bda4fcf)
1*5a6e8488SAndroid Build Coastguard Workerpackage {
2*5a6e8488SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_bc_license"],
3*5a6e8488SAndroid Build Coastguard Worker}
4*5a6e8488SAndroid Build Coastguard Worker
5*5a6e8488SAndroid Build Coastguard Workerlicense {
6*5a6e8488SAndroid Build Coastguard Worker    name: "external_bc_license",
7*5a6e8488SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
8*5a6e8488SAndroid Build Coastguard Worker    license_kinds: [
9*5a6e8488SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
10*5a6e8488SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
11*5a6e8488SAndroid Build Coastguard Worker    ],
12*5a6e8488SAndroid Build Coastguard Worker    license_text: [
13*5a6e8488SAndroid Build Coastguard Worker        "LICENSE.md",
14*5a6e8488SAndroid Build Coastguard Worker        "NOTICE.md",
15*5a6e8488SAndroid Build Coastguard Worker    ],
16*5a6e8488SAndroid Build Coastguard Worker}
17*5a6e8488SAndroid Build Coastguard Worker
18*5a6e8488SAndroid Build Coastguard Workercc_defaults {
19*5a6e8488SAndroid Build Coastguard Worker    name: "bc-defaults",
20*5a6e8488SAndroid Build Coastguard Worker
21*5a6e8488SAndroid Build Coastguard Worker    // Upstream explicitly builds with c99 rather than cc.
22*5a6e8488SAndroid Build Coastguard Worker    c_std: "gnu99",
23*5a6e8488SAndroid Build Coastguard Worker    cflags: [
24*5a6e8488SAndroid Build Coastguard Worker        "-include bc-version.h",
25*5a6e8488SAndroid Build Coastguard Worker        "-DBC_ENABLED=1",
26*5a6e8488SAndroid Build Coastguard Worker        "-DDC_ENABLED=0",
27*5a6e8488SAndroid Build Coastguard Worker        "-DBC_ENABLE_EXTRA_MATH=0",
28*5a6e8488SAndroid Build Coastguard Worker        "-DBC_ENABLE_HISTORY=0",
29*5a6e8488SAndroid Build Coastguard Worker        "-DBC_ENABLE_NLS=0",
30*5a6e8488SAndroid Build Coastguard Worker        "-Os",
31*5a6e8488SAndroid Build Coastguard Worker    ],
32*5a6e8488SAndroid Build Coastguard Worker    generated_headers: ["bc-version.h"],
33*5a6e8488SAndroid Build Coastguard Worker    local_include_dirs: ["include"],
34*5a6e8488SAndroid Build Coastguard Worker    srcs: [
35*5a6e8488SAndroid Build Coastguard Worker        "src/bc/*.c",
36*5a6e8488SAndroid Build Coastguard Worker        "src/*.c",
37*5a6e8488SAndroid Build Coastguard Worker        ":bc-bc_help.c",
38*5a6e8488SAndroid Build Coastguard Worker        ":bc-lib.c",
39*5a6e8488SAndroid Build Coastguard Worker    ],
40*5a6e8488SAndroid Build Coastguard Worker    exclude_srcs: [
41*5a6e8488SAndroid Build Coastguard Worker        "src/bc_fuzzer.c",
42*5a6e8488SAndroid Build Coastguard Worker        "src/dc_fuzzer.c",
43*5a6e8488SAndroid Build Coastguard Worker    ],
44*5a6e8488SAndroid Build Coastguard Worker    stl: "none",
45*5a6e8488SAndroid Build Coastguard Worker}
46*5a6e8488SAndroid Build Coastguard Worker
47*5a6e8488SAndroid Build Coastguard Workercc_binary_host {
48*5a6e8488SAndroid Build Coastguard Worker    name: "strgen",
49*5a6e8488SAndroid Build Coastguard Worker    local_include_dirs: ["include"],
50*5a6e8488SAndroid Build Coastguard Worker    srcs: ["gen/strgen.c"],
51*5a6e8488SAndroid Build Coastguard Worker}
52*5a6e8488SAndroid Build Coastguard Worker
53*5a6e8488SAndroid Build Coastguard Workergenrule {
54*5a6e8488SAndroid Build Coastguard Worker    name: "bc-lib.c",
55*5a6e8488SAndroid Build Coastguard Worker    srcs: ["gen/lib.bc"],
56*5a6e8488SAndroid Build Coastguard Worker    out: ["gen/lib.c"],
57*5a6e8488SAndroid Build Coastguard Worker    tools: ["strgen"],
58*5a6e8488SAndroid Build Coastguard Worker    cmd: "$(location strgen) $(in) $(out) 0 bc_lib bc_lib_name BC_ENABLED 1",
59*5a6e8488SAndroid Build Coastguard Worker}
60*5a6e8488SAndroid Build Coastguard Worker
61*5a6e8488SAndroid Build Coastguard Workergenrule {
62*5a6e8488SAndroid Build Coastguard Worker    name: "bc-bc_help.c",
63*5a6e8488SAndroid Build Coastguard Worker    srcs: ["gen/bc_help.txt"],
64*5a6e8488SAndroid Build Coastguard Worker    out: ["gen/bc_help.c"],
65*5a6e8488SAndroid Build Coastguard Worker    tools: ["strgen"],
66*5a6e8488SAndroid Build Coastguard Worker    cmd: "$(location strgen) $(in) $(out) 0 bc_help '' BC_ENABLED",
67*5a6e8488SAndroid Build Coastguard Worker}
68*5a6e8488SAndroid Build Coastguard Worker
69*5a6e8488SAndroid Build Coastguard Workergenrule {
70*5a6e8488SAndroid Build Coastguard Worker    name: "bc-version.h",
71*5a6e8488SAndroid Build Coastguard Worker    srcs: ["Makefile.in"],
72*5a6e8488SAndroid Build Coastguard Worker    out: ["bc-version.h"],
73*5a6e8488SAndroid Build Coastguard Worker    cmd: "sed -n 's/VERSION = /#define VERSION /p' $(in) > $(out)",
74*5a6e8488SAndroid Build Coastguard Worker}
75*5a6e8488SAndroid Build Coastguard Worker
76*5a6e8488SAndroid Build Coastguard Workercc_binary {
77*5a6e8488SAndroid Build Coastguard Worker    name: "bc",
78*5a6e8488SAndroid Build Coastguard Worker    defaults: ["bc-defaults"],
79*5a6e8488SAndroid Build Coastguard Worker}
80*5a6e8488SAndroid Build Coastguard Worker
81*5a6e8488SAndroid Build Coastguard Workercc_binary {
82*5a6e8488SAndroid Build Coastguard Worker    name: "bc_vendor",
83*5a6e8488SAndroid Build Coastguard Worker    defaults: ["bc-defaults"],
84*5a6e8488SAndroid Build Coastguard Worker    stem: "bc",
85*5a6e8488SAndroid Build Coastguard Worker    vendor: true,
86*5a6e8488SAndroid Build Coastguard Worker}
87*5a6e8488SAndroid Build Coastguard Worker
88*5a6e8488SAndroid Build Coastguard Workercc_binary_host {
89*5a6e8488SAndroid Build Coastguard Worker    name: "gavinhoward-bc",
90*5a6e8488SAndroid Build Coastguard Worker    defaults: ["bc-defaults"],
91*5a6e8488SAndroid Build Coastguard Worker}
92*5a6e8488SAndroid Build Coastguard Worker
93*5a6e8488SAndroid Build Coastguard Workersh_test {
94*5a6e8488SAndroid Build Coastguard Worker    name: "bc-tests",
95*5a6e8488SAndroid Build Coastguard Worker    src: "run-bc-tests-on-android.sh",
96*5a6e8488SAndroid Build Coastguard Worker    filename: "run-bc-tests-on-android.sh",
97*5a6e8488SAndroid Build Coastguard Worker    test_suites: ["general-tests"],
98*5a6e8488SAndroid Build Coastguard Worker    host_supported: true,
99*5a6e8488SAndroid Build Coastguard Worker    device_supported: false,
100*5a6e8488SAndroid Build Coastguard Worker    data: [
101*5a6e8488SAndroid Build Coastguard Worker        "scripts/*.sh",
102*5a6e8488SAndroid Build Coastguard Worker        "tests/**/*",
103*5a6e8488SAndroid Build Coastguard Worker    ],
104*5a6e8488SAndroid Build Coastguard Worker}
105