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