]> git.uio.no Git - u/mrichter/AliRoot.git/blame - build/MakefileDA
Improved version
[u/mrichter/AliRoot.git] / build / MakefileDA
CommitLineData
17cb72ed 1#-*- Mode: Makefile -*-
2
4179078a 3ifdef DAMODULE
4
17cb72ed 5CXXFLAGS+=-I${ALICE_ROOT}/RAW
6
7ifneq ($(EXTRADAMODULE),)
8CXXFLAGS+=-I${ALICE_ROOT}/$(EXTRADAMODULE)
9endif
10
11DASRC=${DAMODULE}/${DAMODULE}da.cxx
12DADEP=${DAMODULE}/${DAMODULE}da.d
13DAOBJ=${DAMODULE}/tgt_${ALICE_TARGET}/${DAMODULE}da.o
14DALIB=${ALICE_ROOT}/lib/tgt_${ALICE_TARGET}/lib${DAMODULE}DA.a
15DAEXE=${ALICE_ROOT}/bin/tgt_${ALICE_TARGET}/${DAMODULE}da.exe
16
e06bd7b4 17DAMAKEFILE=${DAMODULE}/${DAMODULE}da.make
18
17cb72ed 19DAQDADIR=${ALICE}/daqDAlib
20DAQDALIB=$(DAQDADIR)/libdaqDA.a
21
22ROOTLIBDIR=$(shell root-config --libdir)
23
4179078a 24SYSLIBS=-ldl
e06bd7b4 25
17cb72ed 26MONITORLIBS=$(shell date-config --monitorlibs=noshift)
27
28ALIROOTALIBS=$(RAWDatabaseALIB) $(RAWDatarecALIB) $(RAWDatasimALIB) $(STEERALIB) $(CDBALIB) $(ESDALIB)
29
30ALIROOTALIBS+=$($(DAMODULE)baseALIB) $($(DAMODULE)recALIB) $($(DAMODULE)simALIB)
31
32ifneq ($(EXTRADAMODULE),)
33
34ALIROOTALIBS+=$($(EXTRADAMODULE)baseALIB) $($(EXTRADAMODULE)recALIB) $($(EXTRADAMODULE)simALIB)
35
36endif
37
38static-DA: $(DAEXE)
39
40$(DAEXE): $(LIBPATH) $(DAOBJ) $(DALIB) $(DAQDALIB)
41
42 $(LD) $(LDFLAGS) -o $@ $(DAOBJ) $(DALIB) \
4179078a 43 $(SYSLIBS) \
44 $(ROOTLIBDIR)/libRoot.a \
45 $(ROOTLIBDIR)/libfreetype.a $(ROOTLIBDIR)/libpcre.a \
46 $(MONITORLIBS) $(DAQDALIB)
17cb72ed 47
48$(DAOBJ): $(DASRC) $(DAQDADIR) $(DADEP)
49 $(CXX) -c $(CXXFLAGS) -I$(DAQDADIR) $< -o $@
4179078a 50
17cb72ed 51$(DADEP): $(DASRC) $(DAQDADIR)
52 $(CPP) -MM $(CXXFLAGS) -I$(DAQDADIR) $< > $@
53
54DAINCLUDES=$(sort $(filter-out %.o:,$(filter-out %.cxx,$(filter-out \,$(shell cat $(DADEP))))))
55
56-include $(DADEP)
57
58$(DALIB): $(ALIROOTALIBS)
59 @rm -rf $@
60 @rm -rf junk
61 mkdir junk && cd junk && $(addprefix $(AR) x ../,$(addsuffix &&,$^)) $(AR) r $@ *.o && cd .. && rm -rf junk
62
63clean-DA:
64 @rm -f $(DAEXE)
65 @rm -f $(DAOBJ)
66 @rm -f $(DADEP)
e06bd7b4 67 @rm -f $(DAMAKEFILE)
17cb72ed 68 @rm -f $(DALIB)
69 @rm -f $(ALIROOTALIBS)
17cb72ed 70
e06bd7b4 71$(DAMAKEFILE):
72 @echo "CXXFLAGS+=""$$""(shell date-config --cflags)" > $@
73 @echo "CXXFLAGS+=-Iinclude" >> $@
74 @echo "DAQDADIR=daqDAlib" >> $@
75 @echo "DAQDALIB=""$$""(DAQDADIR)/libdaqDA.a" >> $@
76 @echo "MONITORLIBS=""$$""(shell date-config --monitorlibs=noshift)" >> $@
77 @echo "${DAMODULE}da.exe: ${DAMODULE}da.o" >> $@
78 @echo " ""$$""(CXX) ""$$""(LDFLAGS) -o ""$$""@ ""$$""< \\" >> $@
79 @echo " lib/lib${DAMODULE}DA.a \\" >> $@
80 @echo " $(SYSLIBS) \\" >> $@
81 @echo " lib/libRoot.a \\" >> $@
82 @echo " lib/libfreetype.a lib/libpcre.a \\" >> $@
83 @echo " ""$$""(MONITORLIBS) ""$$""(DAQDALIB)" >> $@
84 @echo "${DAMODULE}da.o: ${DAMODULE}da.cxx" >> $@
85 @echo " ""$$""(CXX) -c ""$$""(CXXFLAGS) -I""$$""(DAQDADIR) ""$$""< -o ""$$""@" >> $@
86 @echo "clean:" >> $@
87 @echo " @rm -f ${DAMODULE}da.exe ${DAMODULE}da.o" >> $@
88
89tar-DA: $(DASRC) $(DALIB) $(DAQDADIR) $(DADEP) $(DAMAKEFILE)
17cb72ed 90 @rm -rf $(DAMODULE)da.tar
91 @rm -rf junk
e06bd7b4 92 @mkdir junk && mkdir junk/lib && mkdir junk/include && \
93 cp -a $(DASRC) $(DAQDADIR) junk && \
94 cp -a $(DALIB) $(ROOTLIBDIR)/libRoot.a $(ROOTLIBDIR)/libfreetype.a $(ROOTLIBDIR)/libpcre.a junk/lib && \
17cb72ed 95 $(foreach daincfile,$(DAINCLUDES), cp -a $(daincfile) junk/include &&) \
e06bd7b4 96 cp -a $(DAMAKEFILE) junk/Makefile && \
17cb72ed 97 cd junk && \
e06bd7b4 98 tar cf ../$(DAMODULE)da.tar * && \
17cb72ed 99 cd .. && rm -rf junk
4179078a 100
101else
102
103static-DA: clean-DA
104clean-DA: tar-DA
105tar-DA:
106 @echo
107 @echo "****************************************************************************************************"
108 @echo "* In order to build a detector-algorithm package you have to set the environment variable DAMODULE *"
109 @echo "* For example: setenv DAMODULE TOF *"
110 @echo "* or export DAMODULE=TOF *"
111 @echo "* If the detector algorithm uses data from another sub-detector you can specify this by setting *"
112 @echo "* the environment variable EXTRADAMODULE *"
113 @echo "****************************************************************************************************"
114 @echo
115
116
117endif