#########################################################
# Makefile - Tersoff v1.0  Ju Li <liju99@mit.edu>       #
# Before make, set environment variable SYS to `uname`. #
#########################################################

PROG = tersoff.$(SYS)

# Machine options:
# DEC alpha
FCOMPILER.OSF1 = f77
OPFLAGS.OSF1 = -fast 
MACHFLAGS.OSF1 = -O5 -om -ifo -migrate -inline speed -fp_reorder -non_shared
LINK.OSF1 = -L/home/lapack/lib/axp -llapack -lblas -lm
# IBM RS6000
FCOMPILER.AIX = xlf
OPFLAGS.AIX = -g
MACHFLAGS.AIX = -O3 -Q -qwait=1 -qtune=601
LINK.AIX = -lessl -lm
# SGI IRIX64
FCOMPILER.IRIX64 = f77
OPFLAGS.IRIX64 = 
MACHFLAGS.IRIX64 = -64 -r10000 -TARG:proc=r10000:platform=IP27 -O3 \
-LNO:opt=1:fission=2:fusion=2:cs1=32K:cs2=4M:cs2=1024M:ou_further=3:pwr2=ON\
-OPT:reorg_common=OFF:Olimit=0:div_split=ON:roundoff=3:fast_exp=ON:fast_sqrt=ON
LINK.IRIX64 = -lm

MYFLAG = 
FCPP = /lib/cpp -P
FCPPFLAG = -D_$(SYS) $(MYFLAG)
FC = $(FCOMPILER.$(SYS))
FFLAGS = $(OPFLAGS.$(SYS)) $(MACHFLAGS.$(SYS))
FOBJS   = tersoff.$(SYS).o 
FHEADER = 

$(PROG): $(FOBJS) 
	$(FC) $(FFLAGS) -o $@ $(FOBJS) $(LINK.$(SYS))

clean:
	rm -f tersoff.$(SYS).o *.$(SYS).f *~

cleanall:
	rm -f tersoff.*.o *.f *~

run:	$(PROG)
	@echo \\n ================== OUTPUT OF $(PROG) \< con ==================\\n
	@$(PROG) < con

SCREEN_OUTPUT = output
longrun: $(PROG)
	@mv $(SCREEN_OUTPUT) $(SCREEN_OUTPUT).old
	@echo start time = `date` | tee -a  $(SCREEN_OUTPUT)
	@echo \\n ================== OUTPUT OF $(PROG) \< con ==================\\n \
	| tee -a $(SCREEN_OUTPUT)
	@time nohup nice $(PROG) < con | tee -a $(SCREEN_OUTPUT); \
	echo end time = `date` | tee -a $(SCREEN_OUTPUT) &

kill:
	kill -9 `ps -e | grep $(PROG) | cut -c1-6`

tersoff.$(SYS).o:  tersoff.$(SYS).f  $(FHEADER)

.f.o:
	$(FC) $(FFLAGS) -c $<

tersoff.$(SYS).f: $(FHEADER) tersoff.F  
	$(FCPP) $(FCPPFLAG) tersoff.F > $@

help:
	@echo
	@echo The machine is at `uname -n`, of `uname -m`. 
	@echo The operating system is `uname` `uname -r`.
	@echo In order to make the program for this machine, type
	@echo \\n% "setenv SYS `uname`"\\n
	@echo and then 
	@echo \\n% make \\n 
	@echo you can also add your own flag such as
	@echo \\n% make MYFLAG=\"-D_NO_ERROR -D_NO_BAND_PLOT\" \\n
	@echo To run the program, type
	@echo \\n% make run\\n
	@if test `hostname | grep ssibm`; \
	then \
	echo \* Ames IBM RS600 users should compile on ssibm9.ssp.ameslab.gov\\n; \
	fi
