# ================================================================
# DISCUS Diffuse Scattering and defect structure simulation   V3.2
# ================================================================
#
# This is the Makefile for DISCUS on platforms using g77. 
# Uncomment the compiler options etc. for your platform from
# the list below. If you platform is not listed and you succeed
# installing the program, please send us a short notice.
#
# (c) Th. Proffen    (proffen@pa.msu.edu)
#     R.B. Neder     (reinhard.neder@mail.uni-wuerzburg.de)
#

# Where to install the binary and help file and a backup location

BINDIR  = /usr/local/bin
BACKDIR = $(HOME)/backup

# Your compiler name and install program

F77     = g77
CC      = gcc
INSTALL = install -c

# ================================================================
# Here are the platform specific definitions
# If you want line editing add -DREADLINE on
# the CFLAGS line. If you have trouble with interactiv
# input, remove -DREADLINE.
# ================================================================

# ================================================================
# LINUX RedHat 5.x
# ================================================================

CFLAGS  = -w -DREADLINE
FFLAGS  = -w -O -malign-double
LDFLAGS = -lm
SYSOBJ  = appl_g77.o sys_g77.o
SYSSRC  = appl_g77.f sys_g77.f

# ================================================================
# There should be no need to change anything below this line
# ================================================================

OBJ   =	discus.o addfile.o blk_appl.o blockdat.o dkdo.o \
        err_appl.o errlist.o exit.o fourier.o graphic.o help.o kdo.o \
        lazy.o learn.o macro.o metric.o interpret.o micro.o modify.o \
        patters.o plot.o powder.o save.o show.o stack.o structur.o \
        sup.o symm.o tensors.o  thermal.o trafo.o transfrm.o \
        upd_par.o waves.o chem.o rmc.o readline.o extrmc.o mc.o \
        pdf.o sys_f2cc.o $(SYSOBJ)

discus: date.inc $(OBJ)
	$(F77) $(FFLAGS) $(LDFLAGS) -o discus $(OBJ)
	rm discus.o date.inc

date.inc: 
	makedate

clean: 
	rm -f discus $(OBJ) 

install: discus appl_dis.hlp lib_f77.hlp color.map
	rm -f discus.hlp
	cat appl_dis.hlp lib_f77.hlp > discus.hlp
	$(INSTALL) discus     $(BINDIR)/discus
	$(INSTALL) discus.hlp $(BINDIR)/discus.hlp
	$(INSTALL) color.map  $(BINDIR)/color.map

backup: *.f sys_*cc.c read*.c *.inc *.cmm *.hlp *.map *ake* c*.lah CHANGES.*
	tar -cvf discus.tar *.f read*.c sys_*cc.c *.inc *.cmm *.hlp  \
	                       *.map *ake* c*.lah CHANGES.*
	gzip discus.tar
	mv discus.tar.gz $(BACKDIR)

# ================================================================
# DO NOT DELETE THIS LINE -- make  depend  depends  on it.
# ================================================================

addfile.o: config.inc diffuse.inc errlist.inc
appl_f2c.o: envir.inc prompt.inc
appl_g77.o: envir.inc prompt.inc
appl_hpu.o: envir.inc prompt.inc
appl_sun.o: envir.inc prompt.inc
appl_vax.o: errlist.inc envir.inc prompt.inc
blk_appl.o: config.inc atom_env.inc crystal.inc crystal.cmm \
	 errlist.inc gen_add.inc microdis.inc microsta.inc \
	 molecule.inc output.inc patters.inc powder.inc \
	 plot.inc save.inc stack.inc sym_add.inc \
	 symm.inc transfrm.inc waves.inc rmc.inc \
	 pdf.inc mc.inc chem.inc diffuse.inc \
	 envir.inc param.inc
blockdat.o: charact.inc debug.inc doloop.inc learn.inc \
	 macro.inc param.inc
chem.o: config.inc crystal.inc crystal.cmm doact.inc \
	 macro.inc errlist.inc learn.inc param.inc \
	 prompt.inc chem.inc diffuse.inc atom_env.inc \
	 molecule.inc mc.inc
discus.o: errlist.inc doact.inc learn.inc macro.inc \
	 prompt.inc wink.inc date.inc
dkdo.o: doact.inc doloop.inc doexec.inc errlist.inc \
	 learn.inc macro.inc prompt.inc charact.inc \
	 random.inc wink.inc
err_appl.o: errlist.inc
errlist.o: errlist.inc prompt.inc
extrmc.o: config.inc crystal.inc crystal.cmm errlist.inc \
	 random.inc chem.inc rmc.inc
fourier.o: config.inc crystal.inc crystal.cmm doact.inc \
	 learn.inc macro.inc output.inc diffuse.inc \
	 prompt.inc errlist.inc random.inc
graphic.o: config.inc doact.inc errlist.inc learn.inc \
	 macro.inc output.inc prompt.inc diffuse.inc \
	 envir.inc random.inc patters.inc
help.o: prompt.inc envir.inc doact.inc macro.inc \
	 errlist.inc
kdo.o: learn.inc errlist.inc inverse.inc
learn.o: errlist.inc prompt.inc learn.inc
macro.o: errlist.inc macro.inc prompt.inc charact.inc \
	 doact.inc
mc.o: config.inc crystal.inc crystal.cmm doact.inc \
	 macro.inc errlist.inc learn.inc param.inc \
	 prompt.inc mc.inc chem.inc molecule.inc \
	 random.inc
metric.o: config.inc crystal.inc crystal.cmm errlist.inc \
	 wink.inc param.inc
micro.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc microdis.inc \
	 prompt.inc micro.inc wink.inc random.inc
modify.o: config.inc crystal.inc crystal.cmm random.inc \
	 molecule.inc errlist.inc charact.inc atom_env.inc \
	 param.inc microsta.inc
patters.o: config.inc crystal.inc crystal.cmm doact.inc \
	 intens.inc inverse.inc learn.inc macro.inc \
	 output.inc patters.inc prompt.inc diffuse.inc \
	 errlist.inc recipro.inc
pdf.o: config.inc crystal.inc crystal.cmm doact.inc \
	 macro.inc errlist.inc learn.inc param.inc \
	 prompt.inc chem.inc pdf.inc rmc.inc \
	 debug.inc diffuse.inc random.inc molecule.inc \
	 atom_env.inc wink.inc
plot.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc plot.inc \
	 prompt.inc microsta.inc molecule.inc microdis.inc
powder.o: config.inc crystal.inc crystal.cmm doact.inc \
	 diffuse.inc errlist.inc learn.inc macro.inc \
	 prompt.inc powder.inc wink.inc output.inc
rmc.o: config.inc crystal.inc crystal.cmm random.inc \
	 doact.inc macro.inc errlist.inc learn.inc \
	 param.inc prompt.inc molecule.inc rmc.inc \
	 diffuse.inc chem.inc debug.inc atom_env.inc \
	 generate.inc
save.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc prompt.inc \
	 save.inc microsta.inc gen_add.inc microdis.inc \
	 molecule.inc sym_add.inc
show.o: config.inc crystal.inc crystal.cmm errlist.inc \
	 param.inc macro.inc envir.inc molecule.inc \
	 diffuse.inc
stack.o: config.inc crystal.inc crystal.cmm diffuse.inc \
	 doact.inc errlist.inc learn.inc macro.inc \
	 prompt.inc stack.inc microsta.inc param.inc \
	 random.inc symm.inc
structur.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc molecule.inc \
	 prompt.inc save.inc crystal2.inc gen_add.inc \
	 sym_add.inc generate.inc crystal3.inc recipro.inc
sup.o: random.inc macro.inc doact.inc learn.inc \
	 errlist.inc prompt.inc param.inc debug.inc
symm.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc molecule.inc \
	 prompt.inc symm.inc microsta.inc microdis.inc \
	 param.inc
sys_f2c.o: wink.inc errlist.inc envir.inc
sys_f90.o: wink.inc
sys_g77.o: wink.inc errlist.inc envir.inc
sys_hpu.o: errlist.inc envir.inc
sys_sun.o: errlist.inc envir.inc
sys_vax.o: errlist.inc envir.inc
sys_vpp.o: errlist.inc envir.inc wink.inc
tensors.o: errlist.inc wink.inc
thermal.o: config.inc crystal.inc crystal.cmm molecule.inc \
	 errlist.inc random.inc
transfrm.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc learn.inc macro.inc prompt.inc \
	 transfrm.inc microsta.inc microdis.inc param.inc
upd_par.o: config.inc crystal.inc crystal.cmm atom_env.inc \
	 errlist.inc microdis.inc molecule.inc param.inc
waves.o: config.inc crystal.inc crystal.cmm doact.inc \
	 errlist.inc microsta.inc learn.inc macro.inc \
	 prompt.inc molecule.inc waves.inc wink.inc \
	 symm.inc random.inc microdis.inc charact.inc
