#
# usage:
#       make                          (compile alpQEDc)
#       make prog=<dum>               (compile and call executable <dum>)
#       make clean                    (delete object files and executable)
#

ifndef FORTRAN
  FORTRAN = gfortran
endif

FFLAGS = -g -O -fno-second-underscore -fbounds-check -frange-check

ifndef prog
  prog = alphaQEDc26
endif

HOME = /Users/friedrichjegerlehner/andromeda
DISK = $(HOME)
WORK = $(DISK)/for/vap/qed

RHAD = ./rhad/

HL =	$(RHAD)r012.o \
	$(RHAD)r34.o \
	$(RHAD)runal.o \
	$(RHAD)funcs.o \
	$(RHAD)vegas-rhad.o \
	$(RHAD)parameters.o \
	$(RHAD)rhad.o \
	$(RHAD)rqcdHSx.o

OPTS = -O  -fno-second-underscore -fbounds-check -fno-range-check

MAIN_SRC = ${prog}.f
MAIN_OBJ = ${MAIN_SRC:.f=.o}
SRC = leptons.f hadr5n26.f hadr5n23.f hadr5n12.f hadr5n09.f hadr5n03.f \
constants.f constants_qcd.f \
Rdat_all.f Rdat_fun.f Rdat_fit.f resonances_dat.f \
funalpqedcx.f funalpqedrx.f funsin2theta.f chadr5n26.f chadr5n26a.f \
dggvapx.f cggvapx.f resonances_renr.f resonances_renc.f FSRfun.f  \
R3G0322.f R330322.f RN20322.f RGG0322.f RS3G_fun.f RS33_fun.f RSN2_fun.f RSGG_fun.f \
RS3G_fit.f RS33_fit.f  RSN2_fit.f RSGG_fit.f \
alphaQEDcx_sub.f renotab2.f renooldnew.f \
printscan.f hadr5reson_ana.f bwintanalytic.f \
resfitfunx.f romegafun.f rphifun.f rphifun3g.f rphifun33.f \
printscan-complex.f hadr5x26.f hadr5x26_complex.f hadr5x26a.f hadr5x26a_complex.f \
renormalize2.f ./dat/Rdat_upd19.f

OBJ = ${SRC:.f=.o}
INCFILES = common.h xRdat-extended.f xRdat-nonres.f Rdat_upd.f epemrdata1n_updatehigh.f \
epemrdatgrcorrx.f taurdatisocorrx.f \
funalpqedcx.h funalp2smcx.h funalpqedrx.h funalp2smrx.h \
epemfit1432.h epemfit079081.h epemfit32cut.h epemfit0814new.h \
ffppmfit0810.h  ffppg2fit0810.h   rfitrhohig.h rfitrholow.h \
epem3gfit079081.h  epem3gfit0814new.h epem3gfit1425.h r3gfitrholow.h r3gfitrhohig.h \
epem33fit079081.h  epem33fit0814new.h epem33fit1425.h r33fitrhohig.h r33fitrholow.h \
epemggfit079081.h  epemggfit0814new.h epemggfit1425.h rggfitrholow.h rggfitrhohig.h \
epemn2fit079081.h  epemn2fit0814new.h epemn2fit1425.h rn2fitrhohig.h rn2fitrholow.h \
rfitchptail.h fpi2fitchptail.h reso_reno.dat xRdat-spacelikehigh.f \
omegafit.h phifit.h phifit3g.h phifit33.h \
dalhadslow26_5.f deghadslow26_5.f \
dalhadshigh26_5.f deghadshigh26_5.f \
dalhadt26_5.f deghadt26_5.f \
dalhadthigh26_5.f deghadthigh26_5.f

path=${HOME}
f77 = $(FORTRAN)
qedlib = qed.a

${prog}: ${MAIN_OBJ} ${OBJ} ${INCFILES} ${qedlib} Makefile
	${f77} $(FFLAGS) ${OPTS} -o $@ ${MAIN_OBJ} ${OBJ} ${qedlib} -L/usr/lib

%.o: %.f ${INCFILES}
	${f77} $(FFLAGS) ${OPTS} -c -o $@ $<

clean:
	  rm ${MAIN_OBJ}
	  rm ${OBJ}
	  rm -f qed.a

${qedlib}: ${OBJ} ${INCFILES} Makefile
	${f77} ${OPTS} -c ${SRC}
	ar rv ${qedlib} ${OBJ} ${HL}
	ar -s ${qedlib}

.f.a:
	${f77} ${OPTS} -c ${SRC}
	ar rv ${qedlib} ${OBJ} ${HL}
	rm -f ${OBJ}
