[U-Boot] [PATCH V3 17/32] imximage.cfg: run files through C preprocessor

Troy Kisky
2012-10-10T02:03:09Z

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 $< $@

$(obj)u-boot.kwb: $(obj)u-boot.bin
@@ -794,7 +803,8 @@ clean:
@rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
@find $(OBJTREE) -type f \
\( -name 'core' -o -name '*.bak' -o -name '*~' -o -name
'*.su' \
- -o -name '*.o' -o -name '*.a' -o -name '*.exe' \) -print \
+ -o -name '*.o' -o -name '*.a' -o -name '*.exe' \
+ -o -name '*.pcfgtmp' \) -print \
| xargs rm -f

# Removes everything not needed for testing u-boot
diff --git a/board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
b/board/freescale/imx/ddr/mx6q_4x_mt41j128.pcfg
similarity index 65%
rename from board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
rename to board/freescale/imx/ddr/mx6q_4x_mt41j128.pcfg
diff --git a/boards.cfg b/boards.cfg
index e9e073e..677beac 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -232,8 +232,8 @@ ima3-mx53 arm armv7
ima3-mx53 esg
vision2 arm armv7 vision2
ttcontrol mx5 vision2:IMX_CONFIG=board/ttcontrol/vision2/imx
image_hynix.cfg
mx6qarm2 arm armv7 mx6qarm2
freescale mx6 mx6qarm2:IMX_CONFIG=board/freescale/mx6qarm2/i
mximage.cfg
mx6qsabreauto arm armv7 mx6qsabreauto
freescale mx6 mx6qsabreauto:IMX_CONFIG=board/freescale/mx6qs
abreauto/imximage.cfg
-mx6qsabrelite arm armv7 mx6qsabrelite
freescale mx6 mx6qsabrelite:IMX_CONFIG=board/freescale/imx/d
dr/mx6q_4x_mt41j128.cfg
-mx6qsabresd arm armv7 mx6qsabresd
freescale mx6 mx6qsabresd:IMX_CONFIG=board/freescale/imx/ddr
/mx6q_4x_mt41j128.cfg
+mx6qsabrelite arm armv7 mx6qsabrelite
freescale mx6 mx6qsabrelite:IMX_CONFIG=board/freescale/imx/d
dr/mx6q_4x_mt41j128.pcfg
+mx6qsabresd arm armv7 mx6qsabresd
freescale mx6 mx6qsabresd:IMX_CONFIG=board/freescale/imx/ddr
/mx6q_4x_mt41j128.pcfg
cm_t35 arm armv7 cm_t35
- omap3
omap3_overo arm armv7 overo
- omap3
omap3_pandora arm armv7 pandora
- omap3
--
1.7.9.5