diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2013-02-27 18:58:30 -0600 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2013-03-01 14:30:16 -0600 |
commit | b3d259d970c91fb8ac3b931e5409dd8cecca699f (patch) | |
tree | 156802817d5d014f4affd01eaa1a5332c0491054 /src/build/mkrules/passes.env.mk | |
parent | c51452c00b0e2bf2510d63e6863e3cd9802ee711 (diff) | |
download | talos-hostboot-b3d259d970c91fb8ac3b931e5409dd8cecca699f.tar.gz talos-hostboot-b3d259d970c91fb8ac3b931e5409dd8cecca699f.zip |
Refactoring of the build system.
- Remove unused files for generating LIDs.
- Reduce the overall verbosity of the build.
- Separate 'config.mk' into a number of smaller, topic-centric
files and comment better.
- Generalize the 'passes' concept and added an IMAGES pass.
- Deprecate most "magic" make variables like EXTRAFOO.
- Overall performance improvements.
I've tried to reduce the impact of these changes on component-level
makefiles. There will be follow-up commit(s) to improve those and
decrease the verbosity of some component-owned commands.
Change-Id: I6d319f5338eb3946f56b281c3cdd5f341a016fcc
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/3368
Reviewed-by: Brian H. Horton <brianh@linux.ibm.com>
Tested-by: Jenkins Server
Reviewed-by: ADAM R. MUHLE <armuhle@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/build/mkrules/passes.env.mk')
-rw-r--r-- | src/build/mkrules/passes.env.mk | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/build/mkrules/passes.env.mk b/src/build/mkrules/passes.env.mk new file mode 100644 index 000000000..4d049c099 --- /dev/null +++ b/src/build/mkrules/passes.env.mk @@ -0,0 +1,78 @@ +# IBM_PROLOG_BEGIN_TAG +# This is an automatically generated prolog. +# +# $Source: src/build/mkrules/passes.env.mk $ +# +# IBM CONFIDENTIAL +# +# COPYRIGHT International Business Machines Corp. 2013 +# +# p1 +# +# Object Code Only (OCO) source materials +# Licensed Internal Code Source Materials +# IBM HostBoot Licensed Internal Code +# +# The source code for this program is not published or otherwise +# divested of its trade secrets, irrespective of what has been +# deposited with the U.S. Copyright Office. +# +# Origin: 30 +# +# IBM_PROLOG_END_TAG + +# File: passes.env.mk +# Description: +# Definition of the passes and their default contents. +# +# DEFAULT_PASSES are what get run when you do a 'make' or 'make all'. The +# order of the passes in the variable define an ordering. +# +# OTHER_PASSES are special passes that get triggered by 'make NAME_PASS'. +# Sometimes these have a shortcut, like 'make name'. The content for these +# are in their own special name.rules.mk. + +DEFAULT_PASSES = GEN CODE IMAGE +OTHER_PASSES = CLEAN GCOV BEAM + +## GEN_PASS +## Create the $(GENFILES) content. +GENTARGET = $(addprefix $(GENDIR)/, $(1)) +GENPLUGINTARGET = $(addprefix $(GENDIR_PLUGINS)/, $(1)) + +GEN_PASS_BODY += $(addprefix $(GENDIR)/, $(GENFILES)) +CLEAN_TARGETS += $(addprefix $(GENDIR)/, $(GENFILES)) +GEN_PASS_BODY += $(addprefix $(GENDIR_PLUGINS)/, $(GENFILES_PLUGINS)) +CLEAN_TARGETS += $(addprefix $(GENDIR_PLUGINS)/, $(GENFILES_PLUGINS)) + +ifneq ($(strip $(GEN_PASS_BODY)),) +make_gendir: + @mkdir -p $(GENDIR) + @mkdir -p $(GENDIR_PLUGINS) +.PHONY: make_gendir +GEN_PASS_PRE += make_gendir +endif + +## CODE_PASS +## Compile the $(OBJS) and build the $(LIBS). +CODE_PASS_BODY += $(OBJECTS) $(OBJECTS:.o=.list) $(LIBRARIES) $(EXTRA_PARTS) +CLEAN_TARGETS += $(OBJECTS) $(OBJECTS:.o=.o.hash) $(OBJECTS:.o=.dep) \ + $(OBJECTS:.o=.list) $(LIBRARIES) $(EXTRA_PARTS) +ifeq ($(MAKECMDGOALS),_BUILD/PASSES/CODE/BODY/ACT) + -include $(OBJECTS:.o=.dep) +endif + + +## IMAGE_PASS +## Build the $(IMGS). +IMAGE_PASS_BODY += $(IMAGES) +CLEAN_TARGETS += $(IMAGES) \ + $(IMAGES:.bin=.bin.modinfo) $(IMAGES:.bin=_extended.bin) + +## CLEAN_PASS +## Make the repo clean again by removing all the $(CLEAN_TARGETS). +CLEAN_PASS_BODY += $(addprefix _BUILD/CLEAN/,$(wildcard $(CLEAN_TARGETS))) + +.PHONY: clean +clean: CLEAN_PASS + |