summaryrefslogtreecommitdiffstats
path: root/src/build/mkrules/passes.env.mk
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2013-02-27 18:58:30 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-03-01 14:30:16 -0600
commitb3d259d970c91fb8ac3b931e5409dd8cecca699f (patch)
tree156802817d5d014f4affd01eaa1a5332c0491054 /src/build/mkrules/passes.env.mk
parentc51452c00b0e2bf2510d63e6863e3cd9802ee711 (diff)
downloadtalos-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.mk78
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
+
OpenPOWER on IntegriCloud