build: Add BUILD.bazel file

Currently, the dtc project builds with Make.

As some consumers of this project use Bazel, and eventually all of
AOSP will need to move to Bazel anyway, add a a Bazel build
definition.

Bug: 251879933
Change-Id: I62ea59ee306eda58b764df2a9e5f2f33778e4b5c
Signed-off-by: John Moon <quic_johmoo@quicinc.com>
This commit is contained in:
John Moon 2023-04-27 14:07:18 -07:00
parent 2675843042
commit b148d78706
3 changed files with 131 additions and 0 deletions

2
.gitignore vendored
View file

@ -27,3 +27,5 @@ ncscope.*
.eggs/
build/
dist/
/bazel-*

129
BUILD.bazel Normal file
View file

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

0
WORKSPACE Normal file
View file