android_kernel_samsung_sm8650/BUILD.dtc
John Moon 1a3639b2f2 ANDROID: build: Set DTC target compatibility
Currently, there's no guarantee that the device tree compiler in our
build is being built for the host target.

Use native Bazel compatibility attributes to make sure DTC is only
built for linux (not Android).

Change-Id: Ibe06aa76004caf6e087f11e29679c045c68ab129
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
2023-03-27 14:06:58 -07:00

158 lines
3.2 KiB
Plaintext

cc_library(
name = "libfdt",
copts = [
"-Werror",
"-Wno-macro-redefined",
"-Wno-sign-compare",
],
includes = ["libfdt"],
srcs = glob([
"libfdt/*.h",
"libfdt/*.c",
]),
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
copts = [
"-Wall",
"-Werror",
"-Wno-sign-compare",
"-Wno-missing-field-initializers",
"-Wno-unused-parameter",
]
genrule(
name = "lexer",
srcs = ["dtc-lexer.l"],
outs = ["dtc-lexer.lex.c"],
cmd = "lex -o$@ $(location dtc-lexer.l)"
)
genrule(
name = "parser",
srcs = ["dtc-parser.y"],
outs = ["dtc-parser.tab.c", "dtc-parser.tab.h"],
cmd = """
bison -b dtc-parser -d $(location dtc-parser.y)
cp ./*.tab.c $(location dtc-parser.tab.c)
cp ./*.tab.h $(location dtc-parser.tab.h)
""",
)
cc_library(
name = "dtc_gen",
copts = copts,
srcs = [
":lexer",
":parser",
] + glob(["*.h"]),
includes = ["."],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "dtc",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"checks.c",
"data.c",
"dtc.c",
"flattree.c",
"fstree.c",
"livetree.c",
"srcpos.c",
"treesource.c",
"util.c",
] + glob(["*.h"]),
includes = ["."],
deps = [":libfdt", ":dtc_gen"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "fdtget",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"fdtget.c",
"util.c",
"util.h",
"version_non_gen.h",
],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "fdtput",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"fdtput.c",
"util.c",
"util.h",
"version_non_gen.h",
],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "fdtdump",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"fdtdump.c",
"util.c",
"util.h",
"version_non_gen.h",
],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "fdtoverlay",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"fdtoverlay.c",
"util.c",
"util.h",
"version_non_gen.h",
],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
cc_binary(
name = "fdtoverlaymerge",
copts = copts,
defines = ["NO_YAML"],
srcs = [
"fdtoverlaymerge.c",
"util.c",
"util.h",
"version_non_gen.h",
],
deps = [":libfdt"],
target_compatible_with = ["@platforms//os:linux"],
visibility = ["//visibility:public"],
)
exports_files([
"libfdt/fdt.h",
"libfdt/libfdt.h",
"libfdt/libfdt_env.h",
])