xref: /aosp_15_r20/external/dtc/BUILD.bazel (revision cd60bc56d4bea3af4ec04523e4d71c2b272c8aff)
1COPTS = [
2    "-Wall",
3    "-Werror",
4    "-Wno-macro-redefined",
5    "-Wno-missing-field-initializers",
6    "-Wno-sign-compare",
7    "-Wno-unused-parameter",
8]
9
10cc_library(
11    name = "libfdt",
12    srcs = glob([
13        "libfdt/*.h",
14        "libfdt/*.c",
15    ]),
16    copts = COPTS,
17    includes = ["libfdt"],
18)
19
20genrule(
21    name = "dtc_lexer_srcs",
22    srcs = ["dtc-lexer.l"],
23    outs = ["dtc-lexer.lex.c"],
24    cmd = "lex -o $@ $<",
25)
26
27genrule(
28    name = "dtc_parser_srcs",
29    srcs = ["dtc-parser.y"],
30    outs = [
31        "dtc-parser.c",
32        "dtc-parser.h",
33    ],
34    cmd = "bison -d -o $(location dtc-parser.c) $(location dtc-parser.y)",
35)
36
37UTILS = [
38    "util.c",
39    "util.h",
40    ":version_gen_header",
41]
42
43genrule(
44    name = "version_gen_header",
45    outs = ["version_gen.h"],
46    srcs = [
47        "METADATA",
48        "METADATA_version.sed",
49        "version_gen.h.in",
50    ],
51    cmd = """
52      version="$$(sed -f $(location METADATA_version.sed) -n $(location METADATA))-Android-build"
53      sed s/@VCS_TAG@/$${version}/ $(location version_gen.h.in) > $@
54    """,
55)
56
57cc_binary(
58    name = "dtc",
59    srcs = UTILS + [
60        ":dtc_lexer_srcs",
61        ":dtc_parser_srcs",
62        "checks.c",
63        "data.c",
64        "dtc.c",
65        "dtc.h",
66        "flattree.c",
67        "fstree.c",
68        "livetree.c",
69        "srcpos.c",
70        "srcpos.h",
71        "treesource.c",
72    ],
73    copts = COPTS,
74    defines = ["NO_YAML"],
75    deps = [":libfdt"],
76)
77
78cc_binary(
79    name = "fdtget",
80    srcs = UTILS + [
81        "fdtget.c",
82    ],
83    copts = COPTS,
84    defines = ["NO_YAML"],
85    deps = [":libfdt"],
86)
87
88cc_binary(
89    name = "fdtput",
90    srcs = UTILS + [
91        "fdtput.c",
92    ],
93    copts = COPTS,
94    defines = ["NO_YAML"],
95    deps = [":libfdt"],
96)
97
98cc_binary(
99    name = "fdtdump",
100    srcs = UTILS + [
101        "fdtdump.c",
102    ],
103    copts = COPTS,
104    defines = ["NO_YAML"],
105    deps = [":libfdt"],
106)
107
108cc_binary(
109    name = "fdtoverlay",
110    srcs = UTILS + [
111        "fdtoverlay.c",
112    ],
113    copts = COPTS,
114    defines = ["NO_YAML"],
115    deps = [":libfdt"],
116)
117