X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=build%2Fmodule.tpl;h=0d410b22256dc109070124a5e2f763e388a7a87b;hb=2603dcc4558dff38d0b0566dd81ee0aecb9b46d6;hp=b55ad1e856187e0c39f2b9b1d67f87fd1c890dd9;hpb=b8cb480826bbc5867444183c61a455490546609f;p=u%2Fmrichter%2FAliRoot.git diff --git a/build/module.tpl b/build/module.tpl index b55ad1e8561..0d410b22256 100644 --- a/build/module.tpl +++ b/build/module.tpl @@ -1,3 +1,4 @@ +#-*- Mode: Makefile -*- ifndef PACKFFLAGS @@ -18,14 +19,24 @@ else @PACKAGE@CXXFLAGS:=$(PACKCXXFLAGS) endif -ifndef PACKDCXXFLAGS -ifeq ($(PLATFORM),linuxicc) -@PACKAGE@DCXXFLAGS:=$(filter-out -O%,$(CXXFLAGS)) -O0 +ifndef PACKSOFLAGS +@PACKAGE@SOFLAGS:=$(SOFLAGS) else -@PACKAGE@DCXXFLAGS:=$(filter-out -O%,$(CXXFLAGS)) +@PACKAGE@SOFLAGS:=$(PACKSOFLAGS) endif + +ifdef DYEXT +ifndef PACKDYFLAGS +@PACKAGE@DYFLAGS:=$(DYFLAGS) else -@PACKAGE@DCXXFLAGS:=$(PACKCXXFLAGS) +@PACKAGE@DYFLAGS:=$(PACKDYFLAGS) +endif +endif + +ifndef PACKDCXXFLAGS +@PACKAGE@DCXXFLAGS:=$(CXXFLAGSNO) +else +@PACKAGE@DCXXFLAGS:=$(PACKDCXXFLAGS) endif @@ -42,11 +53,12 @@ endif #Extra include,libs, defines etc. -@PACKAGE@DEFINE:=$(EDEFINE) +@PACKAGE@DEFINE:=$(EDEFINE) -D__MODULE__=\"@MODULE@\" @PACKAGE@INC:=$(patsubst %,-I%,$(EINCLUDE)) -I@MODULE@ @PACKAGE@ELIBS:=$(patsubst %,-l%,$(ELIBS)) +@PACKAGE@ELIBSDEP:=$(patsubst %,lib/tgt_$(ALICE_TARGET)/lib%.$(SOEXT),$(ELIBS)) @PACKAGE@ELIBSDIR:=$(patsubst %,-L%,$(ELIBSDIR)) #c sources and headers @@ -61,6 +73,9 @@ 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 @@ -102,11 +117,19 @@ endif #The actual library file @PACKAGE@LIB:=$(LIBPATH)/lib@PACKAGE@.$(SOEXT) + +ifneq ($(DYEXT),) +@PACKAGE@DLIB:=$(LIBPATH)/lib@PACKAGE@.$(DYEXT) +endif + @PACKAGE@ALIB:=$(LIBPATH)/lib@PACKAGE@.$(AEXT) #Add this to the modules libs @MODULE@LIBS += $(@PACKAGE@LIB) @MODULE@ALIBS += $(@PACKAGE@ALIB) +ifneq ($(DYEXT),) +@MODULE@DLIBS += $(@PACKAGE@DLIB) +endif #The actual binary file @@ -120,12 +143,21 @@ endif ifeq ($(TYPE),lib) ALLLIBS += $(@PACKAGE@LIB) ALLALIBS += $(@PACKAGE@ALIB) +ifneq ($(DYEXT),) +ALLLIBS += $(@PACKAGE@DLIB) +endif BINLIBS += -l@PACKAGE@ else ALLEXECS += $(@PACKAGE@BIN) endif -# include all dependency files +ifeq ($(DYEXT),) +@PACKAGE@LIB := $(@PACKAGE@LIB) +else +@PACKAGE@LIB := $(@PACKAGE@LIB) +endif + +# include all dependence files INCLUDEFILES +=$(@PACKAGE@DEP) EXPORTFILES += $(@PACKAGE@EXPORTDEST) @@ -141,32 +173,52 @@ $(@PACKAGE@EXPORTDEST): $(EXPORTDIR)/%.h: @MODULE@/%.h ifndef ALIQUIET @echo "***** Copying file $^ to $@ *****" endif - @[ -d $(dir $@) ] || mkdir $(dir $@) + @[ -d $(dir $@) ] || mkdir -p $(dir $@) @cp $^ $@ endif +#------------------------------------------------------------------------ + $(@PACKAGE@LIB):$(@PACKAGE@O) $(@PACKAGE@DO) @MODULE@/module.mk ifndef ALIQUIET @echo "***** Linking library $@ *****" endif $(MUTE)TMPDIR=/tmp/@MODULE@$$$$.`date +%M%S` ; \ - export TMPDIR; mkdir $$TMPDIR ; cd $$TMPDIR ; \ + export TMPDIR; mkdir -p $$TMPDIR ; cd $$TMPDIR ; \ find $(CURDIR)/@MODULE@/tgt_$(ALICE_TARGET) -name '*.o' -exec ln -s {} . \; ;\ - rm -f $(CURDIR)/$@ ;\ - $(SHLD) $(SOFLAGS) -o $(CURDIR)/$@ $(notdir $(@PACKAGE@O) $(@PACKAGE@DO)) $(@PACKAGE@ELIBSDIR) $(@PACKAGE@ELIBS) $(SHLIB);\ - cd $(CURDIR) ; rm -rf $$TMPDIR - $(MUTE)chmod a-w $@ + \rm -f $(CURDIR)/$@ ;\ + TMPLIB=$(notdir $(@PACKAGE@LIB)); export TMPLIB;\ + $(SHLD) $(@PACKAGE@SOFLAGS) -o $(CURDIR)/$@ $(notdir $(@PACKAGE@O) $(@PACKAGE@DO)) $(@PACKAGE@ELIBSDIR) $(@PACKAGE@ELIBS) $(SHLIB);\ + chmod a-w $(CURDIR)/$@ ;\ + cd $(ALICE_ROOT) ; \rm -rf $$TMPDIR + +ifneq ($(DYEXT),) +$(@PACKAGE@DLIB):$(@PACKAGE@O) $(@PACKAGE@DO) @MODULE@/module.mk +ifndef ALIQUIET + @echo "***** Linking library $@ *****" +endif + $(MUTE)TMPDIR=/tmp/@MODULE@$$$$.`date +%M%S` ; \ + export TMPDIR; mkdir -p $$TMPDIR ; cd $$TMPDIR ; \ + find $(CURDIR)/@MODULE@/tgt_$(ALICE_TARGET) -name '*.o' -exec ln -s {} . \; ;\ + \rm -f $(CURDIR)/$@ ;\ + $(DYLD) $(@PACKAGE@DYFLAGS) -o $(CURDIR)/$@ $(notdir $(@PACKAGE@O) $(@PACKAGE@DO)) $(@PACKAGE@ELIBSDIR) $(@PACKAGE@ELIBS) $(DYLIB);\ + chmod a-w $(CURDIR)/$@ ;\ + cd $(ALICE_ROOT) ; \rm -rf $$TMPDIR +endif + +#------------------------------------------------------------------------ $(@PACKAGE@ALIB):$(@PACKAGE@O) $(@PACKAGE@DO) @MODULE@/module.mk ifndef ALIQUIET @echo "***** Linking static library $@ *****" endif $(MUTE)TMPDIR=/tmp/@MODULE@$$$$.`date +%M%S` ; \ - export TMPDIR; mkdir $$TMPDIR ; cd $$TMPDIR ; \ + export TMPDIR; mkdir -p $$TMPDIR ; cd $$TMPDIR ; \ find $(CURDIR)/@MODULE@/tgt_$(ALICE_TARGET) -name '*.o' -exec ln -s {} . \; ;\ - rm -f $(CURDIR)/$@ ;\ + \rm -f $(CURDIR)/$@ ;\ + TMPLIB=$(notdir $(@PACKAGE@LIB)); export TMPLIB;\ $(ALLD) $(ALFLAGS) $(CURDIR)/$@ $(notdir $(@PACKAGE@O) $(@PACKAGE@DO)) $(@PACKAGE@ELIBSDIR) $(@PACKAGE@ELIBS) $(ALLIB);\ - cd $(CURDIR) ; rm -rf $$TMPDIR + cd $(CURDIR) ; \rm -rf $$TMPDIR $(MUTE)chmod a-w $@ @@ -185,18 +237,22 @@ ifndef ALIQUIET @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) $(@PACKAGE@DO): $(@PACKAGE@DS) ifndef ALIQUIET @echo "***** Compiling $< *****"; endif - $(MUTE)$(CXX) -c $(@PACKAGE@INC) -I$(ALICE_ROOT) $< -o $@ $(@PACKAGE@DCXXFLAGS) + $(MUTE)$(CXX) $(@PACKAGE@DEFINE) -c $(@PACKAGE@INC) -I$(ALICE_ROOT) $< -o $@ $(@PACKAGE@DCXXFLAGS) #Different targets for the module ifeq ($(TYPE),lib) -all-@PACKAGE@: $(@PACKAGE@LIB $(@PACKAGE@ALIB) +all-@PACKAGE@: $(@PACKAGE@LIB) +ifneq ($(DYEXT),) +all-@PACKAGE@: $(@PACKAGE@DLIB) +endif else all-@PACKAGE@: $(@PACKAGE@BIN) endif @@ -204,13 +260,6 @@ endif depend-@PACKAGE@: $(@PACKAGE@DEP) # determination of object files -$(MODDIRO)/%.o: $(MODDIRO)/%.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)/%.cxx $(MODDIRO)/%.d ifndef ALIQUIET @echo "***** Compiling $< *****"; @@ -241,50 +290,59 @@ endif $(@PACKAGE@DDEP): $(@PACKAGE@DS) ifndef ALIQUIET - @echo "***** Making dependencies for $< *****"; + @echo "***** Making dependences for $< *****"; 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 ifndef ALIQUIET - @echo "***** Making dependencies for $< *****"; + @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 ifndef ALIQUIET - @echo "***** Making dependencies for $< *****"; + @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 ifndef ALIQUIET - @echo "***** Making dependencies for $< *****"; + @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 ifndef ALIQUIET - @echo "***** Making dependencies for $< *****"; + @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) $<" > $@ -@PACKAGE@CHECKS := $(patsubst %.cxx,@PACKAGE@/check/%.viol,$(SRCS)) +.PRECIOUS: $(patsubst %.cxx,$(MODDIRO)/%.d,$(SRCS)) +.PRECIOUS: $(patsubst %.c,$(MODDIRO)/%.d,$(CSRCS)) +.PRECIOUS: $(patsubst %.F,$(MODDIRO)/%.d,$(patsubst %.f,$(MODDIRO)/%.d,$(FSRCS))) + +@PACKAGE@CHECKS := $(patsubst %.cxx,@MODULE@/check/%.viol,$(SRCS)) -check-@PACKAGE@: $(@PACKAGE@CHECKS) +check-@MODULE@: $(@PACKAGE@CHECKS) # IRST coding rule check -@PACKAGE@/check/%.i : @PACKAGE@/%.cxx +@MODULE@/check/%.i : @MODULE@/%.cxx @MODULE@/%.h @[ -d $(dir $@) ] || mkdir -p $(dir $@) $(MUTE)$(CXX) -E $(@PACKAGE@DEFINE) $(@PACKAGE@INC) $< > $@ $(@PACKAGE@CXXFLAGS) @cd $(dir $@) ; $(IRST_INSTALLDIR)/patch/patch4alice.prl $(notdir $@) # IRST coding rule check -@PACKAGE@/check/%.viol : @PACKAGE@/check/%.i - @cd @PACKAGE@ ; [ -r @PACKAGE@ ] || ln -s ../@PACKAGE@ @PACKAGE@ - -@echo $@ ; $(CODE_CHECK) $< ./@PACKAGE@ > $@ +@MODULE@/check/$(SUBDIR)/%.viol : @MODULE@/check/$(SUBDIR)/%.i + @cd @MODULE@ ; [ -r @MODULE@ ] || ln -s ../@MODULE@ @MODULE@ + $(MUTE)echo $@ ; $(CODE_CHECK) $< ./@MODULE@/$(@PACKAGE@SDIR) > $@ + +# IRST coding rule check +@MODULE@/check/%.viol : @MODULE@/check/%.i + @cd @MODULE@ ; [ -r @MODULE@ ] || ln -s ../@MODULE@ @MODULE@ + $(MUTE)echo $@ ; $(CODE_CHECK) $< ./@MODULE@ > $@ @PACKAGE@PREPROC = $(patsubst %.viol,%.i,$(@PACKAGE@CHECKS))