diff options
author | Wolfgang Denk <wd@denx.de> | 2008-04-30 17:25:07 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-04-30 17:25:07 +0200 |
commit | de109d909707e2dfe806be5efc3cdb103b47c8ad (patch) | |
tree | 9e40eee23385b8e17df4f8e1388a4340b4466f88 /Makefile | |
parent | 76617299358ebba260ecc02d33e8e75d8d13dd3b (diff) | |
download | u-boot-imx-de109d909707e2dfe806be5efc3cdb103b47c8ad.zip u-boot-imx-de109d909707e2dfe806be5efc3cdb103b47c8ad.tar.gz u-boot-imx-de109d909707e2dfe806be5efc3cdb103b47c8ad.tar.bz2 |
Makefile: fix parallel builds
This problem shows up with parallel builds only; it results in
somewhat cryptic error messages like
$ JOBS=-j6 MAKEALL netstar
Configuring for netstar board...
arm-linux-ld: cannot find -lgeneric
make[1]: *** [eeprom.srec] Error 1
A few boards (like netstar and voiceblue) need some libraries for
building; however, the board Makefile does not contain any such
dependencies which may cause problems with parallel builds. Adding
such dependencies is difficult as we would also have to provide build
rules, which already exist in the respective library Makefiles.
To solve this, we make sure that all libraries get built before the
board code.
Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -201,7 +201,6 @@ OBJS := $(addprefix $(obj),$(OBJS)) LIBS = lib_generic/libgeneric.a LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \ "board/$(VENDOR)/common/lib$(VENDOR).a"; fi) -LIBS += board/$(BOARDDIR)/lib$(BOARD).a LIBS += cpu/$(CPU)/lib$(CPU).a ifdef SOC LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a @@ -248,6 +247,9 @@ LIBS += post/libpost.a LIBS := $(addprefix $(obj),$(LIBS)) .PHONY : $(LIBS) $(VERSION_FILE) +LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a +LIBBOARD := $(addprefix $(obj),$(LIBBOARD)) + # Add GCC lib PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -270,7 +272,7 @@ U_BOOT_ONENAND = $(obj)u-boot-onenand.bin endif __OBJS := $(subst $(obj),,$(OBJS)) -__LIBS := $(subst $(obj),,$(LIBS)) +__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD)) ######################################################################### ######################################################################### @@ -313,8 +315,9 @@ $(obj)u-boot.sha1: $(obj)u-boot.bin $(obj)u-boot.dis: $(obj)u-boot $(OBJDUMP) -d $< > $@ -$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) - UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ +$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) + UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \ + sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \ --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \ -Map u-boot.map -o u-boot @@ -325,6 +328,9 @@ $(OBJS): depend $(obj)include/autoconf.mk $(LIBS): depend $(obj)include/autoconf.mk $(MAKE) -C $(dir $(subst $(obj),,$@)) +$(LIBBOARD): depend $(LIBS) $(obj)include/autoconf.mk + $(MAKE) -C $(dir $(subst $(obj),,$@)) + $(SUBDIRS): depend $(obj)include/autoconf.mk $(MAKE) -C $@ all |