# CHARMM makefile for Altix
ROOT = rootdir
SRC = $(ROOT)/source
FLX = $(ROOT)/tool/preflx
LIB = $(ROOT)/lib/altix
EXEC = $(ROOT)/exec/altix
GMS = $(ROOT)/tool/gmscomp_altix
CPP = /bin/cat
CC = ecc -Dnographics -Dgnu -Daltix $(I8DUM2)
# IA-64 Intel Fortran Compiler.
# -tpp2 generates code for Itanium 2 processors.
# -ftz flushes denormal results to zero.
FC = efc -tpp2 -ftz -132 -WB -w95 -cm $(I8DUM1)
# -Vaxlib accesses the Intel Portability library which contains getarg, etc.
LD = efc -Vaxlib -tpp2 -ftz $(I8DUM1)
GLIB = 
QLIB = 
ADDLIB = 
ADDLIB := $(ADDLIB) $(GLIB)
ifdef MBOND
MBONDFLG = -static -DCHARMM
INCLUDE = -I../../source/moldyn
endif
RANLIB = ranlib
.SUFFIXES: .fcm .src .o
VPATH = fcm

INCLUDE = 
FC := $(FC) $(INCLUDE)

FC0 = $(FC) -c -O0
FC1 = $(FC) -c -O1
FC2 = $(FC) -c -O2
FC3 = $(FC) -c -O3
FCR = $(FC) -c -u -V
FCD = $(FC) -c -g -O0 -u -save -zero
FCRD = $(FC) -c -g -V -O0 -u -save -zero

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 : exceptions $(LIBS) $(OBJS) 
	$(LD) -o charmm.exe $(LIB)/*.o $(LIBS) $(LIBS) $(LIBS) $(ADDLIB) $(QLIB) $(MSGLIB)

# platform dependent downgrading of compiler optimizations
exceptions:
	$(FLX) $(SRC)/misc/eef1.src
	$(FC0) eef1.f
	ar rucv $(LIB)/misc.a eef1.o
	$(REMOVE_F) eef1.f
	$(REMOVE_O) eef1.o

