###################################################################
#INSTALL_DIR = /net/software/local/intel/compilers_and_libraries_2016.3.210/linux/mpi/intel64


FC = mpif90 -fc=ifort


OPT = -O2 -ip -mcmodel=medium 
#OPT = -CB -g -mcmodel=medium -shared-intel
FFLAGS =  ${OPT} -c -I. -Iinclude_unres -I$(INSTALL_DIR)/include
LIBS = -L$(INSTALL_DIR)/lib -lmpi xdrf/libxdrf.a

.c.o:
	cc -c -DLINUX -DPGI $*.c

.f.o:
	${FC} ${FFLAGS} $*.f

.F.o:
	${FC} ${FFLAGS} ${CPPFLAGS} ${FFLAGS} $*.F

object = main_clust.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o \
	matmult.o readrtns.o pinorm.o rescode.o intcor.o timing.o misc.o \
	geomout.o readpdb-mult.o read_coords.o parmread.o probabl.o fitsq.o hc.o  \
	track.o wrtclust.o srtclust.o noyes.o contact.o printmat.o \
	int_from_cart1.o energy_p_new.o icant.o proc_proc.o work_partition.o \
	setup_var.o read_ref_str.o gnmr1.o permut.o seq2chains.o \
	chain_symmetry.o iperm.o rmscalc.o rmsnat.o TMscore.o ssMD.o refsys.o \
	read_constr_homology.o nmr_hpos.o boxshift.o

all: no_option
	@echo "Specify force field: GAB, 4P, E0LL2Y or NEWCORR"

no_option:

GAB: CPPFLAGS = -DPROCOR -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI  \
	-DCLUST -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC \
	-DFOURBODY
GAB: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_GAB-HCD.exe
GAB: ${object} xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}

4P: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI \
	-DCLUST -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC \
	-DFOURBODY
4P: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_4P-HCD.exe
4P: ${object} xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}

E0LL2Y: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCLUST -DSPLITELE -DFOURBODY
E0LL2Y: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_E0LL2Y-HCD.exe
E0LL2Y: ${object} xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}

E0LL2Y_DFA: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCLUST -DSPLITELE -DFOURBODY -DDFA
E0LL2Y_DFA: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_E0LL2Y-HCD-DFA.exe
E0LL2Y_DFA: ${object} dfa.o xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} dfa.o cinfo.o ${LIBS} -o ${BIN}

NEWCORR: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCORRCD -DCLUST -DSPLITELE -DLANG0 -DNEWCORR
#-DCLUST -DSPLITELE -DLANG0 -DNEWCORR
NEWCORR: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_SC-HCD.exe
#NEWCORR: BIN = ~/bin/unres_clustMD-mult_ifort_MPICH_NEWCORR-fouriertor-test.exe
NEWCORR: ${object} xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}

NEWCORR5D: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCORRCD -DCLUST -DSPLITELE -DLANG0 -DNEWCORR -DFIVEDIAG
#-DCLUST -DSPLITELE -DLANG0 -DNEWCORR
NEWCORR5D: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_SC-HCD5.exe
#NEWCORR: BIN = ~/bin/unres_clustMD-mult_ifort_MPICH_NEWCORR-fouriertor-test.exe
NEWCORR5D: ${object} xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} cinfo.o ${LIBS} -o ${BIN}

NEWCORR_DFA: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCORRCD -DCLUST -DSPLITELE -DLANG0 -DNEWCORR -DDFA
#-DCLUST -DSPLITELE -DLANG0 -DNEWCORR
NEWCORR_DFA: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_SC-HCD-DFA.exe
#NEWCORR: BIN = ~/bin/unres_clustMD-mult_ifort_MPICH_NEWCORR-fouriertor-test.exe
NEWCORR_DFA: ${object} dfa.o xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} dfa.o cinfo.o ${LIBS} -o ${BIN}

NEWCORR5D_DFA: CPPFLAGS = -DLINUX -DPGI -DAMD64 -DUNRES -DISNAN -DMP -DMPI -DPROCOR \
	-DCORRCD -DCLUST -DSPLITELE -DLANG0 -DNEWCORR -DDFA
#-DCLUST -DSPLITELE -DLANG0 -DNEWCORR
NEWCORR5D_DFA: BIN = ~/unres/bin/unres_clustMD_ifort_MPICH-prometheus_SC-HCD5-DFA.exe
#NEWCORR: BIN = ~/bin/unres_clustMD-mult_ifort_MPICH_NEWCORR-fouriertor-test.exe
NEWCORR5D_DFA: ${object} dfa.o xdrf/libxdrf.a
	gcc -o compinfo compinfo.c
	./compinfo | true
	${FC} ${FFLAGS} cinfo.f
	$(FC) ${OPT} ${object} dfa.o cinfo.o ${LIBS} -o ${BIN}

xdrf/libxdrf.a:
	cd xdrf && make


clean:
	/bin/rm -f *.o && /bin/rm -f compinfo && cd xdrf && make clean


