1 #-*- Mode: Makefile -*-
5 CXXFLAGS+=-I${ALICE_ROOT}/RAW
6 CXXFLAGS+=-I${ALICE_ROOT}/$(DAMODULE)
7 CXXFLAGS+=$(addprefix -I,$(filter-out %tgt_${ALICE_TARGET},$(filter-out %CVS,$(patsubst %/,%,$(shell ls -d ${ALICE_ROOT}/$(DAMODULE)/*/)))))
9 ifneq ($(EXTRADAMODULE),)
10 CXXFLAGS+=-I${ALICE_ROOT}/$(EXTRADAMODULE)
11 CXXFLAGS+=$(addprefix -I,$(filter-out %tgt_${ALICE_TARGET},$(filter-out %CVS,$(patsubst %/,%,$(shell ls -d ${ALICE_ROOT}/$(EXTRADAMODULE)/*/)))))
14 DASRC=${DAMODULE}/${DAMODULE}${DANAME}da.cxx
15 DADEP=${DAMODULE}/tgt_${ALICE_TARGET}/${DAMODULE}${DANAME}da.d
16 DAOBJ=${DAMODULE}/tgt_${ALICE_TARGET}/${DAMODULE}${DANAME}da.o
17 DALIB=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}/lib${DAMODULE}${DANAME}DA.a
18 DAEXE=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}/${DAMODULE}${DANAME}da.exe
20 DAMAKEFILE=${DAMODULE}/tgt_${ALICE_TARGET}/${DAMODULE}${DANAME}da.make
22 DAQDADIR=${ALICE}/daqDAlib
23 DAQDALIB=$(DAQDADIR)/libdaqDA.a
25 ROOTLIBDIR=$(shell root-config --libdir)
29 MONITORLIBS=$(shell date-config --monitorlibs=noshift)
31 ALIROOTALIBS=$(RAWDatabaseALIB) $(RAWDatarecALIB) $(RAWDatasimALIB) $(STEERALIB) $(CDBALIB) $(ESDALIB) $(AODALIB)
33 ALIROOTALIBS+=$($(DAMODULE)ALIBS)
35 ifneq ($(EXTRADAMODULE),)
37 ALIROOTALIBS+=$($(EXTRADAMODULE)ALIBS)
43 $(DAEXE): $(LIBPATH) $(DAOBJ) $(DALIB) $(DAQDALIB)
44 @echo "Making $(DAEXE) executable..."
45 $(MUTE)$(LD) $(LDFLAGS) -o $@ $(DAOBJ) $(DALIB) \
47 $(ROOTLIBDIR)/libRoot.a \
48 $(ROOTLIBDIR)/libfreetype.a $(ROOTLIBDIR)/libpcre.a \
49 $(MONITORLIBS) $(DAQDALIB)
51 $(DAOBJ): $(DASRC) $(DAQDADIR) $(DADEP)
52 @echo "Compiling $(DASRC)..."
53 $(MUTE)$(CXX) -c $(CXXFLAGS) -I$(DAQDADIR) $< -o $@
55 $(DADEP): $(DASRC) $(DAQDADIR)
56 @echo "Making $(DASRC) dependencies..."
57 $(MUTE)$(CPP) -MM $(CXXFLAGS) -I$(DAQDADIR) $< > $@
59 DAINCLUDES=$(sort $(filter-out %.o:,$(filter-out %.cxx,$(filter-out \,$(shell cat $(DADEP))))))
63 $(DALIB): $(ALIROOTALIBS)
64 @echo "Making $(DALIB)..."
67 $(MUTE)mkdir junk && cd junk && $(addprefix $(AR) x ../,$(addsuffix &&,$^)) $(AR) r $@ *.o && cd .. && rm -rf junk
70 @echo "Cleaning $(DAMODULE)$(DANAME) detector-algorithm..."
74 $(MUTE)rm -f $(DAMAKEFILE)
76 $(MUTE)rm -f $(ALIROOTALIBS)
79 @echo "Making $(DAMAKEFILE)..."
80 @echo "CXXFLAGS+=""$$""(shell date-config --cflags)" > $@
81 @echo "CXXFLAGS+=-Iinclude" >> $@
82 @echo "DAQDADIR=daqDAlib" >> $@
83 @echo "DAQDALIB=""$$""(DAQDADIR)/libdaqDA.a" >> $@
84 @echo "MONITORLIBS=""$$""(shell date-config --monitorlibs=noshift)" >> $@
85 @echo "${DAMODULE}${DANAME}da.exe: ${DAMODULE}${DANAME}da.o" >> $@
86 @echo " ""$$""(CXX) ""$$""(LDFLAGS) -o ""$$""@ ""$$""< \\" >> $@
87 @echo " lib/lib${DAMODULE}${DANAME}DA.a \\" >> $@
88 @echo " $(SYSLIBS) \\" >> $@
89 @echo " lib/libRoot.a \\" >> $@
90 @echo " lib/libfreetype.a lib/libpcre.a \\" >> $@
91 @echo " ""$$""(MONITORLIBS) ""$$""(DAQDALIB)" >> $@
92 @echo "${DAMODULE}${DANAME}da.o: ${DAMODULE}${DANAME}da.cxx" >> $@
93 @echo " ""$$""(CXX) -c ""$$""(CXXFLAGS) -I""$$""(DAQDADIR) ""$$""< -o ""$$""@" >> $@
95 @echo " @rm -f ${DAMODULE}${DANAME}da.exe ${DAMODULE}${DANAME}da.o" >> $@
97 tar-DA: $(DASRC) $(DALIB) $(DAQDADIR) $(DADEP) $(DAMAKEFILE)
98 @echo "Making $(DAMODULE)$(DANAME) detector-algorithm archive..."
99 $(MUTE)rm -rf $(DAMODULE)${DANAME}da.tar
101 $(MUTE)mkdir junk && mkdir junk/lib && mkdir junk/include && \
102 cp -a $(DASRC) $(DAQDADIR) junk && \
103 cp -a $(DALIB) $(ROOTLIBDIR)/libRoot.a $(ROOTLIBDIR)/libfreetype.a $(ROOTLIBDIR)/libpcre.a junk/lib && \
104 $(foreach daincfile,$(DAINCLUDES), cp -a $(daincfile) junk/include &&) \
105 cp -a $(DAMAKEFILE) junk/Makefile && \
107 tar cf ../$(DAMODULE)${DANAME}da.tar * && \
116 @echo "****************************************************************************************************"
117 @echo "* In order to build a detector-algorithm package you have to set the environment variable DAMODULE *"
118 @echo "* For example: setenv DAMODULE TOF *"
119 @echo "* or export DAMODULE=TOF *"
120 @echo "* If you have only one detector-algorithm package then it is enough to have DAMODULEda.cxx *"
121 @echo "* in your DAMODULE directory. In case of several detector-algorithms you have to specify also the *"
122 @echo "* name of the algorithm whcih you want to build. The makefile will use DAMODULEDANAMEda.cxx *"
123 @echo "* in your DAMODULE directory. Then in order to build your specific detector-algorithm package you *"
124 @echo "* have to set the environment variable DANAME. *"
125 @echo "* If the detector algorithm uses code from another sub-detector you can specify this by setting *"
126 @echo "* the environment variable EXTRADAMODULE *"
127 @echo "****************************************************************************************************"