From 74d2fd5773f91470e17009b5da93f9d4a5cb1d5c Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Fri, 24 Jun 2011 10:47:35 -0500 Subject: 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 --- config.mk | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'config.mk') 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; \ -- cgit v1.2.1