public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] Makefile: compile and link each module just once
@ 2008-09-09 13:50 Wolfgang Denk
  2008-09-09 14:08 ` Andreas Engel
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2008-09-09 13:50 UTC (permalink / raw)
  To: u-boot

Several source files need to be compiled and linked when one or more
config options are selected. To allow for easy selection in the
Makefiles yet to avoild multiple compilation (which costs build time)
and especially multiple linking (which causes errors), we use
"COBJS = $(sort COBJS-y)" which eliminates duplicates.

By courtesy of Detlev Zundel who suggested this approach.

Signed-off-by: Wolfgang Denk <wd@denx.de>
---
 common/Makefile         |    9 +++++----
 drivers/rtc/Makefile    |    6 +++---
 drivers/serial/Makefile |    2 +-
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/common/Makefile b/common/Makefile
index 0fe9c8b..d3888d6 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -56,7 +56,8 @@ COBJS-y += env_nowhere.o
 
 # command
 COBJS-$(CONFIG_CMD_AMBAPP) += cmd_ambapp.o
-COBJS-$(CONFIG_AUTOSCRIPT)$(CONFIG_CMD_AUTOSCRIPT) += cmd_autoscript.o
+COBJS-$(CONFIG_AUTOSCRIPT) += cmd_autoscript.o
+COBJS-$(CONFIG_CMD_AUTOSCRIPT) += cmd_autoscript.o
 COBJS-$(CONFIG_CMD_BDI) += cmd_bdinfo.o
 COBJS-$(CONFIG_CMD_BEDBUG) += bedbug.o cmd_bedbug.o
 COBJS-$(CONFIG_CMD_BMP) += cmd_bmp.o
@@ -110,7 +111,8 @@ COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o
 COBJS-y += cmd_mac.o
 COBJS-y += cmd_mem.o
 COBJS-$(CONFIG_CMD_MFSL) += cmd_mfsl.o
-COBJS-$(CONFIG_MII)$(CONFIG_CMD_MII) += miiphyutil.o
+COBJS-$(CONFIG_MII) += miiphyutil.o
+COBJS-$(CONFIG_CMD_MII) += miiphyutil.o
 COBJS-$(CONFIG_CMD_MII) += cmd_mii.o
 COBJS-$(CONFIG_CMD_MISC) += cmd_misc.o
 COBJS-$(CONFIG_CMD_MMC) += cmd_mmc.o
@@ -151,8 +153,7 @@ COBJS-$(CONFIG_LYNXKDI) += lynxkdi.o
 COBJS-$(CONFIG_USB_KEYBOARD) += usb_kbd.o
 COBJS-$(CONFIG_DDR_SPD) += ddr_spd.o
 
-COBJS-y	+= $(COBJS-yy)
-COBJS	:= $(COBJS-y)
+COBJS	:= $(sort COBJS-y)
 SRCS	:= $(AOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(AOBJS) $(COBJS))
 
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index f41f33d..7f817dc 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -32,8 +32,8 @@ COBJS-y += date.o
 COBJS-$(CONFIG_RTC_DS12887) += ds12887.o
 COBJS-$(CONFIG_RTC_DS1302) += ds1302.o
 COBJS-$(CONFIG_RTC_DS1306) += ds1306.o
-COBJS-$(CONFIG_RTC_DS1307)$(CONFIG_RTC_DS1338) += ds1307.o
-COBJS-y += $(COBJS-yy)
+COBJS-$(CONFIG_RTC_DS1307) += ds1307.o
+COBJS-$(CONFIG_RTC_DS1338) += ds1307.o
 COBJS-$(CONFIG_RTC_DS1337) += ds1337.o
 COBJS-$(CONFIG_RTC_DS1374) += ds1374.o
 COBJS-$(CONFIG_RTC_DS1556) += ds1556.o
@@ -59,7 +59,7 @@ COBJS-$(CONFIG_RTC_RX8025) += rx8025.o
 COBJS-$(CONFIG_RTC_S3C24X0) += s3c24x0_rtc.o
 COBJS-$(CONFIG_RTC_X1205) += x1205.o
 
-COBJS	:= $(COBJS-y)
+COBJS	:= $(sort COBJS-y)
 SRCS	:= $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
 
diff --git a/drivers/serial/Makefile b/drivers/serial/Makefile
index b370828..adb0a58 100644
--- a/drivers/serial/Makefile
+++ b/drivers/serial/Makefile
@@ -39,7 +39,7 @@ COBJS-$(CONFIG_XILINX_UARTLITE) += serial_xuartlite.o
 COBJS-$(CONFIG_SCIF_CONSOLE) += serial_sh.o
 COBJS-$(CONFIG_USB_TTY) += usbtty.o
 
-COBJS	:= $(COBJS-y)
+COBJS	:= $(sort COBJS-y)
 SRCS	:= $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
 
-- 
1.5.6.1

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

* [U-Boot] [PATCH] Makefile: compile and link each module just once
  2008-09-09 13:50 [U-Boot] [PATCH] Makefile: compile and link each module just once Wolfgang Denk
@ 2008-09-09 14:08 ` Andreas Engel
  2008-09-09 14:58   ` Wolfgang Denk
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Engel @ 2008-09-09 14:08 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:
> [...]
> "COBJS = $(sort COBJS-y)" which eliminates duplicates.
> [...]
> +COBJS  := $(sort COBJS-y)
> [...]
> +COBJS  := $(sort COBJS-y)
> [...]
> +COBJS  := $(sort COBJS-y)

I think you'll have more luck with $(sort $(COBJS-y)).

Regards,
  Andreas

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

* [U-Boot] [PATCH] Makefile: compile and link each module just once
  2008-09-09 15:10     ` JerryVanBaren
@ 2008-09-09 14:52       ` Jean-Christophe PLAGNIOL-VILLARD
  2008-09-09 21:09       ` Wolfgang Denk
  1 sibling, 0 replies; 6+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-09-09 14:52 UTC (permalink / raw)
  To: u-boot

On 11:10 Tue 09 Sep     , JerryVanBaren wrote:
> Wolfgang Denk wrote:
> > Dear Andreas Engel,
> > 
> > In message <48C6834B.70603@ericsson.com> you wrote:
> >> Wolfgang Denk wrote:
> >>> [...]
> >>> "COBJS = $(sort COBJS-y)" which eliminates duplicates.
> >>> [...]
> >>> +COBJS  := $(sort COBJS-y)
> >>> [...]
> >>> +COBJS  := $(sort COBJS-y)
> >>> [...]
> >>> +COBJS  := $(sort COBJS-y)
> >> I think you'll have more luck with $(sort $(COBJS-y)).
> > 
> > Argh! Of course you are right.
> > 
> > And I idiot pushed this out already so we have a number of
> > un-bisectable patches on top :-(  It's time to go home, it seems.
> 
> Time for that beer we all owe you.  You can put the first one on my tab.
> 

We all do this kind of thing. But you can put the second one on my tab.

;-)


Best Regards,
J.

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

* [U-Boot] [PATCH] Makefile: compile and link each module just once
  2008-09-09 14:08 ` Andreas Engel
@ 2008-09-09 14:58   ` Wolfgang Denk
  2008-09-09 15:10     ` JerryVanBaren
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Denk @ 2008-09-09 14:58 UTC (permalink / raw)
  To: u-boot

Dear Andreas Engel,

In message <48C6834B.70603@ericsson.com> you wrote:
> Wolfgang Denk wrote:
> > [...]
> > "COBJS = $(sort COBJS-y)" which eliminates duplicates.
> > [...]
> > +COBJS  := $(sort COBJS-y)
> > [...]
> > +COBJS  := $(sort COBJS-y)
> > [...]
> > +COBJS  := $(sort COBJS-y)
> 
> I think you'll have more luck with $(sort $(COBJS-y)).

Argh! Of course you are right.

And I idiot pushed this out already so we have a number of
un-bisectable patches on top :-(  It's time to go home, it seems.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Lack of skill dictates economy of style.                - Joey Ramone

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

* [U-Boot] [PATCH] Makefile: compile and link each module just once
  2008-09-09 14:58   ` Wolfgang Denk
@ 2008-09-09 15:10     ` JerryVanBaren
  2008-09-09 14:52       ` Jean-Christophe PLAGNIOL-VILLARD
  2008-09-09 21:09       ` Wolfgang Denk
  0 siblings, 2 replies; 6+ messages in thread
From: JerryVanBaren @ 2008-09-09 15:10 UTC (permalink / raw)
  To: u-boot

Wolfgang Denk wrote:
> Dear Andreas Engel,
> 
> In message <48C6834B.70603@ericsson.com> you wrote:
>> Wolfgang Denk wrote:
>>> [...]
>>> "COBJS = $(sort COBJS-y)" which eliminates duplicates.
>>> [...]
>>> +COBJS  := $(sort COBJS-y)
>>> [...]
>>> +COBJS  := $(sort COBJS-y)
>>> [...]
>>> +COBJS  := $(sort COBJS-y)
>> I think you'll have more luck with $(sort $(COBJS-y)).
> 
> Argh! Of course you are right.
> 
> And I idiot pushed this out already so we have a number of
> un-bisectable patches on top :-(  It's time to go home, it seems.

Time for that beer we all owe you.  You can put the first one on my tab.

;-)
gvb

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

* [U-Boot] [PATCH] Makefile: compile and link each module just once
  2008-09-09 15:10     ` JerryVanBaren
  2008-09-09 14:52       ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-09-09 21:09       ` Wolfgang Denk
  1 sibling, 0 replies; 6+ messages in thread
From: Wolfgang Denk @ 2008-09-09 21:09 UTC (permalink / raw)
  To: u-boot

Dear JerryVanBaren,

In message <48C691DB.1060204@ge.com> you wrote:
>
> Time for that beer we all owe you.  You can put the first one on my tab.

Here it is.

Sorry, it's just a virtual one. Make  sure  to  correctly  initialize
your TLBs...

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"A verbal contract isn't worth the paper it's printed on."
- Samuel Goldwyn

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

end of thread, other threads:[~2008-09-09 21:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-09 13:50 [U-Boot] [PATCH] Makefile: compile and link each module just once Wolfgang Denk
2008-09-09 14:08 ` Andreas Engel
2008-09-09 14:58   ` Wolfgang Denk
2008-09-09 15:10     ` JerryVanBaren
2008-09-09 14:52       ` Jean-Christophe PLAGNIOL-VILLARD
2008-09-09 21:09       ` Wolfgang Denk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox