[PATCH 5/6] make: Use shell script to generate .dtb.S files
Sascha Hauer
s.hauer at pengutronix.de
Thu Jul 31 05:27:36 PDT 2014
Using shell in make to generate an assembly file is not very
readable and extendable. Add an external shell script instead.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
scripts/Makefile.lib | 18 +++---------------
scripts/gen-dtb-s | 14 ++++++++++++++
2 files changed, 17 insertions(+), 15 deletions(-)
create mode 100755 scripts/gen-dtb-s
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 0a6302b..ea086fe 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -210,21 +210,9 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -n -f -9 > $@) || \
# Generate an assembly file to wrap the output of the device tree compiler
quiet_cmd_dt_S_dtb = DTB $@
-cmd_dt_S_dtb= \
-( \
- echo '\#include <asm-generic/barebox.lds.h>'; \
- echo '.section .dtb.rodata.$(subst -,_,$(*F)),"a"'; \
- echo '.balign STRUCT_ALIGNMENT'; \
- echo '.global __dtb_$(subst -,_,$(*F))_start'; \
- echo '__dtb_$(subst -,_,$(*F))_start:'; \
- echo '.incbin "$<" '; \
- echo '__dtb_$(subst -,_,$(*F))_end:'; \
- echo '.global __dtb_$(subst -,_,$(*F))_end'; \
- echo '.balign STRUCT_ALIGNMENT'; \
-) > $@
-
-$(obj)/%.dtb.S: $(obj)/%.dtb
- $(call cmd,dt_S_dtb)
+cmd_dt_S_dtb= ( $(srctree)/scripts/gen-dtb-s $(subst -,_,$(*F)) $< > $@
+$(obj)/%.dtb.S: $(obj)/%.dtb $(srctree)/scripts/gen-dtb-s FORCE
+ $(call if_changed,dt_S_dtb)
quiet_cmd_dtc = DTC $@
cmd_dtc = $(CPP) $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \
diff --git a/scripts/gen-dtb-s b/scripts/gen-dtb-s
new file mode 100755
index 0000000..44136b0
--- /dev/null
+++ b/scripts/gen-dtb-s
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+name=$1
+dtb=$2
+
+echo "#include <asm-generic/barebox.lds.h>"
+echo ".section .dtb.rodata.${name},\"a\""
+echo ".balign STRUCT_ALIGNMENT"
+echo ".global __dtb_${name}_start"
+echo "__dtb_${name}_start:"
+echo ".incbin \"$dtb\""
+echo "__dtb_${name}_end:"
+echo ".global __dtb_${name}_end"
+echo ".balign STRUCT_ALIGNMENT"
--
2.0.1
More information about the barebox
mailing list