summaryrefslogtreecommitdiffstats
path: root/Makefile.inc
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2012-04-19 12:00:06 +0300
committerPatrick Georgi <patrick@georgi-clan.de>2012-04-21 09:43:32 +0200
commit0db2ae3ac44ceb05e96973e6101d472dbef164a0 (patch)
tree94f0234b1007563a0037bba353d1c7c2a574dc18 /Makefile.inc
parent93b4ed91f6b1027c370da9bdd6d86664dcda671b (diff)
downloadcoreboot-staging-0db2ae3ac44ceb05e96973e6101d472dbef164a0.zip
coreboot-staging-0db2ae3ac44ceb05e96973e6101d472dbef164a0.tar.gz
Makefile: define build result directories
Final build results (.elf, .debug, .map) are to be placed under directory $(objcbfs), the default is: $(obj)/cbfs/$(CONFIG_CBFS_PREFIX)/ Intermediate build results (.o, .s, .S, .inc, .ld) that do not have a clear one-to-one relation to a file under src/ are to be placed under directory $(objgenerated), the default is: $(obj)/generated Also defines implicit rules for final build results: .debug -> .elf and .map .elf -> .bin Change-Id: I448c6b7c9a952e54170df42091d7db438025a795 Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/858 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Diffstat (limited to 'Makefile.inc')
-rw-r--r--Makefile.inc18
1 files changed, 16 insertions, 2 deletions
diff --git a/Makefile.inc b/Makefile.inc
index b5e8811..4d25dd5 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -27,14 +27,25 @@ ARCHDIR-$(CONFIG_ARCH_X86) := x86
MAINBOARDDIR=$(call strip_quotes,$(CONFIG_MAINBOARD_DIR))
export MAINBOARDDIR
+## Final build results, which CBFSTOOL uses to create the final
+## rom image file, are placed under $(objcbfs).
+## These typically have suffixes .debug .elf .bin and .map
+export objcbfs := $(obj)/cbfs/$(CONFIG_CBFS_PREFIX)
+
+## Based on the active configuration, Makefile conditionally collects
+## the required assembly includes and saves them in a file.
+## Such files that do not have a clear one-to-one relation to a source
+## file under src/ are placed and built under $(objgenerated)
+export objgenerated := $(obj)/generated
+
#######################################################################
# root rule to resolve if in build mode (ie. configuration exists)
real-target: $(obj)/config.h coreboot
-coreboot: $(obj)/coreboot.rom
+coreboot: build-dirs $(obj)/coreboot.rom
#######################################################################
# our phony targets
-PHONY+= clean-abuild coreboot lint lint-stable
+PHONY+= clean-abuild coreboot lint lint-stable build-dirs
#######################################################################
# root source directories of coreboot
@@ -168,6 +179,9 @@ $(obj)/build.h: .xcompile
$(obj)/ldoptions: $(obj)/config.h
awk '/^#define ([^"])* ([^"])*$$/ {gsub("\\r","",$$3); print $$2 " = " $$3 ";";}' $< > $@
+build-dirs:
+ mkdir -p $(objcbfs) $(objgenerated)
+
#######################################################################
# Build the tools
CBFSTOOL:=$(obj)/cbfstool
OpenPOWER on IntegriCloud