1 |
#--------------------------------------------------------------------------- |
2 |
# |
3 |
# Makefile for a Linux System: |
4 |
# use GNU FORTRAN compiler g77 |
5 |
# Makefile done for tracker dara |
6 |
# |
7 |
#--------------------------------------------------------------------------- |
8 |
# |
9 |
# FC Fortran compiler for standard rules |
10 |
# FFLAGS Fortran flags for standard rules |
11 |
# CC C Compiler for standard rules |
12 |
# CFLAGS C compiler flags for standard rules |
13 |
# |
14 |
# Compiler: g77 |
15 |
# Flags:-g (enable debug) |
16 |
# -Wall (turn on all warnings) |
17 |
# -fno-automatic (force compiler to use static variables) |
18 |
# -fvxt (use VAXish extensions) |
19 |
# |
20 |
|
21 |
# Fortran flags |
22 |
FC=g77 |
23 |
FFLAGS=-fvxt -fno-automatic -Wall -Wno-globals -fbounds-check# -O2 |
24 |
# puo' essere tolto con cautela: |
25 |
# impedisce di far vedere gli warning di HBNAME |
26 |
|
27 |
# C flags |
28 |
CC=gcc |
29 |
CFLAGS=-Wall -O2 |
30 |
CFLADJ=-c |
31 |
|
32 |
# used libraries |
33 |
#LIBS=-L/cern/pro/lib -lkernlib -lpacklib -lgraflib -lmathlib -lnsl |
34 |
LIBS= `cernlib kernlib packlib graflib mathlib` |
35 |
|
36 |
#--------------------------------------------------------------------------- |
37 |
|
38 |
LIBDIR=./lib |
39 |
SRCDIR=./source |
40 |
PARDIR=$(SRCDIR)/parameters |
41 |
BINDIR=./bin |
42 |
AUXDIR=$(BINDIR)/bin-aux |
43 |
|
44 |
BINDIR2003=./bin-2003 |
45 |
AUXDIR2003=$(BINDIR2003)/bin-aux |
46 |
|
47 |
usage: |
48 |
@echo =========================== |
49 |
@echo USAGE: |
50 |
@echo |
51 |
@echo For external users: |
52 |
@echo |
53 |
@echo "make all" |
54 |
@echo "make install" |
55 |
@echo |
56 |
@echo |
57 |
@echo Other labels for internal users: |
58 |
@echo |
59 |
@echo "level0.exe" |
60 |
@echo "level1.exe" |
61 |
@echo "level2.exe" |
62 |
@echo "level2-2003.exe" |
63 |
@echo "all (==> level0.exe level1.exe level2.exe lib)" |
64 |
@echo "level2-both (==> level2.exe level2-2003.exe)" |
65 |
@echo "level2-efficiency.exe" |
66 |
@echo "level2-calibration.exe" |
67 |
@echo |
68 |
@echo "install" |
69 |
@echo |
70 |
@echo "lib" |
71 |
@echo |
72 |
@echo "clean0" |
73 |
@echo "clean1" |
74 |
@echo "clean2" |
75 |
@echo "clean2003" |
76 |
@echo "cleanl" |
77 |
@echo "clean (==> clean0 clean1 clean2 cleanl)" |
78 |
@echo "cleant" |
79 |
@echo |
80 |
|
81 |
|
82 |
all: level0.exe level1.exe level2.exe lib |
83 |
|
84 |
|
85 |
FOBJ0= \ |
86 |
source/readraw/readraw_subroutines.o \ |
87 |
source/readraw/trkunpack.o |
88 |
|
89 |
COBJ0= \ |
90 |
source/readraw/findstart.o \ |
91 |
source/readraw/hunpacker.o \ |
92 |
source/readraw/skipbyte.o \ |
93 |
source/readraw/dunpacker.o \ |
94 |
source/readraw/readtrailer.o \ |
95 |
source/readraw/readped.o \ |
96 |
source/readraw/readsig.o \ |
97 |
source/readraw/readbad.o \ |
98 |
source/readraw/find_cpu_header.o \ |
99 |
source/readraw/trkalarmpkt.o \ |
100 |
source/readraw/runheaderpkt.o \ |
101 |
source/readraw/get_bytes.o \ |
102 |
source/readraw/crc.o |
103 |
|
104 |
COMMON0= \ |
105 |
source/common/commontracker.f \ |
106 |
source/common/common_readraw.f \ |
107 |
source/common/level0.f \ |
108 |
source/common/calib.f |
109 |
|
110 |
OBJTOF= \ |
111 |
source/tof/tofunpack.for \ |
112 |
source/tof/graytobin.for \ |
113 |
source/tof/tofcrc.cpp |
114 |
|
115 |
OBJTRI= \ |
116 |
source/trigger/triggerunpack.for \ |
117 |
source/trigger/trigcrc.cpp |
118 |
|
119 |
TOFCOM=source/tof/common_tof.f |
120 |
|
121 |
|
122 |
level0.exe: bindir source/readraw/readraw.f $(FOBJ0) $(COBJ0) $(OBJTOF) $(COMMON0) $(TOFCOM) |
123 |
@echo Creating $(BINDIR)/$@ ..... |
124 |
$(FC) $(FFLAGS) -o bin/level0.exe source/readraw/readraw.f $(FOBJ0) $(COBJ0) $(OBJTOF) $(OBJTRI) $(LIBS) |
125 |
@echo $@ DONE! |
126 |
@echo =========================================================================================== |
127 |
|
128 |
FOBJ1= \ |
129 |
source/reduction/fillpedsig.o \ |
130 |
source/reduction/filladc.o \ |
131 |
source/reduction/cncomp.o \ |
132 |
source/reduction/cnoise.o \ |
133 |
source/reduction/cutcn.o \ |
134 |
source/common/access_level0.o \ |
135 |
source/common/functions.o |
136 |
|
137 |
COMMON1= \ |
138 |
source/common/commontracker.f \ |
139 |
source/common/level0.f \ |
140 |
source/common/level1.f \ |
141 |
source/common/common_reduction.f \ |
142 |
source/common/calib.f |
143 |
|
144 |
|
145 |
level1.exe: bindir source/reduction/reduction.f $(FOBJ1) $(COMMON1) |
146 |
@echo Creating $(BINDIR)/$@ ..... |
147 |
$(FC) $(FFLAGS) -o bin/level1.exe source/reduction/reduction.f $(FOBJ1) $(LIBS) |
148 |
@echo $@ DONE! |
149 |
@echo =========================================================================================== |
150 |
|
151 |
FOBJ2=\ |
152 |
source/common/functions.f \ |
153 |
source/analysis/mini_2.f\ |
154 |
source/common/readparam.f \ |
155 |
source/common/functions_pfa.f \ |
156 |
source/reduction/fillpedsig.f\ |
157 |
source/analysis/tricircle.f \ |
158 |
source/analysis/BdL.f |
159 |
|
160 |
FOBJTRK=\ |
161 |
source/analysis/grkuta.f \ |
162 |
source/magnet/inter_B.f \ |
163 |
source/magnet/read_B.f |
164 |
|
165 |
|
166 |
COMMON2=\ |
167 |
source/common/commontracker.f \ |
168 |
source/common/calib.f \ |
169 |
source/common/level1.f \ |
170 |
source/common/common_mech.f \ |
171 |
source/common/common_level2debug.f \ |
172 |
source/common/common_momanhough.f \ |
173 |
source/common/momanhough_init.f \ |
174 |
source/common/common_xyzPAM.f \ |
175 |
source/common/common_align.f \ |
176 |
source/common/common_resxy.f \ |
177 |
source/common/level2.f \ |
178 |
source/common/common_mini_2.f |
179 |
|
180 |
COMMONTRK=\ |
181 |
source/common/common_B_inner.f \ |
182 |
|
183 |
|
184 |
|
185 |
level2-both: level2.exe level2-2003.exe |
186 |
|
187 |
level2.exe: auxdir source/analysis/momanhough.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f |
188 |
@echo Creating $(BINDIR)/$@ ..... |
189 |
cpp -x f77-cpp-input source/analysis/momanhough.F source/analysis/momanhough.f |
190 |
$(FC) $(FFLAGS) -o bin/level2.exe source/analysis/momanhough.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) |
191 |
@rm -f source/analysis/momanhough.f |
192 |
@echo Moving auxiliary files in $(AUXDIR) ..... |
193 |
@cp source/parameters/align_param/*.dat $(AUXDIR)/. |
194 |
@cp source/parameters/eta_param/*.dat $(AUXDIR)/. |
195 |
@cp source/parameters/charge_param/*.dat $(AUXDIR)/. |
196 |
@cp source/parameters/field_meas/*.rz $(AUXDIR)/. |
197 |
@cp source/parameters/mip_param/*.dat $(AUXDIR)/. |
198 |
# @cp source/parameters/mech_pos.dat $(AUXDIR)/. |
199 |
@echo $@ DONE! |
200 |
@echo =========================================================================================== |
201 |
|
202 |
|
203 |
level2-2003.exe: auxdir2003 source/analysis/momanhough.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1_2003.f |
204 |
@echo Creating $(BINDIR2003)/$@ ..... |
205 |
cp -f source/common/level1.f source/common/level1.f-cpu |
206 |
cp -f source/common/level1-2003.f source/common/level1.f |
207 |
cpp -x f77-cpp-input -DTEST2003 source/analysis/momanhough.F source/analysis/momanhough.f |
208 |
$(FC) $(FFLAGS) -o $(BINDIR2003)/level2-2003.exe source/analysis/momanhough.f $(FOBJ2) $(FOBJTRK) source/common/access_level1_2003.f $(LIBS) |
209 |
@rm -f source/analysis/momanhough.f |
210 |
cp -f source/common/level1.f-cpu source/common/level1.f |
211 |
@echo Moving auxiliary files in $(AUXDIR2003) ..... |
212 |
@cp source/parameters/align_param-2003/*.dat $(AUXDIR2003)/. |
213 |
@cp source/parameters/eta_param-2003/*.dat $(AUXDIR2003)/. |
214 |
@cp source/parameters/charge_param-2003/*.dat $(AUXDIR2003)/. |
215 |
@cp source/parameters/field_meas/*.rz $(AUXDIR2003)/. |
216 |
@cp source/parameters/mip_param/*.dat $(AUXDIR)/. |
217 |
# @cp source/parameters/mech_pos.dat $(AUXDIR)/. |
218 |
# @cp source/common/level2.f utilities/template/trk_level2.inc |
219 |
@echo $@ DONE! |
220 |
# cp bin/level2-2003.exe $(TRK_BIN)/. |
221 |
@echo ================================================ |
222 |
|
223 |
level2-efficiency.exe: auxdir source/analysis/momanhough-efficiency.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f |
224 |
@echo Creating $(BINDIR)/$@ ..... |
225 |
cpp -x f77-cpp-input source/analysis/momanhough-efficiency.F source/analysis/momanhough-efficiency.f |
226 |
$(FC) $(FFLAGS) -o bin/level2-efficiency.exe source/analysis/momanhough-efficiency.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) |
227 |
@rm -f source/analysis/momanhough-efficiency.f |
228 |
@echo Moving auxiliary files in $(AUXDIR) ..... |
229 |
@cp source/parameters/align_param/*.dat $(AUXDIR)/. |
230 |
@cp source/parameters/eta_param/*.dat $(AUXDIR)/. |
231 |
@cp source/parameters/charge_param/*.dat $(AUXDIR)/. |
232 |
@cp source/parameters/field_meas/*.rz $(AUXDIR)/. |
233 |
@cp source/parameters/mip_param/*.dat $(AUXDIR)/. |
234 |
# @cp source/parameters/mech_pos.dat $(AUXDIR)/. |
235 |
@echo $@ DONE! |
236 |
@echo =========================================================================================== |
237 |
|
238 |
level2-calibration.exe: auxdir source/analysis/momanhough-calibration.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f source/common/common_calibration.f |
239 |
@echo Creating $(BINDIR)/$@ ..... |
240 |
cpp -x f77-cpp-input source/analysis/momanhough-calibration.F source/analysis/momanhough-calibration.f |
241 |
$(FC) $(FFLAGS) -o bin/level2-calibration.exe source/analysis/momanhough-calibration.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) |
242 |
@rm -f source/analysis/momanhough-calibration.f |
243 |
@echo Moving auxiliary files in $(AUXDIR) ..... |
244 |
@cp source/parameters/align_param/*.dat $(AUXDIR)/. |
245 |
@cp source/parameters/eta_param/*.dat $(AUXDIR)/. |
246 |
@cp source/parameters/charge_param/*.dat $(AUXDIR)/. |
247 |
@cp source/parameters/field_meas/*.rz $(AUXDIR)/. |
248 |
# @cp source/parameters/mech_pos.dat $(AUXDIR)/. |
249 |
@cp source/parameters/mip_param/*.dat $(AUXDIR)/. |
250 |
@cp source/parameters/data-card.dat $(AUXDIR)/. |
251 |
@echo $@ DONE! |
252 |
@echo =========================================================================================== |
253 |
|
254 |
|
255 |
|
256 |
TESTDIR=./run-test |
257 |
UTILDIR=./utilities |
258 |
|
259 |
install: |
260 |
@test -d "$(TRK_BIN)" && (echo "Now moving executable and auxiliary files to the working directory$(TRK_BIN)" ; \ |
261 |
cp $(BINDIR)/*.exe $(TRK_BIN)/.; \ |
262 |
cp -r $(AUXDIR) $(TRK_BIN)/. ) || (echo "*** NB Tracker working directory not defined !!") |
263 |
@echo "Installing test directory and utilities..." |
264 |
@cp $(BINDIR)/*.exe $(TESTDIR)/. |
265 |
@cp -r $(AUXDIR) $(TESTDIR)/. |
266 |
# @echo "Tar archive with tracker utilities:" |
267 |
# @tar -xvzf track.tar.gz -C $(UTILDIR)/trk-viewer/ |
268 |
|
269 |
|
270 |
|
271 |
|
272 |
lib: libdir source/subroutines/track.f $(FOBJTRK) $(COMMONTRK) |
273 |
@echo Creating ./$@ ..... |
274 |
g77 $(FFLAGS) -static -c source/subroutines/track.f -o source/subroutines/track.o |
275 |
g77 $(FFLAGS) -static -c source/analysis/grkuta.f -o source/subroutines/grkuta.o |
276 |
g77 $(FFLAGS) -static -c source/magnet/inter_B.f -o source/subroutines/inter_B.o |
277 |
g77 $(FFLAGS) -static -c source/magnet/read_B.f -o source/subroutines/read_B.o |
278 |
gcc -Wall,-soname,libtrk.so -shared -o lib/libtrk.so source/subroutines/*.o #$(LIBS) |
279 |
ar rcs lib/libtrk.a source/subroutines/*.o |
280 |
ranlib lib/libtrk.a |
281 |
@cp -r $(AUXDIR) utilities/template/. |
282 |
@echo Creating tar file with track utilities... |
283 |
@test -d track/ || mkdir track |
284 |
@cp source/subroutines/track.f source/analysis/grkuta.f source/magnet/*.f $(AUXDIR)/*.rz track/ |
285 |
ls track/ |
286 |
tar -cvzf track.tar.gz track/* |
287 |
@rm -fr track |
288 |
@echo $@ DONE! |
289 |
#--------------------------------------------------------------------------- |
290 |
|
291 |
|
292 |
bindir: |
293 |
@test -d "${BINDIR}" || (echo "Creating ${BINDIR}"; mkdir ${BINDIR}) |
294 |
auxdir: bindir |
295 |
@test -d "${AUXDIR}" || (echo "Creating ${AUXDIR}"; mkdir ${AUXDIR}) |
296 |
bindir2003: |
297 |
@test -d "${BINDIR2003}" || (echo "Creating ${BINDIR2003}"; mkdir ${BINDIR2003}) |
298 |
auxdir2003: bindir2003 |
299 |
@test -d "${AUXDIR2003}" || (echo "Creating ${AUXDIR2003}"; mkdir ${AUXDIR2003}) |
300 |
libdir: |
301 |
@test -d "${LIBDIR}" || (echo "Creating ${LIBDIR}"; mkdir ${LIBDIR}) |
302 |
|
303 |
|
304 |
|
305 |
|
306 |
.PHONY : clean |
307 |
clean: clean0 clean1 clean2 cleanl |
308 |
rm -fr $(BINDIR) |
309 |
|
310 |
cleant: |
311 |
rm -f run-test/*~ |
312 |
rm -f run-test/raw-data |
313 |
rm -f run-test/*.exe |
314 |
rm -fr run-test/bin-aux |
315 |
rm -f *~ |
316 |
|
317 |
clean0: |
318 |
rm -f source/readraw/*.o |
319 |
rm -f source/tof/*.o |
320 |
rm -f source/trigger/*.o |
321 |
rm -f source/tof/*~ |
322 |
rm -f source/trigger/*~ |
323 |
rm -f source/readraw/*~ |
324 |
rm -f source/common/*~ |
325 |
rm -f $(BINDIR)/level0.exe |
326 |
rm -f run-test/level0.exe |
327 |
clean1: |
328 |
rm -f source/reduction/*.o |
329 |
rm -f source/reduction/*~ |
330 |
rm -f source/common/*~ |
331 |
rm -f $(BINDIR)/level1.exe |
332 |
rm -f run-test/level1.exe |
333 |
clean2: |
334 |
rm -f source/analysis/*.o |
335 |
rm -f source/magnet/*.o |
336 |
rm -f source/analysis/*~ |
337 |
rm -f source/magnet/*~ |
338 |
rm -f source/common/*~ |
339 |
rm -f $(BINDIR)/level2*.exe |
340 |
rm -f run-test/level2.exe |
341 |
|
342 |
clean2003: |
343 |
rm -f source/analysis/*.o |
344 |
rm -f source/magnet/*.o |
345 |
rm -f source/analysis/*~ |
346 |
rm -f source/magnet/*~ |
347 |
rm -f source/common/*~ |
348 |
rm -f $(BINDIR2003)/level2*.exe |
349 |
rm -fr $(BINDIR2003)/bin-aux |
350 |
rm -f run-test/level2.exe |
351 |
|
352 |
cleanl: |
353 |
rm -f source/subroutines/*~ |
354 |
rm -f source/subroutines/*.o |
355 |
rm -fr ./lib |
356 |
# rm -f lib/*.so |
357 |
# rm -f lib/*.a |