#--------------------------------------------------------------------------- # # Makefile for a Linux System: # use GNU FORTRAN compiler g77 # Makefile done for tracker dara # #--------------------------------------------------------------------------- # # FC Fortran compiler for standard rules # FFLAGS Fortran flags for standard rules # CC C Compiler for standard rules # CFLAGS C compiler flags for standard rules # # Compiler: g77 # Flags:-g (enable debug) # -Wall (turn on all warnings) # -fno-automatic (force compiler to use static variables) # -fvxt (use VAXish extensions) # # Fortran flags FC=g77 FFLAGS=-fvxt -fno-automatic -Wall -Wno-globals -fbounds-check# -O2 # puo' essere tolto con cautela: # impedisce di far vedere gli warning di HBNAME # C flags CC=gcc CFLAGS=-Wall -O2 CFLADJ=-c # used libraries #LIBS=-L/cern/pro/lib -lkernlib -lpacklib -lgraflib -lmathlib -lnsl LIBS= `cernlib kernlib packlib graflib mathlib` #--------------------------------------------------------------------------- LIBDIR=./lib SRCDIR=./source PARDIR=$(SRCDIR)/parameters BINDIR=./bin AUXDIR=$(BINDIR)/bin-aux BINDIR2003=./bin-2003 AUXDIR2003=$(BINDIR2003)/bin-aux usage: @echo =========================== @echo USAGE: @echo @echo For external users: @echo @echo "make all" @echo "make install" @echo @echo @echo Other labels for internal users: @echo @echo "level0.exe" @echo "level1.exe" @echo "level2.exe" @echo "level2-2003.exe" @echo "all (==> level0.exe level1.exe level2.exe lib)" @echo "level2-both (==> level2.exe level2-2003.exe)" @echo "level2-efficiency.exe" @echo "level2-calibration.exe" @echo @echo "install" @echo @echo "lib" @echo @echo "clean0" @echo "clean1" @echo "clean2" @echo "clean2003" @echo "cleanl" @echo "clean (==> clean0 clean1 clean2 cleanl)" @echo "cleant" @echo all: level0.exe level1.exe level2.exe lib FOBJ0= \ source/readraw/readraw_subroutines.o \ source/readraw/trkunpack.o COBJ0= \ source/readraw/findstart.o \ source/readraw/hunpacker.o \ source/readraw/skipbyte.o \ source/readraw/dunpacker.o \ source/readraw/readtrailer.o \ source/readraw/readped.o \ source/readraw/readsig.o \ source/readraw/readbad.o \ source/readraw/find_cpu_header.o \ source/readraw/trkalarmpkt.o \ source/readraw/runheaderpkt.o \ source/readraw/get_bytes.o \ source/readraw/crc.o COMMON0= \ source/common/commontracker.f \ source/common/common_readraw.f \ source/common/level0.f \ source/common/calib.f OBJTOF= \ source/tof/tofunpack.for \ source/tof/graytobin.for \ source/tof/tofcrc.cpp OBJTRI= \ source/trigger/triggerunpack.for \ source/trigger/trigcrc.cpp TOFCOM=source/tof/common_tof.f level0.exe: bindir source/readraw/readraw.f $(FOBJ0) $(COBJ0) $(OBJTOF) $(COMMON0) $(TOFCOM) @echo Creating $(BINDIR)/$@ ..... $(FC) $(FFLAGS) -o bin/level0.exe source/readraw/readraw.f $(FOBJ0) $(COBJ0) $(OBJTOF) $(OBJTRI) $(LIBS) @echo $@ DONE! @echo =========================================================================================== FOBJ1= \ source/reduction/fillpedsig.o \ source/reduction/filladc.o \ source/reduction/cncomp.o \ source/reduction/cnoise.o \ source/reduction/cutcn.o \ source/common/access_level0.o \ source/common/functions.o COMMON1= \ source/common/commontracker.f \ source/common/level0.f \ source/common/level1.f \ source/common/common_reduction.f \ source/common/calib.f level1.exe: bindir source/reduction/reduction.f $(FOBJ1) $(COMMON1) @echo Creating $(BINDIR)/$@ ..... $(FC) $(FFLAGS) -o bin/level1.exe source/reduction/reduction.f $(FOBJ1) $(LIBS) @echo $@ DONE! @echo =========================================================================================== FOBJ2=\ source/common/functions.f \ source/analysis/mini_2.f\ source/common/readalignparam.f \ source/common/functions_pfa.f \ source/reduction/fillpedsig.f\ source/analysis/tricircle.f \ source/analysis/BdL.f FOBJTRK=\ source/analysis/grkuta.f \ source/magnet/inter_B.f \ source/magnet/read_B.f COMMON2=\ source/common/commontracker.f \ source/common/calib.f \ source/common/level1.f \ source/common/common_mech.f \ source/common/common_level2debug.f \ source/common/common_momanhough.f \ source/common/momanhough_init.f \ source/common/common_xyzPAM.f \ source/common/common_align.f \ source/common/common_resxy.f \ source/common/level2.f \ source/common/common_mini_2.f COMMONTRK=\ source/common/common_B_inner.f \ level2-both: level2.exe level2-2003.exe level2.exe: auxdir source/analysis/momanhough.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f @echo Creating $(BINDIR)/$@ ..... cpp -x f77-cpp-input source/analysis/momanhough.F source/analysis/momanhough.f $(FC) $(FFLAGS) -o bin/level2.exe source/analysis/momanhough.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) @rm -f source/analysis/momanhough.f @echo Moving auxiliary files in $(AUXDIR) ..... @cp source/parameters/align_param/*.dat $(AUXDIR)/. @cp source/parameters/eta_param/*.dat $(AUXDIR)/. @cp source/parameters/charge_param/*.dat $(AUXDIR)/. @cp source/parameters/field_meas/*.rz $(AUXDIR)/. @cp source/parameters/mip_param/*.dat $(AUXDIR)/. # @cp source/parameters/mech_pos.dat $(AUXDIR)/. @echo $@ DONE! @echo =========================================================================================== level2-2003.exe: auxdir2003 source/analysis/momanhough.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1_2003.f @echo Creating $(BINDIR2003)/$@ ..... cp -f source/common/level1.f source/common/level1.f-cpu cp -f source/common/level1-2003.f source/common/level1.f cpp -x f77-cpp-input -DTEST2003 source/analysis/momanhough.F source/analysis/momanhough.f $(FC) $(FFLAGS) -o $(BINDIR2003)/level2-2003.exe source/analysis/momanhough.f $(FOBJ2) $(FOBJTRK) source/common/access_level1_2003.f $(LIBS) @rm -f source/analysis/momanhough.f cp -f source/common/level1.f-cpu source/common/level1.f @echo Moving auxiliary files in $(AUXDIR2003) ..... @cp source/parameters/align_param-2003/*.dat $(AUXDIR2003)/. @cp source/parameters/eta_param-2003/*.dat $(AUXDIR2003)/. @cp source/parameters/charge_param-2003/*.dat $(AUXDIR2003)/. @cp source/parameters/field_meas/*.rz $(AUXDIR2003)/. @cp source/parameters/mip_param/*.dat $(AUXDIR)/. # @cp source/parameters/mech_pos.dat $(AUXDIR)/. # @cp source/common/level2.f utilities/template/trk_level2.inc @echo $@ DONE! # cp bin/level2-2003.exe $(TRK_BIN)/. @echo ================================================ level2-efficiency.exe: auxdir source/analysis/momanhough-efficiency.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f @echo Creating $(BINDIR)/$@ ..... cpp -x f77-cpp-input source/analysis/momanhough-efficiency.F source/analysis/momanhough-efficiency.f $(FC) $(FFLAGS) -o bin/level2-efficiency.exe source/analysis/momanhough-efficiency.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) @rm -f source/analysis/momanhough-efficiency.f @echo Moving auxiliary files in $(AUXDIR) ..... @cp source/parameters/align_param/*.dat $(AUXDIR)/. @cp source/parameters/eta_param/*.dat $(AUXDIR)/. @cp source/parameters/charge_param/*.dat $(AUXDIR)/. @cp source/parameters/field_meas/*.rz $(AUXDIR)/. @cp source/parameters/mip_param/*.dat $(AUXDIR)/. # @cp source/parameters/mech_pos.dat $(AUXDIR)/. @echo $@ DONE! @echo =========================================================================================== level2-calibration.exe: auxdir source/analysis/momanhough-calibration.F $(FOBJ2) $(FOBJTRK) $(COMMON2) $(COMMONTRK) source/common/access_level1.f source/common/common_calibration.f @echo Creating $(BINDIR)/$@ ..... cpp -x f77-cpp-input source/analysis/momanhough-calibration.F source/analysis/momanhough-calibration.f $(FC) $(FFLAGS) -o bin/level2-calibration.exe source/analysis/momanhough-calibration.f $(FOBJ2) $(FOBJTRK) source/common/access_level1.f $(LIBS) @rm -f source/analysis/momanhough-calibration.f @echo Moving auxiliary files in $(AUXDIR) ..... @cp source/parameters/align_param/*.dat $(AUXDIR)/. @cp source/parameters/eta_param/*.dat $(AUXDIR)/. @cp source/parameters/charge_param/*.dat $(AUXDIR)/. @cp source/parameters/field_meas/*.rz $(AUXDIR)/. # @cp source/parameters/mech_pos.dat $(AUXDIR)/. @cp source/parameters/mip_param/*.dat $(AUXDIR)/. @cp source/parameters/data-card.dat $(AUXDIR)/. @echo $@ DONE! @echo =========================================================================================== TESTDIR=./run-test UTILDIR=./utilities install: @test -d "$(TRK_BIN)" && (echo "Now moving executable and auxiliary files to the working directory$(TRK_BIN)" ; \ cp $(BINDIR)/*.exe $(TRK_BIN)/.; \ cp -r $(AUXDIR) $(TRK_BIN)/. ) || (echo "*** NB Tracker working directory not defined !!") @echo "Installing test directory and utilities..." @cp $(BINDIR)/*.exe $(TESTDIR)/. @cp -r $(AUXDIR) $(TESTDIR)/. # @echo "Tar archive with tracker utilities:" # @tar -xvzf track.tar.gz -C $(UTILDIR)/trk-viewer/ lib: libdir source/subroutines/track.f $(FOBJTRK) $(COMMONTRK) @echo Creating ./$@ ..... g77 $(FFLAGS) -static -c source/subroutines/track.f -o source/subroutines/track.o g77 $(FFLAGS) -static -c source/analysis/grkuta.f -o source/subroutines/grkuta.o g77 $(FFLAGS) -static -c source/magnet/inter_B.f -o source/subroutines/inter_B.o g77 $(FFLAGS) -static -c source/magnet/read_B.f -o source/subroutines/read_B.o gcc -Wall,-soname,libtrk.so -shared -o lib/libtrk.so source/subroutines/*.o #$(LIBS) ar rcs lib/libtrk.a source/subroutines/*.o ranlib lib/libtrk.a @cp -r $(AUXDIR) utilities/template/. @echo Creating tar file with track utilities... @test -d track/ || mkdir track @cp source/subroutines/track.f source/analysis/grkuta.f source/magnet/*.f $(AUXDIR)/*.rz track/ ls track/ tar -cvzf track.tar.gz track/* @rm -fr track @echo $@ DONE! #--------------------------------------------------------------------------- bindir: @test -d "${BINDIR}" || (echo "Creating ${BINDIR}"; mkdir ${BINDIR}) auxdir: bindir @test -d "${AUXDIR}" || (echo "Creating ${AUXDIR}"; mkdir ${AUXDIR}) bindir2003: @test -d "${BINDIR2003}" || (echo "Creating ${BINDIR2003}"; mkdir ${BINDIR2003}) auxdir2003: bindir2003 @test -d "${AUXDIR2003}" || (echo "Creating ${AUXDIR2003}"; mkdir ${AUXDIR2003}) libdir: @test -d "${LIBDIR}" || (echo "Creating ${LIBDIR}"; mkdir ${LIBDIR}) .PHONY : clean clean: clean0 clean1 clean2 cleanl rm -fr $(BINDIR) cleant: rm -f run-test/*~ rm -f run-test/raw-data rm -f run-test/*.exe rm -fr run-test/bin-aux rm -f *~ clean0: rm -f source/readraw/*.o rm -f source/tof/*.o rm -f source/trigger/*.o rm -f source/tof/*~ rm -f source/trigger/*~ rm -f source/readraw/*~ rm -f source/common/*~ rm -f $(BINDIR)/level0.exe rm -f run-test/level0.exe clean1: rm -f source/reduction/*.o rm -f source/reduction/*~ rm -f source/common/*~ rm -f $(BINDIR)/level1.exe rm -f run-test/level1.exe clean2: rm -f source/analysis/*.o rm -f source/magnet/*.o rm -f source/analysis/*~ rm -f source/magnet/*~ rm -f source/common/*~ rm -f $(BINDIR)/level2*.exe rm -f run-test/level2.exe clean2003: rm -f source/analysis/*.o rm -f source/magnet/*.o rm -f source/analysis/*~ rm -f source/magnet/*~ rm -f source/common/*~ rm -f $(BINDIR2003)/level2*.exe rm -fr $(BINDIR2003)/bin-aux rm -f run-test/level2.exe cleanl: rm -f source/subroutines/*~ rm -f source/subroutines/*.o rm -fr ./lib # rm -f lib/*.so # rm -f lib/*.a