 # CHARMM 26 makefile for GNU compilers (Linux or elsewhere)
ROOT = rootdir
SRC = $(ROOT)/source
FLX = $(ROOT)/tool/preflx
GMS = $(ROOT)/tool/gmscomp_gnu
LIB = $(ROOT)/lib/em64t
EXEC = $(ROOT)/exec/em64t
CC = icc -Dnographics -Dnographics -O -Dgnu -DLINUX $(I8DUM2)
# Note that CC on line 8 and GLIB on line 10, sorry
GLIB =  
CPP = /bin/cat
CCPP = g++ -Dgnu
INCLUDE = 
ADDLIB = 
ADDLIB := $(ADDLIB) $(GLIB)
QLIB =

RANLIB = ranlib
.SUFFIXES: .fcm .src .o
VPATH = fcm

#FCOMPILER = ifort
FCOMPILER = mpif90
#OMPIINC = -I/share/software/openmpi-1.1.5/intel/include -I/usr/local/topspin/include -I/usr/local/topspin/include/vapi -I/usr/ofed/include
#OMPILIBS = -L/share/software/openmpi-1.1.5/intel/lib -L/usr/local/topspin/lib64 -L/usr/ofed/lib -L/usr/ofed/lib64/infiniband -L/usr/ofed/lib64
OMPIINC = -I/share/software/openmpi-1.1.5/intel/include -I/usr/ofed/include
OMPILIBS = -L/usr/lib64 -L/share/software/openmpi-1.1.5/intel/lib -L/usr/ofed/lib64/infiniband -L/usr/ofed/lib64
ifdef MPI_EM64T
    FCOMPILER = mpif90
endif
CC = mpicc -Dnographics -Dgnu -i8 -i_dynamic -pthread $(OMPIINC) $(OMPILIBS)
FC = $(FCOMPILER) -tpp7 -132 -w95 -cm -align all -i8 -i_dynamic -pthread $(OMPIINC) $(OMPILIBS)
#LD = $(FCOMPILER) -tpp7  -static -pthread $(OMPIINC) $(OMPILIBS)
LD = $(FCOMPILER) -tpp7 -i_dynamic -pthread $(OMPIINC) $(OMPILIBS) 

FC := $(FC) $(INCLUDE)

   FC0 = $(FC) -c -O0
   FC1 = $(FC) -c -O1
   FC2 = $(FC) -c -O3 -mp1 -axW
   FC3 = $(FC) -c -O3 -mp1 -axW
   FCR = $(FC) -c -u -V
   FCD = $(FC) -c -g -O0 -u -traceback
ifdef DEBUG
FC0 = $(FCD)
FC1 = $(FCD)
FC2 = $(FCD)
FC3 = $(FCD)
LD := $(LD) -g $(LDFLAGS)
endif
OBJS = \
        $(LIB)/charmm_main.o \
        $(LIB)/help.o \
        $(LIB)/iniall.o \
        $(LIB)/miscom.o \
        $(LIB)/usersb.o
LIBS = \
	$(LIB)/adumb.a \
	$(LIB)/cadint.a \
	$(LIB)/cff.a \
	$(LIB)/correl.a \
	$(LIB)/dimb.a \
	$(LIB)/dynamc.a \
	$(LIB)/energy.a \
	$(LIB)/gamint.a \
	$(LIB)/gukint.a \
	$(LIB)/gener.a \
	$(LIB)/graphics.a \
	$(LIB)/image.a \
	$(LIB)/io.a \
	$(LIB)/machdep.a \
	$(LIB)/manip.a \
	$(LIB)/mbond.a \
	$(LIB)/mc.a \
	$(LIB)/minmiz.a \
	$(LIB)/misc.a \
	$(LIB)/mmff.a \
	$(LIB)/moldyn.a \
	$(LIB)/molvib.a \
	$(LIB)/nbonds.a \
	$(LIB)/pert.a \
	$(LIB)/quantum.a \
	$(LIB)/rxncor.a \
	$(LIB)/shapes.a \
	$(LIB)/solvation.a \
	$(LIB)/util.a \
	$(LIB)/vibran.a

$(EXEC)/charmm : $(LIBS) $(OBJS)
	$(LD) -o charmm.exe $(LIB)/*.o $(LIBS) $(LIBS) $(LIBS) $(ADDLIB) $(QLIB) $(MSGLIB)
