summaryrefslogtreecommitdiffstats
path: root/src/build/mkrules/cc.rules.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/cc.rules.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/cc.rules.mk')
-rw-r--r--src/build/mkrules/cc.rules.mk69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/build/mkrules/cc.rules.mk b/src/build/mkrules/cc.rules.mk
new file mode 100644
index 000000000..100575095
--- /dev/null
+++ b/src/build/mkrules/cc.rules.mk
@@ -0,0 +1,69 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/build/mkrules/cc.rules.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: cc.rules.mk
+# Description:
+# Rules for compiling C/C++/ASM files.
+
+$(OBJDIR)/%.list : $(OBJDIR)/%.o
+ $(C2) " OBJDUMP $(notdir $<)"
+ $(C1)$(OBJDUMP) -rdlCS $< > $@
+
+$(OBJDIR)/%.o : %.C
+ @mkdir -p $(OBJDIR)
+ $(C2) " CXX $(notdir $<)"
+ $(C1)$(CXX) -c $(call FLAGS_FILTER, $(CXXFLAGS), $<) $< \
+ -o $@ $(INCFLAGS) -iquote .
+
+# Compiling *.cc files
+$(OBJDIR)/%.o : %.cc
+ @mkdir -p $(OBJDIR)
+ $(C2) " CXX $(notdir $<)"
+ $(C1)$(CXX) -c $(CXXFLAGS) $< -o $@ $(INCFLAGS) -iquote .
+
+$(OBJDIR)/%.o : %.c
+ @mkdir -p $(OBJDIR)
+# Override to use C++ compiler in place of C compiler
+# CC_OVERRIDE is set in the makefile of the component
+ifndef CC_OVERRIDE
+ $(C2) " CC $(notdir $<)"
+ $(C1)$(CC) -c $(call FLAGS_FILTER, $(CFLAGS), $<) $< \
+ -o $@ $(INCFLAGS) -iquote .
+else
+ $(C2) " CXX $(notdir $<)"
+ $(C1)$(CXX) -c $(call FLAGS_FILTER, $(CXXFLAGS), $<) $< \
+ -o $@ $(INCFLAGS) -iquote .
+endif
+
+$(OBJDIR)/%.o : %.S
+ @mkdir -p $(OBJDIR)
+ $(C2) " CC $(notdir $<)"
+ $(C1)$(CC) -c $(ASMFLAGS) $< -o $@ $(ASMINCFLAGS) $(INCFLAGS) -iquote .
+
+ifdef MODULE
+$(IMGDIR)/lib$(MODULE).so : $(OBJECTS) $(ROOTPATH)/src/module.ld $(MODULE_INIT)
+ $(C2) " LD $(notdir $@)"
+ $(C1)$(LD) -shared -z now $(LDFLAGS) \
+ $(OBJECTS) $(MODULE_INIT) \
+ -T $(ROOTPATH)/src/module.ld -o $@
+endif
OpenPOWER on IntegriCloud