X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=build%2Fmodule.tpl;h=be324b21c8c47d3993286fc46fce74b77d6a3c74;hb=7b209ab25077a3ddc8556bca57db275f1fbe3436;hp=7c25c7c53aa1f1961a30e2d6653a46bb71847c2e;hpb=905920ceeb601a76d7a8637e3131767677d69314;p=u%2Fmrichter%2FAliRoot.git diff --git a/build/module.tpl b/build/module.tpl index 7c25c7c53aa..be324b21c8c 100644 --- a/build/module.tpl +++ b/build/module.tpl @@ -85,16 +85,13 @@ endif @PACKAGE@S:=$(patsubst %,$(MODDIR)/%,$(SRCS)) @PACKAGE@H:=$(patsubst %,$(MODDIR)/%,$(HDRS)) $(EHDRS) -#c++ source subdirectories -@PACKAGE@SDIR:=$(SUBDIR) - ############################################################################# # # If special rootcint headerfiles is specified use them # else use all headers ifndef CINTHDRS -@PACKAGE@CINTHDRS:=$(@PACKAGE@H) +@PACKAGE@CINTHDRS:=$(@PACKAGE@H) else @PACKAGE@CINTHDRS:=$(CINTHDRS) endif @@ -104,10 +101,12 @@ endif @PACKAGE@DH:=$(MODDIR)/$(DHDR) #All objects +@PACKAGE@CXXO:=$(patsubst %,$(MODDIRO)/%, $(SRCS:.cxx=.o)) @PACKAGE@CO:=$(patsubst %,$(MODDIRO)/%, $(CSRCS:.c=.o)) -TEMP:=$(FSRCS:.F=.o) -@PACKAGE@FO:=$(patsubst %,$(MODDIRO)/%, $(TEMP:.f=.o)) -@PACKAGE@O:= $(patsubst %,$(MODDIRO)/%, $(SRCS:.cxx=.o)) $(@PACKAGE@FO) $(@PACKAGE@CO) +@PACKAGE@SMALLFO:=$(patsubst %.f,$(MODDIRO)/%.o, $(filter %.f, $(FSRCS))) +@PACKAGE@CAPITFO:=$(patsubst %.F,$(MODDIRO)/%.o, $(filter %.F, $(FSRCS))) +@PACKAGE@FO:=$(@PACKAGE@SMALLFO) $(@PACKAGE@CAPITFO) +@PACKAGE@O:= $(@PACKAGE@CXXO) $(@PACKAGE@FO) $(@PACKAGE@CO) @@ -252,11 +251,11 @@ endif $(@PACKAGE@DS): $(@PACKAGE@CINTHDRS) $(@PACKAGE@DH) @MODULE@/module.mk @MODULE@/tgt_$(ALICE_TARGET)/@PACKAGE@_srcslist ifndef ALIQUIET - @echo "***** Creating $@ *****"; + @echo "***** Creating $@ *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) @\rm -f $(patsubst %.cxx,%.d, $@) - $(MUTE)rootcint -f $@ -c $(@PACKAGE@DEFINE) $(CINTFLAGS) $(@PACKAGE@INC) $(@PACKAGE@CINTHDRS) $(@PACKAGE@DH) + $(MUTE)rootcint -f $@ -c $(@PACKAGE@DEFINE) $(CINTFLAGS) $(@PACKAGE@INC) $(@PACKAGE@CINTHDRS) $(@PACKAGE@DH) $(@PACKAGE@DO): $(@PACKAGE@DS) ifndef ALIQUIET @@ -265,13 +264,13 @@ endif $(MUTE)$(CXX) $(@PACKAGE@DEFINE) -c $(@PACKAGE@INC) -I$(ALICE_ROOT) $< -o $@ $(@PACKAGE@DCXXFLAGS) $(MODDIRO)/@PACKAGE@_srcslist: @MODULE@/@TYPE@@PACKAGE@.pkg - @if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi - @for i in '$(@PACKAGE@CS) $(@PACKAGE@S)'; do echo $$i; done | sort > $@.new - @for j in `diff -w $@ $@.new 2>/dev/null | awk '/^\ $@.new + $(MUTE)for j in `diff -w $@ $@.new 2>/dev/null | awk '/^\/dev/null 2>&1 $@ $@.new ;\ + $(MUTE)diff -q -w >/dev/null 2>&1 $@ $@.new ;\ if [ $$? -ne 0 ]; then \mv $@.new $@; else \rm $@.new; fi #Different targets for the module @@ -288,28 +287,28 @@ endif depend-@PACKAGE@: $(@PACKAGE@DEP) # determination of object files -$(MODDIRO)/%.o: $(MODDIR)/%.cxx $(MODDIRO)/%.d +$(@PACKAGE@CXXO): $(MODDIRO)/%.o: $(MODDIR)/%.cxx $(MODDIRO)/%.d ifndef ALIQUIET @echo "***** Compiling $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) $(MUTE)$(CXX) $(@PACKAGE@DEFINE) -c $(@PACKAGE@INC) $< -o $@ $(@PACKAGE@CXXFLAGS) -$(MODDIRO)/%.o: $(MODDIR)/%.F $(MODDIRO)/%.d +$(@PACKAGE@CAPITFO): $(MODDIRO)/%.o: $(MODDIR)/%.F $(MODDIRO)/%.d ifndef ALIQUIET @echo "***** Compiling $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) $(MUTE)$(F77) -c $(@PACKAGE@INC) $< -o $@ $(@PACKAGE@FFLAGS) -$(MODDIRO)/%.o: $(MODDIR)/%.f $(MODDIRO)/%.d +$(@PACKAGE@SMALLFO): $(MODDIRO)/%.o: $(MODDIR)/%.f $(MODDIRO)/%.d ifndef ALIQUIET @echo "***** Compiling $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) $(MUTE)$(F77) -c $(@PACKAGE@INC) $< -o $@ $(@PACKAGE@FFLAGS) -$(MODDIRO)/%.o: $(MODDIR)/%.c $(MODDIRO)/%.d +$(@PACKAGE@CO): $(MODDIRO)/%.o: $(MODDIR)/%.c $(MODDIRO)/%.d ifndef ALIQUIET @echo "***** Compiling $< *****"; endif @@ -323,25 +322,28 @@ endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) @share/alibtool depend "$(@PACKAGE@ELIBSDIR) $(@PACKAGE@INC) $(DEPINC) $<" > $@ -$(MODDIRO)/%.d: $(MODDIRS)/%.cxx +$(@PACKAGE@CXXO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.cxx ifndef ALIQUIET @echo "***** Making dependences for $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) @share/alibtool depend "$(@PACKAGE@DEFINE) $(@PACKAGE@ELIBSDIR) $(@PACKAGE@INC) $(DEPINC) $<" > $@ -$(MODDIRO)/%.d: $(MODDIRS)/%.f + +$(@PACKAGE@SMALLFO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.f ifndef ALIQUIET @echo "***** Making dependences for $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) @share/alibtool dependF "$(@PACKAGE@ELIBSDIR) $(@PACKAGE@INC) $(DEPINC) $<" > $@ -$(MODDIRO)/%.d: $(MODDIRS)/%.F + +$(@PACKAGE@CAPITFO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.F ifndef ALIQUIET @echo "***** Making dependences for $< *****"; endif @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) $(MUTE)share/alibtool dependF "$(@PACKAGE@ELIBSDIR) $(@PACKAGE@INC) $(DEPINC) $<" > $@ -$(MODDIRO)/%.d: $(MODDIRS)/%.c + +$(@PACKAGE@CO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.c ifndef ALIQUIET @echo "***** Making dependences for $< *****"; endif @@ -362,13 +364,9 @@ check-@MODULE@: $(@PACKAGE@CHECKS) $(MUTE)$(CXX) -E $(@PACKAGE@DEFINE) $(@PACKAGE@INC) -I. $< > $@ $(@PACKAGE@CXXFLAGS) @cd $(dir $@) ; $(IRST_INSTALLDIR)/patch/patch4alice.prl $(notdir $@) -# IRST coding rule check -@MODULE@/check/$(SUBDIR)/%.viol : @MODULE@/check/$(SUBDIR)/%.i - $(MUTE)echo $@ ; $(CODE_CHECK) $< ./@MODULE@/$(@PACKAGE@SDIR) > $@ - # IRST coding rule check @MODULE@/check/%.viol : @MODULE@/check/%.i - $(MUTE)echo $@ ; $(CODE_CHECK) $< ./@MODULE@ > $@ + $(MUTE)echo $@ ; $(CODE_CHECK) $< $(shell echo $(dir $<) | sed -e 's:/check::') > $@ @PACKAGE@PREPROC = $(patsubst %.viol,%.i,$(@PACKAGE@CHECKS)) @@ -376,15 +374,58 @@ check-@MODULE@: $(@PACKAGE@CHECKS) .SECONDARY: $(@PACKAGE@REVENGS) $(@PACKAGE@PREPROC) -reveng-@PACKAGE@: @PACKAGE@/check/classDiagram.dot +PACKREVENG += $(@PACKAGE@PREPROC) -@PACKAGE@/check/classDiagram.dot: $(@PACKAGE@PREPROC) - @$(REV_ENG) $^ - @-mv classDiagram.dot $@ +# IRST code smell checker -revdisp-@PACKAGE@: reveng-@PACKAGE@ - @echo revdisp for @PACKAGE@ - @cd @PACKAGE@/check ; \ - $(IRST_INSTALLDIR)/webreveng/create-class-diagram-pages.sh - @sed -e "s/\@PACKAGE\@/@PACKAGE@/g" < $(ALICE_ROOT)/build/HomePage.html > @PACKAGE@/check/HomePage.html +@PACKAGE@SMELL := $(patsubst %.cxx,@MODULE@/smell/%.smell,$(SRCS)) + +smell-@MODULE@: $(@PACKAGE@SMELL) + +@MODULE@/smell/%_cxx.ml : @MODULE@/%.cxx + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + $(MUTE)src2srcml $< $@ + +@MODULE@/smell/%_h.ml : @MODULE@/%.h + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + $(MUTE)src2srcml $< $@ +@MODULE@/smell/%.smell : @MODULE@/smell/%_cxx.ml @MODULE@/smell/%_h.ml + $(MUTE)echo smelling $@ + java -classpath $(SMELL_DETECTOR_DIR):$(SMELL_DETECTOR_DIR)/xom-1.1.jar -Xmx500m SmellDetector $? > $@ + +.PRECIOUS: $(patsubst %.cxx,@MODULE@/smell/%_h.ml,$(SRCS)) $(patsubst %.cxx,@MODULE@/smell/%_cxx.ml,$(SRCS)) + +# targets to create .par archives (jgrosseo) +@PACKAGE@.par: $(patsubst %,@MODULE@/@PACKAGE@/%,$(filter-out dict.%, $(HDRS) $(SRCS) $(DHDR) $(PKGFILE) Makefile Makefile.arch lib@PACKAGE@.pkg PROOF-INF)) + @echo "Creating archive" $@ ... + @cd @MODULE@; tar cfzh ../$@ @PACKAGE@ + @rm -rf @MODULE@/@PACKAGE@ + @echo "done" + +@MODULE@/@PACKAGE@/Makefile: @MODULE@/Makefile + @echo Copying $< to $@ with transformations + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @sed 's/include \$$(ROOTSYS)\/test\/Makefile.arch/include Makefile.arch/; s/PACKAGE = .*/PACKAGE = @PACKAGE@/' < $^ > $@ + +@MODULE@/@PACKAGE@/Makefile.arch: $(ROOTSYS)/test/Makefile.arch + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a $^ $@ + +@MODULE@/@PACKAGE@/PROOF-INF: @MODULE@/PROOF-INF.@PACKAGE@ + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a $^ $@ + +@MODULE@/@PACKAGE@/%: @MODULE@/% + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a $< $@ + +test-@PACKAGE@.par: @PACKAGE@.par + @echo "INFO: The file $< is now tested, in case of an error check in par-tmp/@PACKAGE@." + @mkdir -p par-tmp + @cd par-tmp; tar xfz ../$<; cd $(subst .par,,$<); PROOF-INF/BUILD.sh + @rm -rf par-tmp/@PACKAGE@ + @echo "INFO: Testing succeeded (already cleaned up)"