]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - build/MakefileDA
Include the debug information for easier handling of a DA crash (as suggested by...
[u/mrichter/AliRoot.git] / build / MakefileDA
index c8cc000464f863c3ec3d7e292407f1bf878e359f..a5e353c258884621f7003914cf6bc9ced7a18f41 100644 (file)
@@ -39,9 +39,10 @@ endif
 
 ifneq ($(findstring $(DAMODULE),$(MODULES)),)
 
+CXXFLAGS:=$(filter-out -pedantic-errors,$(CXXFLAGS))
 CXXFLAGS+=-I${ALICE_ROOT}/RAW
 CXXFLAGS+=-I${ALICE_ROOT}/$(DAMODULE)
-CXXFLAGS+=$(addprefix -I,$(filter-out %tgt_${ALICE_TARGET},$(filter-out %CVS,$(patsubst %/,%,$(shell ls -d ${ALICE_ROOT}/$(DAMODULE)/*/)))))
+CXXFLAGS+=$(addprefix -I,$(filter-out %tgt_${ALICE_TARGET},$(patsubst %/,%,$(shell ls -d ${ALICE_ROOT}/$(DAMODULE)/*/))))
 
 DATARGETDIR=${DAMODULE}/tgt_${ALICE_TARGET}
 DASRC=${DAMODULE}/${DAMODULE}$(SUBDAMODULE)${DANAME}da.cxx
@@ -50,14 +51,12 @@ DADEP=${DATARGETDIR}/${DAMODULE}$(SUBDAMODULE)${DANAME}da.d
 DALIB=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}/lib${DAMODULE}$(SUBDAMODULE)${DANAME}DA.a
 DAEXE=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}/${DAMODULE}$(SUBDAMODULE)${DANAME}da.exe
 
-DAVERSION=$(firstword $(shell cvs status $(DASRC) | grep "Working revision:" | cut -d: -f2 ))
+DAVERSION=$(firstword $(shell svn info $(DASRC) | grep "Last Changed Rev:" | cut -d: -f2 ))
 
 DAROOTRELEASE=$(subst /,.,$(shell root-config --version))
 
-DAALIROOTRELEASE=$(subst -,.,$(firstword $(shell cvs status $(DASRC) | grep "Sticky Tag:" | cut -d: -f2 )))
-ifeq ($(DAALIROOTRELEASE),(none))
-DAALIROOTRELEASE:="HEAD_"$(subst -,.,$(shell date --iso-8601))
-endif
+#DAALIROOTRELEASE=$(notdir $(subst /$(DASRC),,$(shell svn info $(DASRC) | grep "URL:" | cut -d: -f3 )))
+DAALIROOTRELEASE+=$(subst -,.,$(notdir $(subst /$(DASRC),,$(shell svn info $(DASRC) | grep "URL:" | cut -d: -f3 ))))"."$(firstword $(shell svn info $(DASRC) | grep "Revision:" | cut -d: -f2 ))
 
 DAARCNAME=$(patsubst %-,%,daqDA-${ONLINEDETECTORNAME}-${DANAME})
 DAARC=$(DAARCNAME)-$(DAVERSION)
@@ -72,9 +71,20 @@ DAQDADIR=${DAQDALIB_PATH}
 endif
 DAQDALIB=$(DAQDADIR)/libdaqDA.a
 
+ifneq ($(shell $(AMORE)/amore-config 2>&1 |grep -i usage),)
+AMOREFLAGS = -DALI_AMORE $(shell $(AMORE)/amore-config --cflags --includes)
+CXXFLAGS  += $(AMOREFLAGS)
+CFLAGS    += $(AMOREFLAGS)
+CINTFLAGS += $(AMOREFLAGS)
+DEPINC    += $(AMOREFLAGS)
+AMOREDALIBS+=-static $(shell $(AMORE)/amore-config --ldflags-da-static) $(shell date-config --rcproxylibs)
+else
+AMOREDALIBS=
+endif
+
 ROOTLIBDIR=$(shell root-config --libdir)
 
-SYSLIBS=-ldl
+SYSLIBS=-ldl -lpthread $(shell xml2-config --libs)
 
 MONITORLIBS=$(shell date-config --monitorlibs=noshift)
 
@@ -92,19 +102,27 @@ CXXFLAGS+=$(addprefix -I,$(filter-out %tgt_${ALICE_TARGET},$(filter-out %CVS,$(p
 ALIROOTALIBS+=$($(EXTRADAMODULE)ALIBS)
 endif
 
-DAOUTPUTFILES=$(sort $(shell grep TFile $(DASRC) | grep '(' | grep ')' | grep -i recreate | cut -d'(' -f2 | cut -d',' -f1 | cut -d')' -f1 ))
-DAINPUTFILES=$(sort $(shell grep TFile $(DASRC) | grep '(' | grep ')' | grep -vi recreate | cut -d'(' -f2 | cut -d',' -f1 | cut -d')' -f1 ))
+DACONTACT=$(shell grep -i "Contact:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DALINKPAGE=$(shell grep -i "Link:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DAREFRUN=$(shell grep -i "Reference Run:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DARUNTYPE=$(shell grep -i "Run Type:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DATYPE=$(shell grep -i "DA Type:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DANUMBEROFEVENTS=$(shell grep -i "Number of events needed:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DAINPUTFILES=$(shell grep -i "Input Files:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DAOUTPUTFILES=$(shell grep -i "Output Files:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+DATRIGGERTYPE=$(shell grep -i "Trigger types used:" $(DASRC) | sed -e "s/[^:]*:\s*//" | head -n 1)
+
 $(DATARGETNAME): $(DAEXE)
 
-$(DAEXE): $(DAOBJ) $(LIBPATH) $(DALIB) $(DAQDALIB) $(EXTRAROOTLIB)
+$(DAEXE): $(DAOBJ) $(BINPATH) $(LIBPATH) $(DALIB) $(DAQDALIB) $(EXTRAROOTLIB)
        @echo "***** Making executable $(DAEXE) *****"
        $(MUTE)$(LD) $(LDFLAGS) -o $@ $< \
        $(DALIB) \
        $(EXTRAROOTLIB) \
        $(ROOTLIBDIR)/libRoot.a \
        $(ROOTLIBDIR)/libfreetype.a $(ROOTLIBDIR)/libpcre.a \
-       $(DAQDALIB) $(MONITORLIBS) \
-       $(SYSLIBS)
+       $(SYSLIBS) \
+       $(DAQDALIB) $(MONITORLIBS) $(AMOREDALIBS)
 
 $(DAOBJ): $(DASRC) $(DAQDADIR) $(DADEP) $(DATARGETDIR)
        @echo "***** Compiling $(DASRC) *****"
@@ -119,14 +137,14 @@ $(DADEP): $(DASRC) $(DAQDADIR) $(DATARGETDIR)
 $(DATARGETDIR):
        $(MUTE)if [ ! -d '$@' ]; then echo "***** Making directory $@ *****"; mkdir -p $@; fi
 
-$(DALIB): $(ALIROOTALIBS)
+$(DALIB): $(ARVERSIONFILE) $(ALIROOTALIBS)
        @echo "***** Linking static library $(DALIB) *****"
        $(MUTE)rm -rf $@
        $(MUTE)rm -rf junk
-       $(MUTE)mkdir junk && cd junk && $(addprefix $(AR) x ../,$(addsuffix &&,$^)) $(AR) r $@ *.o && cd .. && rm -rf junk
+       $(MUTE)mkdir junk && cd junk && $(addprefix $(AR) x ../,$(addsuffix &&,$(filter-out $(ARVERSIONFILE),$^))) $(AR) r $@ *.o && cd .. && rm -rf junk
 
 $(EXTRAROOTLIB): $(LIBPATH) 
-       $(MUTE)$(AR) r $@ `ls ${ROOTSYS}/vmc/src/*.o ${ROOTSYS}/treeplayer/src/*.o`
+       $(MUTE)$(AR) r $@ `ls ${ROOTSYS}/montecarlo/vmc/src/*.o ${ROOTSYS}/tree/treeplayer/src/*.o ${ROOTSYS}/io/xmlparser/src/*.o ${ROOTSYS}/math/minuit2/src/*.o`
 
 $(DATARGETNAME)-clean:
        @echo "***** Cleaning $(DAMODULE)$(SUBDAMODULE)$(DANAME) detector-algorithm *****"
@@ -165,6 +183,7 @@ $(DAMAKEFILE): $(DATARGETDIR)
        @echo "endif" >> $@
        @echo "" >> $@
        @echo "DAQDALIB=""$$""(DAQDADIR)/libdaqDA.a" >> $@
+       @echo "AMOREDALIBS=-static ""$$""(shell ""$$""(AMORE)/amore-config --ldflags-da-static) ""$$""(shell date-config --rcproxylibs)" >> $@
        @echo "MONITORLIBS=""$$""(shell date-config --monitorlibs=noshift)" >> $@
        @echo "" >> $@
        @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe: ${DAMODULE}${SUBDAMODULE}${DANAME}da.o" >> $@
@@ -173,8 +192,8 @@ $(DAMAKEFILE): $(DATARGETDIR)
        @echo "         $(EXTRAROOTLIB) \\" >> $@
        @echo "         ""$$""(ROOTSYS)/lib/libRoot.a \\" >> $@
        @echo "         ""$$""(ROOTSYS)/lib/libfreetype.a ""$$""(ROOTSYS)/lib/libpcre.a \\" >> $@
-       @echo "         ""$$""(DAQDALIB) ""$$""(MONITORLIBS) \\" >> $@
-       @echo "         $(SYSLIBS)" >> $@
+       @echo "         $(SYSLIBS) \\" >> $@
+       @echo "         ""$$""(DAQDALIB) ""$$""(MONITORLIBS) ""$$""(AMOREDALIBS)" >> $@
        @echo "" >> $@
        @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.o: ${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx" >> $@
        @echo "         ""$$""(CXX) -c ""$$""(CXXFLAGS) -I""$$""(DAQDADIR) ""$$""< -o ""$$""@" >> $@
@@ -232,13 +251,23 @@ $(DASPECFILE): $(DATARGETDIR)
        @echo "It uses data from $(DAMODULE) and $(EXTRADAMODULE) detectors at run time." >> $@
        @echo "Build requires: daqDAlib, date, AliRoot $(DAALIROOTRELEASE), ROOT $(DAROOTRELEASE)." >> $@
        @echo "Runtime requires: date." >> $@
-       @echo "Files produced: $(DAOUTPUTFILES)" >> $@
-       @echo "Files used: $(DAINPUTFILES)" >> $@
+       @echo "Contact: $(DACONTACT)" >> $@
+       @echo "Link: $(DALINKPAGE)" >> $@
+       @echo "Reference Run: $(DAREFRUN)" >> $@
+       @echo "Run type: $(DARUNTYPE)" >> $@
+       @echo "DA type: $(DATYPE)" >> $@
+       @echo "Number of events needed: $(DANUMBEROFEVENTS)" >> $@
+       @echo "Input files: $(DAINPUTFILES)" >> $@
+       @echo "Output files: $(DAOUTPUTFILES)" >> $@
+       @echo "Trigger types used: $(DATRIGGERTYPE)" >> $@
        @echo "" >> $@
        @echo "#################################################################" >> $@
        @echo "# Do not modify following scripts" >> $@
        @echo "#################################################################" >> $@
        @echo "" >> $@
+       @echo "%define debug_package %{nil}" >> $@
+       @echo "%define __os_install_post %{nil}" >> $@
+       @echo "" >> $@
        @echo "# here is defined the installation root directory" >> $@
        @echo "%define pkgname %{name}-%{version}" >> $@
        @echo "%define destdir %{prefix}" >> $@
@@ -264,10 +293,10 @@ $(DASPECFILE): $(DATARGETDIR)
        @echo "" >> $@
        @echo "# clean RPM build files" >> $@
        @echo "%clean" >> $@
-       @echo "# remove source files" >> $@
-       @echo "rm -rf ""$$""RPM_BUILD_DIR/%{pkgname}" >> $@
        @echo "# remove installed files" >> $@
        @echo "rm -rf ""$$""RPM_BUILD_ROOT" >> $@
+       @echo "# remove source files" >> $@
+       @echo "rm -rf ""$$""RPM_BUILD_DIR/%{pkgname}" >> $@
        @echo "" >> $@
        @echo "# pre-install script" >> $@
        @echo "%pre" >> $@
@@ -285,7 +314,7 @@ $(DASPECFILE): $(DATARGETDIR)
        @echo "# launched after rpm removed" >> $@
        @echo "%postun" >> $@
 
-$(DATARGETNAME)-rpm: $(DATAR) $(DASPECFILE) $(DALIB) $(DADEP) $(EXTRAROOTLIB)
+$(DATARGETNAME)-rpm: $(DATAR) $(DASPECFILE) $(LIBPATH) $(DALIB) $(DADEP) $(EXTRAROOTLIB)
        @echo "***** Making RPMS for $(DAMODULE)$(SUBDAMODULE)$(DANAME) detector-algorithm *****"
        $(MUTE)rm -rf junk
        $(MUTE)mkdir -p junk/SOURCES junk/SPECS junk/BUILD junk/RPMS junk/SRPMS
@@ -304,7 +333,7 @@ $(DATARGETNAME)-rpm:
        @echo "*******************************************************************************************************"
        @echo "* In order to build a detector-algorithm package you have run AliRoot make with the following syntax: *"
        @echo "* For example: make daqDA-TPC (compiles and link all the TPC DAs and produces the corresponding DA    *"
-       @echo "*                             executables)                                                            *"
+       @echo "*                             executables)                                                            *"
        @echo "*              make daqDA-MCH (MCH is the online code for MUON TRK detector.                          *"
        @echo "*                              this target will compile and link MUON/MUONTRKda.cxx and will          *"
        @echo "*                              produce MUONTRKda.exe)                                                 *"
@@ -321,6 +350,8 @@ endif
 
 else
 
+ifneq ($(findstring $(DAMODULE),$(MODULES)),)
+
 DAMODULEALLTARGETS:=$(notdir $(wildcard $(DAMODULE)/$(DAMODULE)$(SUBDAMODULE)*da.cxx))
 
 daqDA-$(ONLINEDETECTORNAME): $(DAMODULEALLTARGETS)
@@ -341,4 +372,18 @@ daqDA-$(ONLINEDETECTORNAME)-clean: $(addsuffix -clean,$(DAMODULEALLTARGETS))
 %da.cxx-clean:
        $(MUTE)make $(subst --,-NONAME-,$(addsuffix -clean,$(addprefix daqDA-,$(subst $(DAMODULE)$(SUBDAMODULE),$(ONLINEDETECTORNAME)-,$(subst da.cxx-clean,,$@)))))
 
+else
+
+daqDA-$(ONLINEDETECTORNAME): daqDA-$(ONLINEDETECTORNAME)-rpm
+daqDA-$(ONLINEDETECTORNAME)-rpm: daqDA-$(ONLINEDETECTORNAME)-clean
+daqDA-$(ONLINEDETECTORNAME)-clean:
+       @echo
+       @echo "========================================================================================================================="
+       @echo " $(ONLINEDETECTORNAME) is not a valid online detector code.                                                              "
+       @echo " The list of the valid codes is SPD SDD SSD TPC TRD TOF HMP PHS CPV PMD MCH MTR FMD T00 V00 ZDC ACO TRI EMC HLT TST GRP  "
+       @echo "========================================================================================================================="
+       @echo
+
+endif
+
 endif