Mechanical support for FMD
[u/mrichter/AliRoot.git] / FMD / module.mk
1 #**************************************************************************
2 #**** This file is automatically generated from the mkmodules script  *****
3 #****          DO NOT EDIT!!                                          *****
4 #**************************************************************************
5
6
7 #********** This part is for package FMD ***********
8
9 #Determine if it's a library or a executable
10 TYPE=lib
11     
12 # Package head directory, source and include directories
13 MODDIR:=FMD
14 MODDIRS:=$(MODDIR)
15 MODDIRI:=$(MODDIR)
16 MODDIRO:=$(MODDIR)/tgt_$(ALICE_TARGET)
17
18 # Reseting variables before importing pkg-file
19 SRCS:=
20 HDRS:=
21 FSRCS:=
22 DHDR:=
23 CSRCS:=
24 CHDRS:=
25 EINCLUDE:=
26 EDEFINE:=
27 ELIBS:=
28 ELIBSDIR:=
29 PACKFFLAGS:=
30 PACKCXXFLAGS:=
31 PACKCFLAGS:=
32 EXPORT:=
33 EHDRS:=
34 CINTHDRS:=
35 SRCS= AliFMD.cxx AliFMDv0.cxx AliFMDv1.cxx AliFMDv2.cxx AliFMDhit.cxx AliFMDdigit.cxx AliFMDMerger.cxx AliFMDReconstruction.cxx AliFMDReconstParticles.cxx AliFMDDigitizer.cxx AliFMDSDigitizer.cxx
36
37
38 HDRS= $(SRCS:.cxx=.h)
39
40 DHDR:=FMDLinkDef.h
41
42
43
44
45 ifndef PACKFFLAGS
46 FMDFFLAGS:=$(FFLAGS)
47 else
48 FMDFFLAGS:=$(PACKFFLAGS)
49 endif
50
51 ifndef PACKCFLAGS
52 FMDCFLAGS:=$(CFLAGS)
53 else
54 FMDCFLAGS:=$(PACKCFLAGS)
55 endif
56
57 ifndef PACKCXXFLAGS
58 FMDCXXFLAGS:=$(CXXFLAGS)
59 else
60 FMDCXXFLAGS:=$(PACKCXXFLAGS)
61 endif
62
63 ifndef PACKDCXXFLAGS
64 ifeq ($(PLATFORM),linuxicc)
65 FMDDCXXFLAGS:=$(filter-out -O%,$(CXXFLAGS)) -O0
66 else
67 FMDDCXXFLAGS:=$(filter-out -O%,$(CXXFLAGS))
68 endif
69 else
70 FMDDCXXFLAGS:=$(PACKCXXFLAGS)
71 endif
72
73
74 ifdef DHDR
75 WITHDICT=YES
76 else
77 WITHDICT=
78 endif
79
80 # Headerfiles exported to common place:
81 FMDEXPORT:=$(EXPORT)
82 FMDEXPORTDEST:=$(patsubst %,$(EXPORTDIR)/%,$(EXPORT))
83
84
85 #Extra include,libs, defines etc.
86
87 FMDDEFINE:=$(EDEFINE)
88
89 FMDINC:=$(patsubst %,-I%,$(EINCLUDE)) -IFMD
90
91 FMDELIBS:=$(patsubst %,-l%,$(ELIBS))
92 FMDELIBSDIR:=$(patsubst %,-L%,$(ELIBSDIR))
93
94 #c sources and headers
95
96 FMDCS:=$(patsubst %,$(MODDIR)/%,$(CSRCS))
97 FMDCH:=$(patsubst %,$(MODDIR)/%,$(CHDRS))
98
99 #Fortran sources 
100 FMDFS:=$(patsubst %,$(MODDIR)/%,$(FSRCS))
101
102 #c++ sources and header
103 FMDS:=$(patsubst %,$(MODDIR)/%,$(SRCS))
104 FMDH:=$(patsubst %,$(MODDIR)/%,$(HDRS)) $(EHDRS)
105
106 #############################################################################
107 #
108 #            If special rootcint headerfiles is specified use them
109 #                         else use all headers
110
111 ifndef CINTHDRS
112 FMDCINTHDRS:=$(FMDH) 
113 else
114 FMDCINTHDRS:=$(CINTHDRS)
115 endif
116 #############################################################################
117
118 # Package Dictionary 
119
120 FMDDH:=$(MODDIR)/$(DHDR)
121
122
123 #All objects
124 FMDCO:=$(patsubst %,$(MODDIRO)/%, $(CSRCS:.c=.o))
125 TEMP:=$(FSRCS:.F=.o)
126 FMDFO:=$(patsubst %,$(MODDIRO)/%, $(TEMP:.f=.o))
127 FMDO:= $(patsubst %,$(MODDIRO)/%, $(SRCS:.cxx=.o)) $(FMDFO) $(FMDCO)
128
129
130
131 ifdef WITHDICT
132   FMDDS:=$(MODDIRO)/G__FMD.cxx
133   FMDDO:=$(MODDIRO)/G__FMD.o
134   FMDDDEP:=$(FMDDO:.o=.d)
135   FMDDEP:=$(FMDO:.o=.d) $(FMDDDEP)
136 else
137   FMDDS:=
138   FMDDO:=
139   FMDDDEP:=
140   FMDDEP:=$(FMDO:.o=.d)
141 endif
142
143
144 #The actual library file
145
146 FMDLIB:=$(LIBPATH)/libFMD.$(SOEXT)
147
148 #Add this to the modules libs
149 FMDLIBS += $(FMDLIB)
150
151 #The actual binary file
152
153 FMDBIN:=$(BINPATH)/FMD
154
155 #Add to modules list of binaries
156 FMDBINS += $(FMDBIN)
157
158 # Use in the main Makefile
159
160 ifeq ($(TYPE),lib)
161 ALLLIBS += $(FMDLIB)
162 BINLIBS += -lFMD
163 else
164 ALLEXECS += $(FMDBIN)
165 endif
166
167 # include all dependency files
168 INCLUDEFILES +=$(FMDDEP)
169
170 EXPORTFILES += $(FMDEXPORTDEST)
171
172 #local rules
173
174 #The exportfiles only include if any!!
175
176 ifdef FMDEXPORT
177 #$(FMDEXPORTDEST): $(patsubst %,FMD/%,$(FMDEXPORT))
178
179 $(FMDEXPORTDEST): $(EXPORTDIR)/%.h: FMD/%.h
180 ifndef ALIQUIET
181           @echo "***** Copying file $^ to $@ *****"
182 endif
183           @[ -d $(dir $@) ] || mkdir $(dir $@)
184           @cp $^ $@     
185 endif
186
187 $(FMDLIB):$(FMDO) $(FMDDO) FMD/module.mk
188 ifndef ALIQUIET
189           @echo "***** Linking library $@ *****"
190 endif
191           $(MUTE)TMPDIR=/tmp/FMD$$$$.`date +%M%S` ; \
192           export TMPDIR; mkdir $$TMPDIR ; cd $$TMPDIR ; \
193           find $(CURDIR)/FMD/tgt_$(ALICE_TARGET) -name '*.o' -exec ln -s {} . \; ;\
194       rm -f $(CURDIR)/$@ ;\
195           $(SHLD) $(SOFLAGS) -o $(CURDIR)/$@ $(notdir $(FMDO) $(FMDDO))  $(FMDELIBSDIR) $(FMDELIBS) $(SHLIB);\
196       cd $(CURDIR) ; rm -rf $$TMPDIR
197           $(MUTE)chmod a-w $@
198
199 $(FMDBIN):$(FMDO) $(FMDDO) FMD/module.mk
200 ifndef ALIQUIET
201           @echo "***** Making executable $@ *****"
202 endif
203           $(MUTE)$(LD) $(LDFLAGS) $(FMDO) $(FMDDO) $(BINLIBDIRS) $(FMDELIBSDIR) $(FMDELIBS) $(LIBS) $(EXEFLAGS) -o $@ 
204
205 $(FMDDS): $(FMDCINTHDRS) $(FMDDH) FMD/module.mk
206 ifndef ALIQUIET
207          @echo "***** Creating $@ *****";       
208 endif
209          @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
210          $(MUTE)rootcint -f $@ -c $(FMDDEFINE) $(CINTFLAGS) $(FMDINC) $(FMDCINTHDRS) $(FMDDH) 
211
212 $(FMDDO): $(FMDDS)
213 ifndef ALIQUIET
214                 @echo "***** Compiling $< *****";
215 endif
216                 $(MUTE)$(CXX) -c $(FMDINC)  -I$(ALICE_ROOT) $< -o $@ $(FMDDCXXFLAGS)
217
218 #Different targets for the module
219
220 ifeq ($(TYPE),lib)
221 all-FMD: $(FMDLIB)
222 else
223 all-FMD: $(FMDBIN)
224 endif
225
226 depend-FMD: $(FMDDEP)
227
228 # determination of object files
229 $(MODDIRO)/%.o: $(MODDIRO)/%.cxx $(MODDIRO)/%.d 
230 ifndef ALIQUIET
231         @echo "***** Compiling $< *****";
232 endif
233         @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
234         $(MUTE)$(CXX) $(FMDDEFINE) -c $(FMDINC)   $< -o $@ $(FMDCXXFLAGS)
235
236 $(MODDIRO)/%.o: $(MODDIR)/%.cxx $(MODDIRO)/%.d 
237 ifndef ALIQUIET
238         @echo "***** Compiling $< *****";
239 endif
240         @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
241         $(MUTE)$(CXX) $(FMDDEFINE) -c $(FMDINC)   $< -o $@ $(FMDCXXFLAGS)
242
243 $(MODDIRO)/%.o: $(MODDIR)/%.F $(MODDIRO)/%.d 
244 ifndef ALIQUIET
245         @echo "***** Compiling $< *****";
246 endif
247         @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
248         $(MUTE)$(F77) -c $(FMDINC)  $< -o $@ $(FMDFFLAGS)
249
250 $(MODDIRO)/%.o: $(MODDIR)/%.f $(MODDIRO)/%.d 
251 ifndef ALIQUIET
252         @echo "***** Compiling $< *****";
253 endif
254         @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
255         $(MUTE)$(F77) -c $(FMDINC)  $< -o $@ $(FMDFFLAGS)
256
257 $(MODDIRO)/%.o: $(MODDIR)/%.c $(MODDIRO)/%.d 
258 ifndef ALIQUIET
259         @echo "***** Compiling $< *****";
260 endif
261         @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
262         $(MUTE)$(CC) $(FMDDEFINE) -c  $(FMDINC)  $< -o $@   $(FMDCFLAGS)
263
264 $(FMDDDEP): $(FMDDS)
265 ifndef ALIQUIET
266                 @echo "***** Making dependencies for $< *****";
267 endif
268                 @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
269                 @share/alibtool depend "$(FMDELIBSDIR) $(FMDINC) $(DEPINC)  $<" > $@
270
271 $(MODDIRO)/%.d: $(MODDIRS)/%.cxx
272 ifndef ALIQUIET
273                 @echo "***** Making dependencies for $< *****";
274 endif
275                 @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
276                 @share/alibtool depend "$(FMDDEFINE) $(FMDELIBSDIR) $(FMDINC) $(DEPINC)  $<" > $@
277 $(MODDIRO)/%.d: $(MODDIRS)/%.f
278 ifndef ALIQUIET
279                 @echo "***** Making dependencies for $< *****";
280 endif
281                 @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
282                 @share/alibtool dependF "$(FMDELIBSDIR) $(FMDINC) $(DEPINC)  $<" > $@
283 $(MODDIRO)/%.d: $(MODDIRS)/%.F
284 ifndef ALIQUIET
285                 @echo "***** Making dependencies for $< *****";
286 endif
287                 @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
288                 $(MUTE)share/alibtool dependF "$(FMDELIBSDIR) $(FMDINC) $(DEPINC)  $<" > $@
289 $(MODDIRO)/%.d: $(MODDIRS)/%.c
290 ifndef ALIQUIET
291                 @echo "***** Making dependencies for $< *****";
292 endif
293                 @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;)
294                 @share/alibtool depend "$(FMDDEFINE) $(FMDELIBSDIR) $(FMDINC) $(DEPINC) $<" > $@
295
296 FMDCHECKS := $(patsubst %.cxx,FMD/check/%.viol,$(SRCS))
297
298 check-FMD: $(FMDCHECKS)
299
300 # IRST coding rule check 
301 FMD/check/%.i : FMD/%.cxx
302         @[ -d $(dir $@) ] || mkdir -p $(dir $@)
303         $(MUTE)$(CXX) -E $(FMDDEFINE) $(FMDINC) $< > $@ $(FMDCXXFLAGS)
304         @cd $(dir $@) ; $(IRST_INSTALLDIR)/patch/patch4alice.prl $(notdir $@)
305
306 # IRST coding rule check
307 FMD/check/%.viol : FMD/check/%.i
308         @cd FMD ; [ -r FMD ] || ln -s ../FMD FMD
309         -@echo $@ ; $(CODE_CHECK) $< ./FMD > $@
310
311 FMDPREPROC       = $(patsubst %.viol,%.i,$(FMDCHECKS))
312
313 FMDREVENGS       = $(patsubst %.viol,%.ii,$(FMDCHECKS))
314
315 .SECONDARY: $(FMDREVENGS) $(FMDPREPROC)
316
317 reveng-FMD:             FMD/check/classDiagram.dot
318
319 FMD/check/classDiagram.dot:     $(FMDPREPROC)
320         @$(REV_ENG) $^
321         @-mv classDiagram.dot $@
322
323 revdisp-FMD:    reveng-FMD
324         @echo revdisp for FMD
325         @cd FMD/check ; \
326       $(IRST_INSTALLDIR)/webreveng/create-class-diagram-pages.sh
327         @sed -e "s/\@PACKAGE\@/FMD/g" < $(ALICE_ROOT)/build/HomePage.html > FMD/check/HomePage.html
328
329
330 #  Clean option for the whole module
331 clean-FMD:
332 ifndef ALIQUIET
333                 @echo "***** Cleaning FMD *****"
334 endif
335                 $(MUTE)rm FMD/module.mk
336                 $(MUTE)rm -rf FMD/tgt_$(ALICE_TARGET) 
337                 $(MUTE)rm -f $(FMDLIBS)
338                 $(MUTE)rm -f $(FMDBINS)
339
340 clean-check-FMD:
341 ifndef ALIQUIET
342                 @echo "***** Cleaning code check for FMD *****"
343 endif
344                 $(MUTE)rm -f FMD/check/*.i FMD/check/*.ii FMD/check/*.viol
345
346 clean-reveng-FMD:
347 ifndef ALIQUIET
348                 @echo "***** Cleaning reverse engineering files for FMD *****"
349 endif
350                 $(MUTE)rm -f FMD/check/*.dot
351