diff options
author | Pierre-Clément Tosi <ptosi@google.com> | 2023-10-12 09:16:53 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-10-12 09:16:53 +0000 |
commit | 51f100644059874eb897bbf16cabda0e92d69877 (patch) | |
tree | db98a7be834fcb6c72524e8fbb093b1d4630efa9 | |
parent | 170bf1d4ce7ba36cc7b8b0f606ae9c169ea9a769 (diff) | |
parent | 7eeadceb3eecdc37e19105d577dd2835a4babc53 (diff) | |
download | dtc-51f100644059874eb897bbf16cabda0e92d69877.tar.gz |
Merge changes I6b780c1d,I238d963a,I32076c65 into main
* changes:
ANDROID: Generate version_gen.h in Soong and Bazel
ANDROID: bazel: Clean up lexer and parser rules
ANDROID: bazel: Fix dtc header dependencies
-rw-r--r-- | Android.bp | 15 | ||||
-rw-r--r-- | BUILD.bazel | 72 | ||||
-rw-r--r-- | METADATA_version.sed | 1 | ||||
-rw-r--r-- | util.c | 2 | ||||
-rw-r--r-- | version_non_gen.h | 1 |
5 files changed, 48 insertions, 43 deletions
@@ -62,6 +62,7 @@ cc_defaults { "-DNO_YAML" ], + generated_headers: ["dtc_version_gen.h"], shared_libs: ["libfdt"], stl: "none", @@ -117,3 +118,17 @@ cc_binary_host { "util.c", ], } + +genrule { + name: "dtc_version_gen.h", + out: ["version_gen.h"], + srcs: ["version_gen.h.in"], + tool_files: [ + "METADATA", + "METADATA_version.sed", + ], + cmd: "version=$$(" + + "sed -f $(location METADATA_version.sed) -n $(location METADATA)" + + ")-Android-build;" + + "sed s/@VCS_TAG@/$${version}/ $(in) > $(out)", +} diff --git a/BUILD.bazel b/BUILD.bazel index d9fdb9a..56aeed2 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -18,68 +18,67 @@ cc_library( ) genrule( - name = "lexer", - srcs = [ - "dtc-lexer.l", - ":parser", - ], + name = "dtc_lexer_srcs", + srcs = ["dtc-lexer.l"], outs = ["dtc-lexer.lex.c"], - cmd = "lex -o$@ $(location dtc-lexer.l)", + cmd = "lex -o $@ $<", ) genrule( - name = "parser", + name = "dtc_parser_srcs", 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) - """, + cmd = "bison -d -o $(location dtc-parser.c) $(location dtc-parser.y)", ) -cc_library( - name = "dtc_gen", +UTILS = [ + "util.c", + "util.h", + ":version_gen_header", +] + +genrule( + name = "version_gen_header", + outs = ["version_gen.h"], srcs = [ - ":lexer", - ":parser", + "METADATA", + "METADATA_version.sed", + "version_gen.h.in", ], - hdrs = glob(["*.h"]), - copts = COPTS, - deps = [":libfdt"], + cmd = """ + version="$$(sed -f $(location METADATA_version.sed) -n $(location METADATA))-Android-build" + sed s/@VCS_TAG@/$${version}/ $(location version_gen.h.in) > $@ + """, ) cc_binary( name = "dtc", - srcs = [ + srcs = UTILS + [ + ":dtc_lexer_srcs", + ":dtc_parser_srcs", "checks.c", "data.c", "dtc.c", + "dtc.h", "flattree.c", "fstree.c", "livetree.c", "srcpos.c", + "srcpos.h", "treesource.c", - "util.c", ], copts = COPTS, defines = ["NO_YAML"], - deps = [ - ":dtc_gen", - ":libfdt", - ], + deps = [":libfdt"], ) cc_binary( name = "fdtget", - srcs = [ + srcs = UTILS + [ "fdtget.c", - "util.c", - "util.h", - "version_non_gen.h", ], copts = COPTS, defines = ["NO_YAML"], @@ -88,11 +87,8 @@ cc_binary( cc_binary( name = "fdtput", - srcs = [ + srcs = UTILS + [ "fdtput.c", - "util.c", - "util.h", - "version_non_gen.h", ], copts = COPTS, defines = ["NO_YAML"], @@ -101,11 +97,8 @@ cc_binary( cc_binary( name = "fdtdump", - srcs = [ + srcs = UTILS + [ "fdtdump.c", - "util.c", - "util.h", - "version_non_gen.h", ], copts = COPTS, defines = ["NO_YAML"], @@ -114,11 +107,8 @@ cc_binary( cc_binary( name = "fdtoverlay", - srcs = [ + srcs = UTILS + [ "fdtoverlay.c", - "util.c", - "util.h", - "version_non_gen.h", ], copts = COPTS, defines = ["NO_YAML"], diff --git a/METADATA_version.sed b/METADATA_version.sed new file mode 100644 index 0000000..9e7ea54 --- /dev/null +++ b/METADATA_version.sed @@ -0,0 +1 @@ +s/^[[:space:]]*version:[[:space:]]*"v\([[:digit:]][[:digit:]]*.[[:digit:]][[:digit:]]*.[[:digit:]][[:digit:]]*\)"[[:space:]]*/\1/p @@ -21,7 +21,7 @@ #include "libfdt.h" #include "util.h" -#include "version_non_gen.h" +#include "version_gen.h" char *xstrdup(const char *s) { diff --git a/version_non_gen.h b/version_non_gen.h deleted file mode 100644 index 3376b35..0000000 --- a/version_non_gen.h +++ /dev/null @@ -1 +0,0 @@ -#define DTC_VERSION "DTC 1.6.0-Android-build" |