diff options
author | Marian Balakowicz <m8@semihalf.com> | 2006-09-01 19:49:50 +0200 |
---|---|---|
committer | Marian Balakowicz <m8@semihalf.com> | 2006-09-01 19:49:50 +0200 |
commit | f93286397ed2a7084efb0362a43ee09f11702349 (patch) | |
tree | 11e0c11781ba0b867831eff47a4178a464cf00b3 /board/integratorcp | |
parent | 24d3d3754634532ae262075484e7c1d00d447152 (diff) |
Add support for a saving build objects in a separate directory.
Modifications are based on the linux kernel approach and
support two use cases:
1) Add O= to the make command line
'make O=/tmp/build all'
2) Set environement variable BUILD_DIR to point to the desired location
'export BUILD_DIR=/tmp/build'
'make'
The second approach can also be used with a MAKEALL script
'export BUILD_DIR=/tmp/build'
'./MAKEALL'
Command line 'O=' setting overrides BUILD_DIR environent variable.
When none of the above methods is used the local build is performed and
the object files are placed in the source directory.
Diffstat (limited to 'board/integratorcp')
-rw-r--r-- | board/integratorcp/Makefile | 20 | ||||
-rw-r--r-- | board/integratorcp/config.mk | 6 | ||||
-rwxr-xr-x | board/integratorcp/split_by_variant.sh | 9 |
3 files changed, 24 insertions, 11 deletions
diff --git a/board/integratorcp/Makefile b/board/integratorcp/Makefile index 3d589fcd5ad..efafeb687c5 100644 --- a/board/integratorcp/Makefile +++ b/board/integratorcp/Makefile @@ -1,5 +1,5 @@ # -# (C) Copyright 2000-2004 +# (C) Copyright 2000-2006 # Wolfgang Denk, DENX Software Engineering, wd@denx.de. # # See file CREDITS for list of people who contributed to this @@ -23,13 +23,17 @@ include $(TOPDIR)/config.mk -LIB = lib$(BOARD).a +LIB = $(obj)lib$(BOARD).a -OBJS := integratorcp.o flash.o +COBJS := integratorcp.o flash.o SOBJS := lowlevel_init.o memsetup.o -$(LIB): $(OBJS) $(SOBJS) - $(AR) crv $@ $^ +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(AR) crv $@ $(OBJS) $(SOBJS) clean: rm -f $(SOBJS) $(OBJS) @@ -39,9 +43,9 @@ distclean: clean ######################################################################### -.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) - $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ +# defines $(obj).depend target +include $(SRCTREE)/rules.mk --include .depend +sinclude $(obj).depend ######################################################################### diff --git a/board/integratorcp/config.mk b/board/integratorcp/config.mk index 25b79b3e793..e4c5c3b57a0 100644 --- a/board/integratorcp/config.mk +++ b/board/integratorcp/config.mk @@ -3,3 +3,9 @@ # TEXT_BASE = 0x01000000 + +ifneq ($(OBJTREE),$(SRCTREE)) +# We are building u-boot in a separate directory, use generated +# .lds script from OBJTREE directory. +LDSCRIPT := $(OBJTREE)/board/$(BOARDDIR)/u-boot.lds +endif diff --git a/board/integratorcp/split_by_variant.sh b/board/integratorcp/split_by_variant.sh index 3a354339d7c..37ae517fc0f 100755 --- a/board/integratorcp/split_by_variant.sh +++ b/board/integratorcp/split_by_variant.sh @@ -98,14 +98,17 @@ then echo -n "#undef CONFIG_CM_TCRAM " >> tmp.fil echo " /* CM may not have TCRAM */" >> tmp.fil fi -mv tmp.fil ./include/config.h + +mkdir -p ${obj}include +mkdir -p ${obj}board/integratorcp +mv tmp.fil ${obj}include/config.h # --------------------------------------------------------- # Ensure correct core object loaded first in U-Boot image # --------------------------------------------------------- -sed -r 's/CPU_FILE/cpu\/'$cpu'\/start.o/; s/#.*//' board/integratorcp/u-boot.lds.template > board/integratorcp/u-boot.lds +sed -r 's/CPU_FILE/cpu\/'$cpu'\/start.o/; s/#.*//' ${src}board/integratorcp/u-boot.lds.template > ${obj}board/integratorcp/u-boot.lds # --------------------------------------------------------- # Complete the configuration # --------------------------------------------------------- -./mkconfig -a integratorcp arm $cpu integratorcp; +$MKCONFIG -a integratorcp arm $cpu integratorcp; echo "Variant:: $variant with core $cpu" |