]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/Makefile
change default max distance R to 0.1
[u/mrichter/AliRoot.git] / EMCAL / Makefile
index 19e29b88d12d3d7ab654f9d00cdde565d43d5d8e..a49c28c6648c05c81ce920f0db27044b8932d870 100644 (file)
-############################### 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 
-
-# 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)"