1//
2// Copyright (C) 2014 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8//      http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17cc_defaults {
18    name: "libbcc-defaults",
19    defaults: [
20        "llvm-defaults",
21        "rs-version",
22        "libbcc-targets",
23    ],
24
25    clang: true,
26    cflags: [
27        "-Wall",
28        "-Wno-unused-parameter",
29        "-Werror",
30        "-D__DISABLE_ASSERTS",
31    ],
32
33    target: {
34        android: {
35            cflags: [
36                "-DTARGET_BUILD",
37            ],
38        },
39        host: {
40            compile_multilib: "first",
41            cflags: [
42                "-D__HOST__",
43            ],
44        },
45    },
46
47    product_variables: {
48        eng: {
49            cflags: ["-U__DISABLE_ASSERTS"],
50        },
51    },
52
53    include_dirs: [
54        "frameworks/compile/libbcc/include",
55        "frameworks/rs",
56    ],
57}
58
59//=====================================================================
60// Architecture Selection
61//=====================================================================
62// Note: We should only use -DFORCE_ARCH_CODEGEN on target build.
63// For the host build, we will include as many architecture as possible,
64// so that we can test the execution engine easily.
65
66cc_defaults {
67    name: "libbcc-targets",
68    arch: {
69        arm: {
70            cflags: [
71                "-DFORCE_ARM_CODEGEN",
72                "-DARCH_ARM_HAVE_VFP",
73            ],
74            armv7_a_neon: {
75                cflags: [
76                    "-DARCH_ARM_HAVE_VFP_D32",
77                    "-DARCH_ARM_HAVE_NEON",
78                ],
79            },
80        },
81        arm64: {
82            cflags: [
83                "-DFORCE_ARM64_CODEGEN",
84                "-DARCH_ARM_HAVE_NEON",
85                "-DARCH_ARM_HAVE_VFP",
86                "-DARCH_ARM_HAVE_VFP_D32",
87                "-DDISABLE_CLCORE_NEON",
88            ],
89        },
90        mips: {
91            cflags: ["-DFORCE_MIPS_CODEGEN"],
92        },
93        mips64: {
94            cflags: ["-DFORCE_MIPS64_CODEGEN"],
95        },
96    },
97    target: {
98        android_x86: {
99            cflags: ["-DFORCE_X86_CODEGEN"],
100        },
101        android_x86_64: {
102            cflags: ["-DFORCE_X86_64_CODEGEN"],
103        },
104        arm_on_x86: {
105            cflags: [
106                "-DPROVIDE_ARM_CODEGEN",
107                "-DFORCE_BUILD_ARM",
108            ],
109        },
110        arm_on_x86_64: {
111            cflags: [
112                "-DPROVIDE_ARM_CODEGEN",
113                "-DFORCE_BUILD_ARM",
114                "-DPROVIDE_ARM64_CODEGEN",
115            ],
116        },
117    },
118}
119
120subdirs = [
121    "bcinfo",
122    "lib",
123    "tools",
124]
125