# ================================================================
# PDFFIT - Real space Rietveld refinement program            V 1.2
# ================================================================
#
# This is the Makefile for PDFFIT on platforms using a fortran
# compiler (e.g. f77, g77, f90, frt, ...)
# 
# 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)
#

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

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

# Your compiler names

F77     = g77
CC      = gcc

# Permission for installed binaries and aux files

BMOD    = 755
FMOD    = 644

# ================================================================
# 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.
# 
# Simply remove the comment signs '#' for your 
# platform and check for uncommented other platforms.
# ================================================================

# ================================================================
# LINUX Redhat 5.x, 6.x
# ================================================================

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

# ================================================================
# LINUX S.u.S.e 5.x
# ================================================================

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

# ================================================================
# SUN Sparc Workstation
# ================================================================

#CFLAGS  = -DREADLINE
#FFLAGS  = -Nl80 -C -g
#LDFLAGS = -lm -lV77
#SYSOBJ  = appl_unix.o sys_sun.o
#SYSSRC  = appl_unix.f sys_sun.f

# ================================================================
# HP/UX Workstation
# ================================================================

#CFLAGS  = -DREADLINE
#FFLAGS  = -C -O +Obb2048 +E1
#FFLAGS  = -C +E1 -g
#LDFLAGS =
#SYSOBJ  = appl_unix.o sys_hpu.o
#SYSSRC  = appl_unix.f sys_hpu.f

# ================================================================
# DEC Alpha
# ================================================================

#CFLAGS  = -DREADLINE
#FFLAGS  = -O
#LDFLAGS =
#SYSOBJ  = appl_unix.o sys_sun.o
#SYSSRC  = appl_unix.f sys_sun.f

# ================================================================
# SGI Power Challange
# ================================================================

#CFLAGS  =
#FFLAGS  = -C  -O -Olimit 3000
#LDFLAGS =
#SYSOBJ  = appl_unix.o sys_hpu.o
#SYSSRC  = appl_unix.f sys_hpu.f

# ================================================================
# SGI Workstations IRIS
# ================================================================

#CFLAGS  =
#FFLAGS  = -O3
#LDFLAGS =
#SYSOBJ  = appl_unix.o sys_sun.o
#SYSSRC  = appl_unix.f sys_sun.f

# ================================================================
# VPP300 Computer
# ================================================================

#CFLAGS  = -DREADLINE
#FFLAGS  = -Wv,-qv -Ob -X9
#LDFLAGS =
#SYSOBJ  = appl_unix.o sys_vpp.o
#SYSSRC  = appl_unix.f sys_vpp.f

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

OBJ   =	pdffit.o blockdat.o dkdo.o errlist.o help.o \
	learn.o macro.o sup.o readline.o \
	kdo.o blk_appl.o err_appl.o upd_par.o ran.o \
	metric.o fourier.o lazy.o stru.o show.o \
	pdf.o fit.o \
	$(SYSOBJ)

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

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

date.inc: 
	./makedate

clean: 
	rm -f pdffit $(OBJ) 

install: pdffit appl_pdf.hlp lib_f77.hlp
	rm -f pdffit.hlp
	cat appl_pdf.hlp lib_f77.hlp > pdffit.hlp
	cp pdffit     $(BINDIR)/
	cp pdffit.hlp $(BINDIR)/
	chmod $(BMOD) $(BINDIR)/pdffit
	chmod $(FMOD) $(BINDIR)/pdffit.hlp
	if [ ! -d "$(BINDIR)/mac/" ] ; then \
	  mkdir $(BINDIR)/mac/; chmod $(BMOD) $(BINDIR)/mac/; \
	fi
	if [ ! -d "$(BINDIR)/mac/pdffit" ] ; then \
	  mkdir -m $(BMOD) $(BINDIR)/mac/pdffit; \
	  chmod $(BMOD) $(BINDIR)/mac/pdffit;\
	fi
	cd sysmac; for i in *.mac ; do \
	  (cp $$i $(BINDIR)/mac/pdffit/; \
	   chmod $(FMOD) $(BINDIR)/mac/pdffit/$$i;) \
	done


backup: *.f sys_*cc.c read*.c *.inc *.hlp *ake* CHANGES.*
	tar -cvf pdffit.tar *.f read*.c sys_*cc.c *.inc *.hlp  \
	                       *ake* CHANGES.* sysmac/*.mac
	gzip pdffit.tar
	mv pdffit.tar.gz $(BACKDIR)

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

appl_unix.o: envir.inc prompt.inc
appl_vax.o: errlist.inc envir.inc prompt.inc
blk_appl.o: config.inc crystal.inc errlist.inc pdf.inc \
	 fit.inc envir.inc param.inc
blockdat.o: charact.inc debug.inc doloop.inc learn.inc \
	 macro.inc param.inc prompt.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
fit.o: config.inc prompt.inc crystal.inc pdf.inc \
	 fit.inc charact.inc debug.inc errlist.inc \
	 wink.inc
fourier.o: config.inc crystal.inc pdf.inc errlist.inc
help.o: prompt.inc envir.inc doact.inc macro.inc \
	 errlist.inc
kdo.o: config.inc crystal.inc pdf.inc learn.inc \
	 errlist.inc
learn.o: errlist.inc prompt.inc learn.inc
macro.o: errlist.inc envir.inc macro.inc prompt.inc \
	 charact.inc doact.inc
metric.o: config.inc crystal.inc errlist.inc wink.inc \
	 prompt.inc
pdf.o: config.inc prompt.inc crystal.inc errlist.inc \
	 debug.inc pdf.inc wink.inc fit.inc \
	 date.inc
pdffit.o: errlist.inc doact.inc learn.inc macro.inc \
	 prompt.inc wink.inc date.inc
ran.o: random.inc
show.o: config.inc crystal.inc errlist.inc prompt.inc \
	 pdf.inc fit.inc
stru.o: config.inc prompt.inc crystal.inc wink.inc \
	 errlist.inc pdf.inc charact.inc
sup.o: random.inc macro.inc doact.inc learn.inc \
	 errlist.inc prompt.inc debug.inc param.inc \
	 envir.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
upd_par.o: config.inc crystal.inc pdf.inc fit.inc \
	 errlist.inc param.inc
