All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL
@ 2013-08-16  7:14 ying.zhang at freescale.com
  2013-08-16 16:24 ` York Sun
  2013-08-16 16:48 ` Tom Rini
  0 siblings, 2 replies; 3+ messages in thread
From: ying.zhang at freescale.com @ 2013-08-16  7:14 UTC (permalink / raw)
  To: u-boot

From: Ying Zhang <b40530@freescale.com>

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.

Signed-off-by: Ying Zhang <b40530@freescale.com>
---
Change from v3:
- No change.
Change from v2:
- Fixed the reported build breakage of am335x_evm_usbspl.
Change from v1:
- Fixed issue where builds in a different directory were failing.

 Makefile     |   19 +++++++++++++++++--
 config.mk    |    6 ++++++
 spl/Makefile |    1 +
 3 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index d545d30..75df06a 100644
--- a/Makefile
+++ b/Makefile
@@ -613,6 +613,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
@@ -694,12 +695,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 \
@@ -707,11 +719,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 \
@@ -783,7 +797,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 3e84f36..54e99f4 100644
--- a/config.mk
+++ b/config.mk
@@ -145,7 +145,13 @@ CHECK	= sparse
 #########################################################################
 
 # 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,
diff --git a/spl/Makefile b/spl/Makefile
index 6e5299b..43db01f 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -80,6 +80,7 @@ LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/memory.o
 LIBS-$(CONFIG_SPL_NET_SUPPORT) += net/libnet.o
 LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/libnet.o
 LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/phy/libphy.o
+LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/net/phy/libphy.o
 LIBS-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += drivers/usb/musb-new/libusb_musb-new.o
 LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/libusb_gadget.o
 
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL
  2013-08-16  7:14 [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL ying.zhang at freescale.com
@ 2013-08-16 16:24 ` York Sun
  2013-08-16 16:48 ` Tom Rini
  1 sibling, 0 replies; 3+ messages in thread
From: York Sun @ 2013-08-16 16:24 UTC (permalink / raw)
  To: u-boot

On 08/16/2013 12:14 AM, ying.zhang at freescale.com wrote:
> From: Ying Zhang <b40530@freescale.com>
> 
> 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.
> 
> Signed-off-by: Ying Zhang <b40530@freescale.com>

This patch changes Makefile and config.mk. I will need an ack from Tom
before I can apply this patch to 85xx/master.

York

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL
  2013-08-16  7:14 [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL ying.zhang at freescale.com
  2013-08-16 16:24 ` York Sun
@ 2013-08-16 16:48 ` Tom Rini
  1 sibling, 0 replies; 3+ messages in thread
From: Tom Rini @ 2013-08-16 16:48 UTC (permalink / raw)
  To: u-boot

On Fri, Aug 16, 2013 at 03:14:44PM +0800, ying.zhang at freescale.com wrote:

> From: Ying Zhang <b40530@freescale.com>
> 
> 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.
> 
> Signed-off-by: Ying Zhang <b40530@freescale.com>
> ---
> Change from v3:
> - No change.
> Change from v2:
> - Fixed the reported build breakage of am335x_evm_usbspl.
> Change from v1:
> - Fixed issue where builds in a different directory were failing.

Uh, this is Joel's patch and you dropped his authorship when picking it
up.  I'm glad to see you picking it up and addressing the last of the
issues I reported (right?), but you need to retain Joel's Author/SOB and
add your own for any further changes you've made here.  Thanks.

And please make sure a MAKEALL passes for both powerpc and arm.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130816/22b97584/attachment.pgp>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-08-16 16:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-16  7:14 [U-Boot] [PATCH v4] SPL: Makefile: Build a separate autoconf.mk for SPL ying.zhang at freescale.com
2013-08-16 16:24 ` York Sun
2013-08-16 16:48 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.