Re: [U-Boot] [PATCH v2] SPL: Makefile: Build a separate autoconf.mk for SPL

2013-06-07 Thread Tom Rini
On Tue, May 28, 2013 at 06:51:47PM -0500, Joel A Fernandes wrote:

 SPL defines CONFIG_SPL_BUILD but this does not percolate to the
 autoconf.mk Makefile.  As a result the build breaks when
 CONFIG_SPL_BUILD is used in the board-specific include header file.
 With this, there is a possibility of having a CONFIG option defined in
 the header file but not defined in the Makefile causing all kinds of
 build failure and problems.
 
 It also messes things for up, for example, when one might want to
 undefine options to keep the SPL small and doesn't want to be stuck
 with the CONFIG options used for U-boot.  Lastly, this also avoids
 defining special CONFIG_SPL_ variables for cases where some options
 are required in U-boot but not in SPL.
 
 We add a spl-autoconf.mk rule that is generated for SPL with the
 CONFIG_SPL_BUILD flag and conditionally include it for SPL builds.
 
 v2 changes:
 Fixed issue where builds in a different directory were failing.
 Suggested-by: Muddegowda, Deepak x0171...@ti.com . Thanks Deepak!
 Reported-by: Tom Rini tr...@ti.com
 
 Signed-off-by: Joel A Fernandes joelag...@ti.com
 Cc: Muddegowda, Deepak x0171...@ti.com
 Cc: Tom Rini tr...@ti.com

This breaks building of am335x_evm_usbspl :(  Please fix, thanks!

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2] SPL: Makefile: Build a separate autoconf.mk for SPL

2013-05-28 Thread Joel A Fernandes
SPL defines CONFIG_SPL_BUILD but this does not percolate to the autoconf.mk 
Makefile.
As a result the build breaks when CONFIG_SPL_BUILD is used in the 
board-specific include
header file. With this, there is a possibility of having a CONFIG option 
defined in the
header file but not defined in the Makefile causing all kinds of build failure 
and problems.

It also messes things for up, for example, when one might want to undefine 
options to
keep the SPL small and doesn't want to be stuck with the CONFIG options used 
for U-boot.
Lastly, this also avoids defining special CONFIG_SPL_ variables for cases where 
some
options are required in U-boot but not in SPL.

We add a spl-autoconf.mk rule that is generated for SPL with the 
CONFIG_SPL_BUILD flag
and conditionally include it for SPL builds.

v2 changes:
Fixed issue where builds in a different directory were failing.
Suggested-by: Muddegowda, Deepak x0171...@ti.com . Thanks Deepak!
Reported-by: Tom Rini tr...@ti.com

Signed-off-by: Joel A Fernandes joelag...@ti.com
Cc: Muddegowda, Deepak x0171...@ti.com
Cc: Tom Rini tr...@ti.com
---
 Makefile  |   19 +--
 config.mk |6 ++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 6a30e04..e3a87e5 100644
--- a/Makefile
+++ b/Makefile
@@ -567,6 +567,7 @@ updater:
 # Explicitly make _depend in subdirs containing multiple targets to prevent
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:$(TIMESTAMP_FILE) $(VERSION_FILE) \
+   $(obj)include/spl-autoconf.mk \
$(obj)include/autoconf.mk \
$(obj)include/generated/generic-asm-offsets.h \
$(obj)include/generated/asm-offsets.h
@@ -632,12 +633,23 @@ $(obj)include/autoconf.mk: $(obj)include/config.h
sed -n -f tools/scripts/define2mk.sed  $@.tmp  \
mv $@.tmp $@
 
+# Auto-generate the spl-autoconf.mk file (which is included by all makefiles 
for SPL)
+$(obj)include/spl-autoconf.mk: $(obj)include/config.h
+   @$(XECHO) Generating $@ ; \
+   set -e ; \
+   : Extract the config macros ; \
+   $(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM include/common.h 
| \
+   sed -n -f tools/scripts/define2mk.sed  $@.tmp  \
+   mv $@.tmp $@
+
 $(obj)include/generated/generic-asm-offsets.h: $(obj)include/autoconf.mk.dep \
+   $(obj)include/spl-autoconf.mk \
$(obj)lib/asm-offsets.s
@$(XECHO) Generating $@
tools/scripts/make-asm-offsets $(obj)lib/asm-offsets.s $@
 
 $(obj)lib/asm-offsets.s:   $(obj)include/autoconf.mk.dep \
+   $(obj)include/spl-autoconf.mk \
$(src)lib/asm-offsets.c
@mkdir -p $(obj)lib
$(CC) -DDO_DEPS_ONLY \
@@ -645,11 +657,13 @@ $(obj)lib/asm-offsets.s:  $(obj)include/autoconf.mk.dep \
-o $@ $(src)lib/asm-offsets.c -c -S
 
 $(obj)include/generated/asm-offsets.h: $(obj)include/autoconf.mk.dep \
+   $(obj)include/spl-autoconf.mk \
$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
@$(XECHO) Generating $@
tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
 
-$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:  $(obj)include/autoconf.mk.dep
+$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:  $(obj)include/autoconf.mk.dep \
+   $(obj)include/spl-autoconf.mk
@mkdir -p $(obj)$(CPUDIR)/$(SOC)
if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
$(CC) -DDO_DEPS_ONLY \
@@ -711,7 +725,8 @@ include/license.h: tools/bin2header COPYING
 unconfig:
@rm -f $(obj)include/config.h $(obj)include/config.mk \
$(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
-   $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep
+   $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep \
+   $(obj)include/spl-autoconf.mk
 
 %_config:: unconfig
@$(MKCONFIG) -A $(@:_config=)
diff --git a/config.mk b/config.mk
index 51b4783..3246c2c 100644
--- a/config.mk
+++ b/config.mk
@@ -153,7 +153,13 @@ DTC= dtc
 #
 
 # Load generated board configuration
+ifeq ($(CONFIG_SPL_BUILD),y)
+# Include SPL autoconf
+sinclude $(OBJTREE)/include/spl-autoconf.mk
+else
+# Include normal autoconf
 sinclude $(OBJTREE)/include/autoconf.mk
+endif
 sinclude $(OBJTREE)/include/config.mk
 
 # Some architecture config.mk files need to know what CPUDIR is set to,
-- 
1.7.4.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot