X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EMCAL%2FMakefile;h=a49c28c6648c05c81ce920f0db27044b8932d870;hb=1cc7250e322738b0c97a519f427dc7762085301a;hp=6b858235c6d6171106b4afe87d54b78555f76fbe;hpb=a84677ac292f66a601ebf1d13e9d3b20511b82d9;p=u%2Fmrichter%2FAliRoot.git diff --git a/EMCAL/Makefile b/EMCAL/Makefile index 6b858235c6d..a49c28c6648 100644 --- a/EMCAL/Makefile +++ b/EMCAL/Makefile @@ -1,69 +1,124 @@ -############################### EMCAL Makefile ################################# +# $Id: Makefile 33076 2009-06-19 16:40:17Z akisiel $ -# Include machine specific definitions - -include $(ALICE_ROOT)/conf/GeneralDef -include $(ALICE_ROOT)/conf/MachineDef.$(ALICE_TARGET) +include Makefile.arch PACKAGE = EMCAL -# C++ sources - -SRCS = AliEMCAL.cxx AliEMCALGeometry.cxx AliEMCALv0.cxx \ - AliEMCALv1.cxx AliEMCALHit.cxx AliEMCALDigit.cxx \ - AliEMCALSDigitizer.cxx AliEMCALDigitizer.cxx \ - AliEMCALGetter.cxx AliEMCALTick.cxx -# AliEMCALRecPoint.cxx AliEMCALEmcRecPoint.cxx AliEMCALClusterizer.cxx - -# C++ Headers - -HDRS = $(SRCS:.cxx=.h) $(ROOTSYS)/include/TTree.h EMCALLinkDef.h - -# Library dictionary - -DICT = EMCALCint.cxx -DICTH = $(DICT:.cxx=.h) -DICTO = $(patsubst %.cxx,tgt_$(ALICE_TARGET)/%.o,$(DICT)) - -# C++ Objects - -OBJS = $(patsubst %.cxx,tgt_$(ALICE_TARGET)/%.o,$(SRCS)) $(DICTO) - -# C++ compilation flags - -CXXFLAGS = $(CXXOPTS) -I$(ROOTSYS)/include -I. -I$(ALICE_ROOT)/include/ - -ALSRCS = $(SRCS) $(SHSRCS) $(RCSRCS) $(DUSRCS) dummies.c - -ALOBJS = $(SHOBJS) $(RCOBJS) $(DUOBJS) - -##### COMMANDS ##### - -SLIBRARY = $(LIBDIR)/libEMCAL.$(SL) - -default: $(SLIBRARY) - -$(LIBDIR)/libEMCAL.$(SL): $(OBJS) $(FOBJS) - -$(DICT): $(HDRS) - -depend: $(SRCS) - -TOCLEAN = $(OBJS) *Cint.cxx *Cint.h - -CHECKS = $(patsubst %.cxx,check/%.viol,$(SRCS)) - -############################### General Macros ################################ - -include $(ALICE_ROOT)/conf/GeneralMacros - -############################ Dependencies ##################################### - --include tgt_$(ALICE_TARGET)/Make-depend - - - - - - +default-target: lib$(PACKAGE).so +ALICEINC = -I. + +### define include dir for local case and par case + +### in case of Root compilation for ANALYSIS, only load EMCALUtils +### if modification of EMCAL libraries, include STEER and RAW +ifneq ($(STEERBase_INCLUDE),) + ALICEINC += -I../$(STEERBase_INCLUDE) + ALICEINC += -I../$(ESD_INCLUDE) + ALICEINC += -I../$(AOD_INCLUDE) +else + ALICEINC += -I$(ALICE_ROOT)/include + ALICEINC += -I$(ALICE_ROOT)/STEER + ALICEINC += -I$(ALICE_ROOT)/RAW + ALICEINC += -I$(ALICE_ROOT)/VZERO +endif + +### in modification of EMCAL libraries, and not modification of EMCALUtils, include EMCAL from aliroot +ifneq ($(EMCALUtils_INCLUDE),) + ALICEINC += -I../$(EMCALUtils_INCLUDE) +else + ALICEINC += -I$(ALICE_ROOT)/EMCAL +endif + +ifneq ($(EMCALbase_INCLUDE),) + ALICEINC += -I../$(EMCALbase_INCLUDE) +endif + +ifneq ($(EMCALsim_INCLUDE),) + ALICEINC += -I../$(EMCALsim_INCLUDE) +endif + +ifneq ($(EMCALrec_INCLUDE),) + ALICEINC += -I../$(EMCALrec_INCLUDE) +endif + +# only if no par file was loaded before +#ifeq ($(ALICEINC),-I.) + ifneq ($(ALICE_ROOT),) + ALICEINC += -I$(ALICE_ROOT)/include +# ALICEINC += -I$(ALICE_ROOT)/RAW +# ALICEINC += -I$(ALICE_ROOT)/EMCAL + endif +#endif + + +CXXFLAGS += $(ALICEINC) -g +F77FLAGS += $(ALICEINC) -g -fPIC + + +SRCS = $(wildcard *.cxx */*.cxx) +HDRS = $(SRCS:.cxx=.h) +DHDR = $(PACKAGE)LinkDef.h + +DHDR_EMCAL := $(DHDR) +HDRS_EMCAL := $(HDRS) +SRCS_EMCAL := $(SRCS) G__$(PACKAGE).cxx +FSCRS_EMCAL := $(FSRCS) +OBJS_EMCAL := $(SRCS_EMCAL:.cxx=.o) $(FSRCS:.F=.o) + +PARFILE = $(PACKAGE).par + +lib$(PACKAGE).so: $(OBJS_EMCAL) + @echo "Linking" $@ ... + @/bin/rm -f $@ + $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS) + @chmod a+x $@ + @echo "done" + +%.o: %.cxx %.h + $(CXX) $(CXXFLAGS) -c $< -o $@ + +%.o: %.F + $(F77) $(F77FLAGS) -c $< -o $@ + +G__$(PACKAGE).cxx G__$(PACKAGE).h: $(HDRS_EMCAL) $(DHDR_EMCAL) + @echo "Generating dictionary ..." + rootcint -f $@ -c $(CINTFLAGS) $(ALICEINC) $^ + +clean: + @rm -f $(OBJS_EMCAL) *.so G__$(PACKAGE).* $(PARFILE) + +### CREATE PAR FILE + +$(PARFILE): $(patsubst %,$(PACKAGE)/%,$(filter-out G__%, $(HDRS_EMCAL) $(SRCS_EMCAL) $(DHDR_EMCAL) Makefile Makefile.arch PROOF-INF)) + @echo "Creating archive" $@ ... + @tar cfzh $@ $(PACKAGE) + @rm -rf $(PACKAGE) + @echo "done" + +$(PACKAGE)/Makefile: Makefile #.$(PACKAGE) + @echo Copying $< to $@ with transformations + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @sed 's/include \$$(ROOTSYS)\/test\/Makefile.arch/include Makefile.arch/' < $^ > $@ + +$(PACKAGE)/Makefile.arch: $(ROOTSYS)/test/Makefile.arch + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a $^ $@ + +$(PACKAGE)/PROOF-INF: PROOF-INF.$(PACKAGE) + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a -r $^ $@ + +$(PACKAGE)/%: % + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -a $< $@ + +test-%.par: %.par + @echo "INFO: The file $< is now tested, in case of an error check in par-tmp." + @mkdir -p par-tmp + @cd par-tmp; tar xfz ../$<; cd $(subst .par,,$<); PROOF-INF/BUILD.sh + @rm -rf par-tmp + @echo "INFO: Testing succeeded (already cleaned up)"