summaryrefslogtreecommitdiffstats
path: root/config.mk
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-06-24 10:47:35 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-06-24 11:19:45 -0500
commit74d2fd5773f91470e17009b5da93f9d4a5cb1d5c (patch)
tree9efb4b4671122aa9336cc0004d1a9d84e1178334 /config.mk
parent5611dd07de1fa342f487d49f57259639c2b0529a (diff)
downloadtalos-hostboot-74d2fd5773f91470e17009b5da93f9d4a5cb1d5c.tar.gz
talos-hostboot-74d2fd5773f91470e17009b5da93f9d4a5cb1d5c.zip
Create a new pass to generate header files.
This pass is executed before trying to compile anything. Makefiles can now add headerfiles to be generated to the GENFILES variable and define rules for how these headers get generated. Generated headers should go into 'obj/genfiles/'. Change-Id: Ieab44f0559e1dd75f5426b67545c4914035d4c23 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/157 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'config.mk')
-rw-r--r--config.mk27
1 files changed, 21 insertions, 6 deletions
diff --git a/config.mk b/config.mk
index 0a96d472b..be75fbade 100644
--- a/config.mk
+++ b/config.mk
@@ -1,17 +1,22 @@
-all: ALL ${EXTRA_PARTS}
+all:
+ ${MAKE} gen_pass
+ ${MAKE} code_pass
ifdef MODULE
OBJDIR = ${ROOTPATH}/obj/modules/${MODULE}
BEAMDIR = ${ROOTPATH}/obj/beam/${MODULE}
+GENDIR = ${ROOTPATH}/obj/genfiles/
IMGDIR = ${ROOTPATH}/img
EXTRACOMMONFLAGS += -fPIC -Bsymbolic -Bsymbolic-functions
LIBS += $(addsuffix .so, $(addprefix lib, ${MODULE}))
MODULE_INIT = ${ROOTPATH}/obj/core/module_init.o
-EXTRAINCDIR += ${ROOTPATH}/src/include/usr
+EXTRAINCDIR += ${ROOTPATH}/src/include/usr ${GENDIR}
else
OBJDIR = ${ROOTPATH}/obj/core
BEAMDIR = ${ROOTPATH}/obj/beam/core
+GENDIR = ${ROOTPATH}/obj/genfiles/
IMGDIR = ${ROOTPATH}/img
+EXTRAINCDIR += ${GENDIR}
endif
TRACEPP = ${ROOTPATH}/src/build/trace/tracepp
@@ -170,7 +175,10 @@ ${IMGDIR}/hbotStringFile : ${IMAGES}
${ROOTPATH}/src/build/trace/tracehash_hb.pl -c -d ${ROOTPATH}/obj -s $@
%.d: ${OBJECTS}
- cd ${basename $@} && ${MAKE} all
+ cd ${basename $@} && ${MAKE} code_pass
+
+%.gen_pass:
+ cd ${basename $@} && ${MAKE} gen_pass
%.clean:
cd ${basename $@} && ${MAKE} clean
@@ -178,11 +186,18 @@ ${IMGDIR}/hbotStringFile : ${IMAGES}
%.beamdir:
cd ${basename $@} && ${MAKE} beam
-ALL: ${OBJECTS} ${SUBDIRS} ${LIBRARIES} ${EXTRA_LIDS_}
+code_pass: ${OBJECTS} ${SUBDIRS} ${LIBRARIES} ${EXTRA_LIDS_} ${EXTRA_PARTS}
ifdef IMAGES
${MAKE} ${IMAGES} ${IMAGE_EXTRAS}
endif
+gen_pass:
+ mkdir -p ${GENDIR}
+ ${MAKE} GEN_PASS
+
+_GENFILES = $(addprefix ${GENDIR}/, ${GENFILES})
+GEN_PASS: ${_GENFILES} ${SUBDIRS:.d=.gen_pass}
+
${BEAMDIR}/%.beam : %.C
mkdir -p ${BEAMDIR}
${BEAMCMD} -I ${INCDIR} ${CXXFLAGS} ${BEAMFLAGS} $< \
@@ -205,9 +220,9 @@ clean: ${SUBDIRS:.d=.clean}
${IMAGES} ${IMAGES:.bin=.list} ${IMAGES:.bin=.syms} \
${IMAGES:.bin=.bin.modinfo} ${IMAGES:.ruhx=.lid} \
${IMAGES:.ruhx=.lidhdr} ${IMAGE_EXTRAS} ${EXTRA_LIDS_} \
- ${EXTRA_OBJS})
+ ${EXTRA_OBJS} ${_GENFILES})
-cscope: ALL
+cscope: code_pass
mkdir -p ${ROOTPATH}/obj/cscope
(cd ${ROOTPATH}/obj/cscope ; rm -f cscope.* ; \
find ../../ -name '*.[CHchS]' -type f -fprint cscope.files; \
OpenPOWER on IntegriCloud