1cc_library {
2    name: "libvorbisidec",
3    vendor_available: true,
4
5    srcs: [
6        "Tremolo/bitwise.c",
7        "Tremolo/codebook.c",
8        "Tremolo/dsp.c",
9        "Tremolo/floor0.c",
10        "Tremolo/floor1.c",
11        "Tremolo/floor_lookup.c",
12        "Tremolo/framing.c",
13        "Tremolo/mapping0.c",
14        "Tremolo/mdct.c",
15        "Tremolo/misc.c",
16        "Tremolo/res012.c",
17        "Tremolo/treminfo.c",
18        "Tremolo/vorbisfile.c",
19    ],
20
21    arch: {
22        arm: {
23            srcs: [
24                "Tremolo/bitwiseARM.s",
25                "Tremolo/dpen.s",
26                "Tremolo/floor1ARM.s",
27                "Tremolo/mdctARM.s",
28            ],
29            cflags: ["-D_ARM_ASSEM_"],
30            // Assembly code in asm_arm.h does not compile with Clang.
31            clang_asflags: ["-no-integrated-as"],
32
33            instruction_set: "arm",
34        },
35        arm64: {
36            cflags: ["-DONLY_C"],
37        },
38        mips: {
39            cflags: ["-DONLY_C"],
40        },
41        mips64: {
42            cflags: ["-DONLY_C"],
43        },
44        x86: {
45            cflags: ["-DONLY_C"],
46        },
47        x86_64: {
48            cflags: ["-DONLY_C"],
49        },
50    },
51
52    cflags: [
53        "-O2",
54        "-D_GNU_SOURCE",
55        "-funsigned-char",
56        "-Wall",
57        "-Werror",
58        "-Wno-unused-variable",
59    ],
60
61    local_include_dirs: ["Tremolo"],
62    export_include_dirs: ["."],
63
64    shared_libs: ["liblog"],
65
66    sanitize: {
67        integer_overflow: true,
68        misc_undefined: ["bounds"],
69    },
70}
71