# # Steering Makefile to create gpamelaX11 and gpamela executable # First of all define the src files. One for each subdirectory # GPAMELASRCS= gpamela/ffuser.F gpamela/gdraws.F gpamela/gpadigi.F \ gpamela/gpal.F gpamela/gpdat.F \ gpamela/gpffr.F gpamela/gpfil.F gpamela/gpgaus.F \ gpamela/gpgeo.F gpamela/gphbk.F \ gpamela/gphit.F gpamela/gplook.F \ gpamela/gpmapa.F gpamela/gpmat.F gpamela/gpmed.F \ gpamela/gpn2g.F gpamela/gpnhit.F gpamela/gppama.F \ gpamela/gprhit.F gpamela/gprsht.F \ gpamela/gpsed.F gpamela/gpsptm.F \ gpamela/gpudat.F gpamela/gpudig.F gpamela/gpuffr.F \ gpamela/gpufil.F gpamela/gpugeo.F gpamela/gpuhbk.F \ gpamela/gpuhit.F gpamela/gpuini.F \ gpamela/gpukin.F gpamela/gpulas.F \ gpamela/gpumat.F gpamela/gpumed.F gpamela/gpuout.F \ gpamela/gpused.F gpamela/gpustep.F gpamela/gputra.F \ gpamela/gputre.F gpamela/gudigi.F \ gpamela/guhadr.F gpamela/gukine.F gpamela/guout.F \ gpamela/guphad.F gpamela/gustep.F \ gpamela/gutrak.F gpamela/gutrev.F \ gpamela/gviewyz.F gpamela/n2g.F \ gpamela/uginit.F gpamela/uglast.F GPCALSRCS = gpcal/gpcalv.F gpcal/gpce.F gpcal/gpdcal.F \ gpcal/gpg10c.F gpcal/gpg10.F gpcal/gpsica.F \ gpcal/gpucal.F gpcal/gpw2.F gpcal/gpw.F GPCASSRCS = gpcas/gpcasv.F gpcas/gpdcas.F gpcas/gpucas.F GPCATSRCS = gpcat/gpcatv.F gpcat/gpdcat.F gpcat/gpucat.F GPFIELDSRCS = gpfield/flin3.F gpfield/gufld.F GPGARSRCS = gpgar/gpgacl.F gpgar/gpgapart.F gpgar/gpgarin.F \ gpgar/gpgarsel.F gpgar/gptogar.F gpgar/grinit.F GPHYSSRCSRCS = gphys/gfluct.F GPMAINSRCS = gpmain/gpmain.F GPSPESRCS = gpspe/gpcp.F gpspe/gpdspe.F gpspe/gpfe.F \ gpspe/gpkap.F gpspe/gpmaspe.F gpspe/gproa.F \ gpspe/gpsitr.F gpspe/gpspema.F gpspe/gpspev.F gpspe/gpuspe.F GPTOFSRCS = gptof/gpdtof.F gptof/gpscin.F gptof/gpscint.F \ gptof/gptofv.F gptof/gputof.F GPTRDSRCS = gptrd/gpdtrd.F gptrd/gptrad.F gptrd/gptrdv.F \ gptrd/gputrd.F gptrd/gpxe.F gptrd/gpxtr.F \ gptrd/npoiss.F gptrd/xescape.F gptrd/xtrinteg.F \ gptrd/xtrinter.F gptrd/xtryield.F GPXINTSRCS = gpxint/gxint.F gpxint/qnext.F # GPSRCS = $(GPAMELASRCS) $(GPCALSRCS) $(GPCASSRCS) $(GPCATSRCS) $(GPFIELDSRCS) $(GPGARSRCS) $(GPHYSSRCS) \ $(GPSPESRCS) $(GPTOFSRCS) $(GPTRDSRCS) GPOBJS =$(addsuffix .o,$(basename ${GPSRCS}) ) GPDEPENDS =$(GPOBJS:.o=.d) GPMAINOBJS =$(addsuffix .o,$(basename ${GPMAINSRCS}) ) GPMAINDEPENDS =$(GPMAINOBJS:.o=.d) GPXINTOBJS =$(addsuffix .o,$(basename ${GPXINTSRCS}) ) GPXINTDEPENDS =$(GPXINTOBJS:.o=.d) # GEANTINC = gcdes GPINC = gpcdes CERNLIB = `cernlib geant,genlib,pawlib,graflib/X11,packlib,mathlib` GPLIBDIR = ./lib GPLIB = ${GPLIBDIR}/libgarfield-7.a # BIN = ./bin AUX = ./aux AUXFILES = ${AUX}/gpfield.rz ${AUX}/GPAMELA.FFR ${AUX}/TRD_ATT.DAT ${AUX}/PROVA.GAR GARFIELDSRC = ./garfield/src # INTERFLAGS = -DGPAMELA_UNIX -DGPAMELA_TYPE -DGPAMELA_X11 -DGPAMELA_INTER -DGPAMELA_HIGZ \ -DGPAMELA_GARFIELD -DGPAMELA_MANYWIRE -DGPAMELA_LONGLIST -DGPAMELA_BIGMAP BATCHFLAGS = -DGPAMELA_UNIX -DGPAMELA_TYPE -DGPAMELA_GARFIELD -DGPAMELA_MANYWIRE -DGPAMELA_LONGLIST -DGPAMELA_BIGMAP # CC = gcc FC = g77 DEBFLAGS = -g -fdebug-kludge FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I${GEANTINC} ${BATCHFLAGS} LDFLAGS= ${GPLIB} ${CERNLIB} PHONY: distclean clean createdir install gpamelax11.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I${GEANTINC} ${INTERFLAGS} gpamelax11.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPXINTSRCS} ${GPXINTOBJS} ${GPXINTDEPENDS} @echo Creating $@ ..... $(FC) -o ${BIN}/$@ ${GPOBJS} ${GPXINTOBJS} ${LDFLAGS} @echo Removing object files ..... @rm -f ${GPOBJS} ${GPXINTOBJS} gpamela.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals -I${GPINC} -I${GEANTINC} ${BATCHFLAGS} gpamela.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPMAINSRCS} ${GPMAINOBJS} ${GPMAINDEPENDS} @echo Creating $@ ..... $(FC) -o ${BIN}/$@ ${GPOBJS} ${GPMAINOBJS} ${LDFLAGS} @echo Removing object files ..... @rm -f ${GPOBJS} ${GPMAINOBJS} gpamelax11_deb.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals ${DEBFLAGS} -I${GPINC} -I${GEANTINC} ${INTERFLAGS} gpamelax11_deb.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPXINTSRCS} ${GPXINTOBJS} ${GPXINTDEPENDS} @echo Creating $@ ..... $(FC) -o ${BIN}/$@ ${GPOBJS} ${GPXINTOBJS} ${LDFLAGS} @echo Removing object files ..... @rm -f ${GPOBJS) ${GPXINTOBJS} gpamela_deb.exe: FFLAGS = -fvxt -fno-automatic -Wno-globals ${DEBFLAGS} -I${GPINC} -I${GEANTINC} ${BATCHFLAGS} gpamela_deb.exe: createdir ${GPLIBDIR}/libgarfield-7.a ${GPSRCS} ${GPOBJS} ${GPDEPENDS} ${GPXINTSRCS} ${GPXINTOBJS} ${GPXINTDEPENDS} @echo Creating $@ ..... $(FC) -o ${BIN}/$@ ${GPOBJS} ${GPXINTOBJS} ${LDFLAGS} @echo Removing object files ..... @rm -f ${GPOBJS) ${GPXINTOBJS} depend: ${GPXINTDEPENDS} ${GPMAINDEPENDS} ${GPDEPENDS} %.d: %.F @echo Creating $@ from $< ; @$(SHELL) -ec '$(FC) -M $(FFLAGS) $< \ | sed '\''s/\($(*F)\)\.o[ :]*/ $(*D)\/\1.o $(*D)\/$(*F)\.d : /g'\'' > $@; \ [ -s $@ ] || rm -f $@' # Move binaries from the local repository to the official repositories install : @test -d "$(GPAMELA_BIN)" && \ (echo "Now moving executable and auxiliary files to $(GPAMELA_BIN)"; \ mv -f $(BIN)/*.exe $(GPAMELA_BIN)/. ; cp -f ${AUXFILES} $(GPAMELA_BIN)/. ) ${GPLIBDIR}/libgarfield-7.a: @echo Creating libgarfield-7.a it will take few minutes ..... @cd ${GARFIELDSRC}; make -f makefile_linux libgarfield-7.a @test -d "${GPLIBDIR}" || (echo "Creating ${GPLIBDIR}"; mkdir ${GPLIBDIR}) @echo Copyng $(@F) to ${GPLIBDIR} @cp ${GARFIELDSRC}/$(@F) ${GPLIBDIR} # Create binary local repository if non existent createdir : @test -d "${BIN}" || (echo "Creating ${BIN}"; mkdir ${BIN}) distclean: clean @echo Removing garfield sources, objects and libraries @cd ${GARFIELDSRC}; rm -f *.f *.o libgarfield-7.a @rm -f ${GPLIBDIR}/libgarfield-7.a @rm -fr ${GPLIBDIR} @echo Removing executables ..... @rm -fr ${BIN} clean: @echo Removing object files ..... @rm -f ${GPOBJS} ${GPMAINOBJS} ${GPXINTOBJS} @echo Removing dependencies files ..... @rm -f ${GPDEPENDS} ${GPMAINDEPENDS} ${GPXINTDEPENDS} include ${GPDEPENDS}