| 1 |
#
|
| 2 |
# Steering Makefile to create gpamelaX11 and gpamela executable
|
| 3 |
# First of all define the src files. One for each subdirectory
|
| 4 |
#
|
| 5 |
GPAMELASRCS= gpamela/ffuser.F gpamela/gdraws.F gpamela/gpadigi.F \
|
| 6 |
gpamela/gpal.F gpamela/gpdat.F \
|
| 7 |
gpamela/gpffr.F gpamela/gpfil.F gpamela/gpgaus.F \
|
| 8 |
gpamela/gpgeo.F gpamela/gphbk.F \
|
| 9 |
gpamela/gphit.F gpamela/gplook.F \
|
| 10 |
gpamela/gpmapa.F gpamela/gpmat.F gpamela/gpmed.F \
|
| 11 |
gpamela/gpn2g.F gpamela/gpnhit.F gpamela/gppama.F \
|
| 12 |
gpamela/gprhit.F gpamela/gprsht.F \
|
| 13 |
gpamela/gpsed.F gpamela/gpsptm.F \
|
| 14 |
gpamela/gpudat.F gpamela/gpudig.F gpamela/gpuffr.F \
|
| 15 |
gpamela/gpufil.F gpamela/gpugeo.F gpamela/gpuhbk.F \
|
| 16 |
gpamela/gpuhit.F gpamela/gpuini.F \
|
| 17 |
gpamela/gpukin.F gpamela/gpulas.F \
|
| 18 |
gpamela/gpumat.F gpamela/gpumed.F gpamela/gpuout.F \
|
| 19 |
gpamela/gpused.F gpamela/gpustep.F gpamela/gputra.F \
|
| 20 |
gpamela/gputre.F gpamela/gudigi.F \
|
| 21 |
gpamela/guhadr.F gpamela/gukine.F gpamela/guout.F \
|
| 22 |
gpamela/guphad.F gpamela/gustep.F \
|
| 23 |
gpamela/gutrak.F gpamela/gutrev.F \
|
| 24 |
gpamela/gviewyz.F gpamela/n2g.F \
|
| 25 |
gpamela/uginit.F gpamela/uglast.F \
|
| 26 |
gpamela/gprnhran.F gpamela/ghesig.F \
|
| 27 |
gpamela/gptav.F
|
| 28 |
GPCALSRCS = gpcal/gpcalv.F gpcal/gpce.F gpcal/gpdcal.F \
|
| 29 |
gpcal/gpg10c.F gpcal/gpg10.F gpcal/gpsica.F \
|
| 30 |
gpcal/gpucal.F gpcal/gpw2.F gpcal/gpw.F
|
| 31 |
GPCASSRCS = gpcas/gpcasv.F gpcas/gpdcas.F gpcas/gpucas.F
|
| 32 |
GPCATSRCS = gpcat/gpcatv.F gpcat/gpdcat.F gpcat/gpucat.F
|
| 33 |
GPCARDSRCS = gpcard/gpcardv.F gpcard/gpdcard.F gpcard/gpucard.F
|
| 34 |
GPFIELDSRCS = gpfield/flin3.F gpfield/gufld.F gpfield/gprbi.F \
|
| 35 |
gpfield/inter_B.F gpfield/inter_B_inner.F gpfield/inter_B_outer.F
|
| 36 |
GPGARSRCS = gpgar/gpgacl.F gpgar/gpgapart.F gpgar/gpgarin.F \
|
| 37 |
gpgar/gpgarsel.F gpgar/gptogar.F gpgar/grinit.F
|
| 38 |
GPHYSSRCSRCS = gphys/gfluct.F
|
| 39 |
GPMAINSRCS = gpmain/gpmain.F
|
| 40 |
GPSPESRCS = gpspe/gpcp.F gpspe/gpdspe.F gpspe/gpfe.F \
|
| 41 |
gpspe/gpkap.F gpspe/gpmaspe.F gpspe/gproa.F \
|
| 42 |
gpspe/gpsitr.F gpspe/gpspema.F gpspe/gpspev.F gpspe/gpuspe.F \
|
| 43 |
gpspe/gprspe.F gpspe/gpudiffusion.F gpspe/gpucollection.F
|
| 44 |
GPTOFSRCS = gptof/gpdtof.F gptof/gpscin.F gptof/gpscint.F \
|
| 45 |
gptof/gptofv.F gptof/gputof.F gptof/gpmyl.F gptof/gppol.F
|
| 46 |
GPTRDSRCS = gptrd/gpdtrd.F gptrd/gptrad.F gptrd/gptrdv.F \
|
| 47 |
gptrd/gputrd.F gptrd/gpxe.F gptrd/gpxtr.F \
|
| 48 |
gptrd/npoiss.F gptrd/xescape.F gptrd/xtrinteg.F \
|
| 49 |
gptrd/xtrinter.F gptrd/xtryield.F
|
| 50 |
GPXINTSRCS = gpxint/gxint.F gpxint/qnext.F
|
| 51 |
GPNDSRCS = gpnd/gpndv.F gpnd/gpgigp.F gpnd/gpund.F gpnd/gpdnd.F gpnd/gpgig.F \
|
| 52 |
gpnd/gpgrsigma.F gpnd/gpgres.F gpnd/gpcad.F \
|
| 53 |
gpnd/gpch2.F gpnd/gphe3.F
|
| 54 |
GPCALORSRC = gpcalor/gpcalor.F
|
| 55 |
#
|
| 56 |
GPSRCS = $(GPAMELASRCS) $(GPCALSRCS) $(GPCASSRCS) $(GPCATSRCS) $(GPCARDSRCS) \
|
| 57 |
$(GPFIELDSRCS) $(GPGARSRCS) $(GPHYSSRCS) \
|
| 58 |
$(GPSPESRCS) $(GPTOFSRCS) $(GPNDSRCS) $(GPTRDSRCS) $(GPCALORSRC)
|
| 59 |
GPOBJS =$(addsuffix .o,$(basename ${GPSRCS}) )
|
| 60 |
GPDEPENDS =$(GPOBJS:.o=.d)
|
| 61 |
GPMAINOBJS =$(addsuffix .o,$(basename ${GPMAINSRCS}) )
|
| 62 |
GPMAINDEPENDS =$(GPMAINOBJS:.o=.d)
|
| 63 |
GPXINTOBJS =$(addsuffix .o,$(basename ${GPXINTSRCS}) )
|
| 64 |
GPXINTDEPENDS =$(GPXINTOBJS:.o=.d)
|
| 65 |
#
|
| 66 |
GEANTINC = gcdes
|
| 67 |
GPINC = gpcdes
|
| 68 |
GPCALORINC = gpcalordes
|
| 69 |
CERNLIB = `cernlib geant,genlib,pawlib,graflib/X11,packlib,mathlib`
|
| 70 |
GPLIBDIR = ./lib
|
| 71 |
GPLIB = ${GPLIBDIR}/libgarfield-7.a
|
| 72 |
#
|
| 73 |
BIN = ./bin
|
| 74 |
AUX = ./aux
|
| 75 |
AUXFILES = ${AUX}/gpfield.rz ${AUX}/GPAMELA.FFR ${AUX}/TRD_ATT.DAT \
|
| 76 |
${AUX}/GARFIELD.GAR ${AUX}/xe_80_co2_20.gas \
|
| 77 |
${AUX}/measure_n3_290302.rz ${AUX}/measure_n4_110402_corrected.rz \
|
| 78 |
${AUX}/resxy_new.rz ${AUX}/INPUTSEED.DAT ${AUX}/readseeds.f \
|
| 79 |
${AUX}/writeseeds.f ${AUX}/chetc.dat.gz ${AUX}/xsneut.dat.gz \
|
| 80 |
${AUX}/external_top_map_n4_150402.rz \
|
| 81 |
${AUX}/Neut1.dat ${AUX}/Neut2.dat ${AUX}/Neut3.dat
|
| 82 |
|
| 83 |
GARFIELDSRC = ./garfield/src
|
| 84 |
#
|
| 85 |
INTERFLAGS = -DGPAMELA_UNIX -DGPAMELA_TYPE -DGPAMELA_X11 -DGPAMELA_INTER \
|
| 86 |
-DGPAMELA_HIGZ \
|
| 87 |
-DGPAMELA_GARFIELD -DGPAMELA_MANYWIRE -DGPAMELA_LONGLIST \
|
| 88 |
-DGPAMELA_BIGMAP
|
| 89 |
BATCHFLAGS = -DGPAMELA_UNIX -DGPAMELA_TYPE -DGPAMELA_GARFIELD \
|
| 90 |
-DGPAMELA_MANYWIRE -DGPAMELA_LONGLIST -DGPAMELA_BIGMAP
|
| 91 |
#
|
| 92 |
CC = gcc
|
| 93 |
#FC = g77 -ffortran-bounds-check
|
| 94 |
FC = g77
|
| 95 |
DEBFLAGS = -g -fdebug-kludge
|
| 96 |
FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I$(GPCALORINC) \
|
| 97 |
-I${GEANTINC} ${BATCHFLAGS}
|
| 98 |
LDFLAGS= ${GPLIB} ${CERNLIB} -Xlinker -Map -Xlinker $@.map
|
| 99 |
|
| 100 |
|
| 101 |
gpamelax11.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I${GPCALORINC} -I${GEANTINC} ${INTERFLAGS}
|
| 102 |
gpamelax11.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPXINTSRCS} ${GPXINTOBJS} ${GPXINTDEPENDS}
|
| 103 |
@echo Creating $@ .....
|
| 104 |
$(FC) -o ${BIN}/$@ ${GPOBJS} ${GPXINTOBJS} ${LDFLAGS}
|
| 105 |
@echo Removing object files .....
|
| 106 |
@rm -f ${GPOBJS} ${GPXINTOBJS}
|
| 107 |
|
| 108 |
gpamela.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I${GPCALORINC} -I${GEANTINC} ${BATCHFLAGS}
|
| 109 |
gpamela.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPMAINSRCS} ${GPMAINOBJS} ${GPMAINDEPENDS}
|
| 110 |
@echo Creating $@ .....
|
| 111 |
$(FC) -o ${BIN}/$@ ${GPOBJS} ${GPMAINOBJS} ${LDFLAGS}
|
| 112 |
@echo Removing object files .....
|
| 113 |
@rm -f ${GPOBJS} ${GPMAINOBJS}
|
| 114 |
|
| 115 |
gpamelax11_deb.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals ${DEBFLAGS} -I${GPINC} -I${GPCALORINC} -I${GEANTINC} ${INTERFLAGS}
|
| 116 |
gpamelax11_deb.exe: LDFLAGS= ${GPLIB} ${CERNLIB} ${DEBFLAGS}
|
| 117 |
gpamelax11_deb.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPXINTSRCS} ${GPXINTOBJS} ${GPXINTDEPENDS}
|
| 118 |
@echo Creating $@ .....
|
| 119 |
$(FC) -o ${BIN}/$@ ${GPOBJS} ${GPXINTOBJS} ${LDFLAGS}
|
| 120 |
@echo Removing object files .....
|
| 121 |
@rm -f ${GPOBJS) ${GPXINTOBJS}
|
| 122 |
|
| 123 |
gpamela_deb.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals ${DEBFLAGS} -I${GPINC} -I${GPCALORINC} -I${GEANTINC} ${BATCHFLAGS}
|
| 124 |
gpamelax_deb.exe: LDFLAGS= ${GPLIB} ${CERNLIB} ${DEBFLAGS}
|
| 125 |
gpamela_deb.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPMAINSRCS} ${GPMAINOBJS} ${GPMAINDEPENDS}
|
| 126 |
@echo Creating $@ .....
|
| 127 |
$(FC) -o ${BIN}/$@ ${GPOBJS} ${GPMAINOBJS} ${LDFLAGS}
|
| 128 |
@echo Removing object files .....
|
| 129 |
@rm -f ${GPOBJS) ${GPMAINOBJS}
|
| 130 |
|
| 131 |
depend: ${GPXINTDEPENDS} ${GPMAINDEPENDS} ${GPDEPENDS}
|
| 132 |
|
| 133 |
%.d: %.F
|
| 134 |
@echo Creating $@ from $< ;
|
| 135 |
@$(SHELL) -ec '$(FC) -M $(FFLAGS) $< \
|
| 136 |
| sed '\''s/\($(*F)\)\.o[ :]*/ $(*D)\/\1.o $(*D)\/$(*F)\.d : /g'\'' > $@; \
|
| 137 |
[ -s $@ ] || rm -f $@'
|
| 138 |
|
| 139 |
.PHONY: distclean clean createdir install
|
| 140 |
# Move binaries from the local repository to the official repositories
|
| 141 |
install :
|
| 142 |
@test -d "$(GPAMELA_BIN)" && \
|
| 143 |
(echo "Now moving executable and auxiliary files to $(GPAMELA_BIN)"; \
|
| 144 |
mv -f $(BIN)/*.exe $(GPAMELA_BIN)/. ; cp ${AUXFILES} $(GPAMELA_BIN)/.;\
|
| 145 |
echo "Now unzipping the GCALOR cross section data files"; \
|
| 146 |
gzip -dv $(GPAMELA_BIN)/xsneut.dat.gz $(GPAMELA_BIN)/chetc.dat.gz)
|
| 147 |
|
| 148 |
${GPLIBDIR}/libgarfield-7.a:
|
| 149 |
@echo Creating libgarfield-7.a it will take few minutes .....
|
| 150 |
@cd ${GARFIELDSRC}; make -f makefile_linux libgarfield-7.a
|
| 151 |
@test -d "${GPLIBDIR}" || (echo "Creating ${GPLIBDIR}"; mkdir ${GPLIBDIR})
|
| 152 |
@echo Copyng $(@F) to ${GPLIBDIR}
|
| 153 |
@cp ${GARFIELDSRC}/$(@F) ${GPLIBDIR}
|
| 154 |
|
| 155 |
# Create binary local repository if non existent
|
| 156 |
createdir :
|
| 157 |
@test -d "${BIN}" || (echo "Creating ${BIN}"; mkdir ${BIN})
|
| 158 |
|
| 159 |
distclean: clean
|
| 160 |
@echo Removing garfield sources, objects and libraries
|
| 161 |
@cd ${GARFIELDSRC}; rm -f *.f *.o libgarfield-7.a
|
| 162 |
@rm -f ${GPLIBDIR}/libgarfield-7.a
|
| 163 |
@rm -fr ${GPLIBDIR}
|
| 164 |
@echo Removing executables .....
|
| 165 |
@rm -fr ${BIN}
|
| 166 |
|
| 167 |
|
| 168 |
|
| 169 |
clean:
|
| 170 |
@echo Removing object files .....
|
| 171 |
@rm -f ${GPOBJS} ${GPMAINOBJS} ${GPXINTOBJS}
|
| 172 |
@echo Removing dependencies files .....
|
| 173 |
@rm -f ${GPDEPENDS} ${GPMAINDEPENDS} ${GPXINTDEPENDS}
|
| 174 |
|
| 175 |
include ${GPDEPENDS}
|
| 176 |
|
| 177 |
|