
Am 10/10/2012 04:03, schrieb Troy Kisky:
On 10/8/2012 6:38 AM, Stefano Babic wrote:
On 04/10/2012 03:47, Troy Kisky wrote:
The '#' used as comments in the files cause the preprocessor trouble, so change to /* */.
Signed-off-by: Troy Kisky troy.kisky@boundarydevices.com
Hi Troy,
Makefile | 3 +- board/esg/ima3-mx53/imximage.cfg | 120 ++++++----- board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg | 90 ++++---- board/freescale/mx25pdk/imximage.cfg | 77 +++---- board/freescale/mx51evk/imximage.cfg | 114 +++++----- board/freescale/mx53ard/imximage_dd3.cfg | 83 ++++---- board/freescale/mx53evk/imximage.cfg | 86 ++++---- board/freescale/mx53loco/imximage.cfg | 83 ++++---- board/freescale/mx53smd/imximage.cfg | 83 ++++---- board/freescale/mx6qarm2/imximage.cfg | 88 ++++---- board/genesi/mx51_efikamx/imximage_mx.cfg | 132 ++++++------ board/genesi/mx51_efikamx/imximage_sb.cfg | 126 +++++------ board/ttcontrol/vision2/imximage_hynix.cfg | 295 ++++++++++++++------------ 13 files changed, 727 insertions(+), 653 deletions(-)
I see the C preprocessor as an optional feature, instead of a rule everybody must follow.
diff --git a/Makefile b/Makefile index a40d4cc..64ff1b8 100644 --- a/Makefile +++ b/Makefile @@ -431,7 +431,8 @@ $(obj)u-boot.img: $(obj)u-boot.bin -d $< $@ $(obj)u-boot.imx: $(obj)u-boot.bin
$(obj)tools/mkimage -n $(CONFIG_IMX_CONFIG) -T imximage \
$(CC) -E -x c $(CONFIG_IMX_CONFIG) -I./include -o
$(obj)imxcfg.imx
$(obj)tools/mkimage -n $(obj)imxcfg.imx -T imximage \ -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
In fact, adding this rule here requires that each board configuration must be changed. And for all of them, running the preprocessor is unnnecessary.
What about to add this rule only to the Makefile of the boards that require preprocessing ?
Best regards, Stefano Babic
How about this to do the job....
Subject: [PATCH 17/32] boards.cfg: run mx6q_4x_mt41j128.pcfg through C preprocessor
The '#' used as comments in the cfg file cause the preprocessor trouble, so change to /* */. Also, rename mx6q_4x_mt41j128.cfg to mx6q_4x_mt41j128.pcfg.
Files with extension of .pcfg are run through the preprocessor before being given to mkimage.
Signed-off-by: Troy Kisky troy.kisky@boundarydevices.com
v4: Don't run every file through preprocessor, only .pcfg files
.gitignore | 1 + Makefile | 16 +++- ...{mx6q_4x_mt41j128.cfg => mx6q_4x_mt41j128.pcfg} | 90 ++++++++++---------- boards.cfg | 4 +- 4 files changed, 63 insertions(+), 48 deletions(-) rename board/freescale/imx/ddr/{mx6q_4x_mt41j128.cfg => mx6q_4x_mt41j128.pcfg} (65%)
diff --git a/.gitignore b/.gitignore index d91e91b..e5273bd 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ *.swp *.patch *.bin +*.pcfgtmp
# Build tree /build-* diff --git a/Makefile b/Makefile index a40d4cc..99666b9 100644 --- a/Makefile +++ b/Makefile @@ -430,8 +430,17 @@ $(obj)u-boot.img: $(obj)u-boot.bin sed -e 's/"[ ]*$$/ for $(BOARD) board"/') \ -d $< $@
-$(obj)u-boot.imx: $(obj)u-boot.bin
$(obj)tools/mkimage -n $(CONFIG_IMX_CONFIG) -T imximage \
+ifeq ($(suffix $(patsubst "%",%,$(CONFIG_IMX_CONFIG))),.pcfg) +$(obj)$(patsubst "%",%,$(CONFIG_IMX_CONFIG))tmp: %.pcfgtmp : %.pcfg
$(CC) -E -x c $< -I./include -o $@
+$(obj)u-boot.imx: %.imx : %.bin $(obj)$(patsubst "%",%,$(CONFIG_IMX_CONFIG))tmp +else +$(obj)u-boot.imx: %.imx : %.bin $(patsubst "%",%,$(CONFIG_IMX_CONFIG)) +endif
+$(obj)u-boot.imx:
$(obj)tools/mkimage -n $(filter-out %.bin,$^) -T
imximage \ -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
Does it work something more direct (I have not tested, really...) ?
In board Makefile, for example board/freescale/mx6qsabrelite, a rule for the imximage file:
$(CONFIG_IMX_CONFIG): <your base file, mx6q_4x_mt41j128.cfg maybe> $(CC) -E -x c $< -I./include -o $@
And let unchanged in the main Makefile. So CONFIG_IMX_CONFIG is produced and you do not need to change logic in the main Makefile.
Regards, Stefano