mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
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>
This commit is contained in:
parent
7661729935
commit
de109d9097
1 changed files with 10 additions and 4 deletions
14
Makefile
14
Makefile
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue