# This file was generated by configure -- don't edit it!

TMPDIR = 
top_srcdir = /home/pjx/CCP4_REMOTE/ccp4
libdir = /home/pjx/CCP4_REMOTE/ccp4/lib
rxdir = 
ccifdir = lib/ccif
lapackdir = 
clipperdir = lib/clipper
ssmdir = lib/ssm
fftwdir = lib/fftw
cctbxdir = lib/cctbx
cctbxopts = 
phaserdir = src/phaser
phaseropts = 
bindir = /home/pjx/CCP4_REMOTE/ccp4/bin
RANLIB = ranlib
FC     = g77 -m64
FOPTIM = -O
COPTIM = -O
XFFLAGS = -fno-second-underscore -fno-globals -fno-automatic -fPIC
XCFLAGS = -DG77 -DPROTOTYPE -DHAVE_G2C_H -fPIC
FFLAGS = $(FOPTIM) $(XFFLAGS)
CXXOPTIM = -O
XCXXFLAGS =   -fPIC
CXXFLAGS = $(CXXOPTIM) $(XCXXFLAGS)
CXX   = g++
XCIF_LIB = -L/home/pjx/CCP4_REMOTE/ccp4/lib/ccif -lccif
CIFLIBTARGETS=cciflib
CIFLIBOBJS=$(LF)(cciflib.o)
CIFTARGETS=cif2mtz
PDB_EXTRACT_SUITE=pdb_extract_suite
XLAPACK_LIB = -L/usr/lib64 -llapack
XLDFLAGS = -Wl,-rpath,/home/pjx/CCP4_REMOTE/ccp4/lib -lm
LDCFLAGS = -L$(LIB_DIR) -lccp4c -lmmdb $(XCIF_LIB) $(XLAPACK_LIB) $(CXX_LIBS) $(XLDFLAGS) $(F_LIBS)
LDFLAGS = -L$(LIB_DIR) -lccp4f -lccp4c -lmmdb $(XCIF_LIB) $(XLAPACK_LIB) $(CXX_LIBS) $(XLDFLAGS)
LDCXXFLAGS = -L$(LIB_DIR) -lccp4c -lmmdb $(XLDFLAGS) $(XCIF_LIB) $(XLAPACK_LIB) $(F_LIBS)
F_LIBS = -lg2c
C_LIBS = 
CXX_LIBS = -lstdc++
CFLAGS = $(COPTIM) $(XCFLAGS)
XDL_LIB = -L/home/pjx/CCP4_REMOTE/ccp4/lib -lxdl_view
XWIN_LIB = $(XDL_LIB) -L/usr/X11R6/lib64 -lXt -lSM -lX11 -lICE
CC     = gcc
LNS    = ln -s
M4     = m4 -D_g77=1
SETFLAGS = sftools_FLAGS='-fno-second-underscore -fno-globals -fno-automatic -O'                       arp_waters_FLAGS='-fno-second-underscore -fno-globals -fno-automatic -O -fforce-mem'                       mlphare_FLAGS='-fno-second-underscore -fno-globals -fno-automatic -O -fno-move-all-movables'                       stereo_FLAGS='-fno-second-underscore -fno-globals -fno-automatic -O -fno-move-all-movables' 
F      = f
INSTALL_PROGRAM = cp
INSTALL_DATA = cp
TIDY   = 
XMKMF  = xmkmf
MAKE = make

# Makefile tail for CCP4 programs.  This will be modified by configure.

# $Id: Makefile.in,v 1.176 2006/05/02 12:47:19 pjx Exp $

# variables which should be set by configure: top_srcdir, CC, CFLAGS,
# FC, FFLAGS, F, LNS, SETFLAGS, EVAL, LDFLAGS, INSTALL_PROGRAM

SHELL       = /bin/sh
srcdir	    = /home/pjx/CCP4_DEVEL/SFCHECK_HY/ccp4/src
incdir      = $(top_srcdir)/lib/src
LIB_DIR     = $(top_srcdir)/lib#     where to pick up libccp4.a
AR          = ar r

fsplit_dir  = $(top_srcdir)/lib/src

# The following is for the benefit of Alliant, which is the only
# system I know where you can't use -L to specify the load path.
# (This works since make variables are defined in the environment in
# Alliant (GNU) make.)  We'd like to use $(LIB_DIR) instead of `../lib/src'
# here, but can't since that would require `:=' instead of `=' and
# confuse other makes. 
LD_PATH = ../lib/src /lib /usr/lib /usr/local/lib

# On some systems (Concentrix, for instance), for files with trailing
# comments, fsplit generates a file containing only comments and the
# compiler barfs on it.  Here's an abbreviation for deleting any such
# files generated, assuming two possible forms of the name generated:
# caveat naming routines!  Always use this after fsplit for safety...
RMEMPTY = rm -f ZZZ*.f zzz*.f

# targets built from .f sources: (NB update the dependencies at the
# end if adding to this list)
FTARGETS = \
abs acorn act almn amore areaimol arp_waters baverage bones2pdb bplot bulking cad cavenv contact \
coordconv crossec detwin distang dtrek2mtz ecalc f2mtz freerflag fft fhscal findncs fsearch \
gensym geomcalc getax hgen hklplot icoefl lsqkab makedict mama2ccp4 map2fs mapdump mapsig maptona4 \
matthews_coef mtz2various mtzMADmod mtzdump mtzmnf mtztona4 mtzutils na4tomtz \
npo oasis omit overlapmap pdbset peakmax phistats polarrfn polypose prep_bulk prepform prepshel \
professs rantan rebatch reindex revise rfcorr rotamer rotmat rsearch \
rstats rwcontents sapi scaleit scalepack2mtz sfall sigmaa sortmtz sortwater stgrid stnet surface tffc tracer \
truncate t_shift unique vecref vectors volume watertidy watncs watpeak \
wilson $(CIFTARGETS)

# these live in subdirectories and have more than one dependency:
OTHERS = rsps anglen secstr proclean pplot gfac2pdb tplot mplot probplot rmsdev nb \
         scala dm dmmulti stereo mapmask maprot molrep ncsmask rdent restrain \
         sfcheck sftools tlsanl tlsextract topp toplist dyndom sc combat mlphare fffear ffjoin \
         anisoanl refmac5 libcheck beast dtrek2scala

# targets built from .c sources:
CSIMPLE = pltdev binsort
CTARGETS = $(CSIMPLE) pdbhtf solomon \
	mtzdiff mapdiff generate_xml_datasetinfo_from_mtz mtzcat mtz2cif
CXXTARGETS = pdbcur ncont coord_format pdb_merge cif2xml cross_validate pdbdiff bp3 chainsaw

JAVATARGETS = JLogCanvas.class JLogGraph.class AstexViewer.jar symmetry.properties

PDB_EXTRACT_TARGETS = pdb_extract extract pdb_extract_sf

all : $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS) $(PDB_EXTRACT_SUITE) ccp4mapwish phaser

.PHONY : all install instsome clean realclean distclean

install : all
# pwd necessary if INSTALL_PROGRAM is ln -s
# || true avoids error return, but isn't good enough in convex make, hence -
	-for i in $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS) $(JAVATARGETS); do \
	  test -s $$i  &&  $(INSTALL_PROGRAM) `pwd`/$$i $(bindir)/$$i || true ;\
	done
	for i in $(PDB_EXTRACT_TARGETS); do \
	  test -s harvest_app_/pdb_extract/bin/$$i  &&  $(INSTALL_PROGRAM) harvest_app_/pdb_extract/bin/$$i $(bindir)/$$i || true ;\
	done
	if test -f ccp4mapwish_/Makefile; then \
	   cd ccp4mapwish_; $(MAKE) -i $(MFLAGS) $@; \
	else true; fi

# install any available programs without requiring them all to be built
instsome :
	-for i in $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS) $(JAVATARGETS); do \
	  test -s $$i  &&  $(INSTALL_PROGRAM) `pwd`/$$i $(bindir)/$$i || true; \
	done

$(CSIMPLE) :
# the -I is only for binsort
	@$(SETFLAGS) xxx=1; \
	rm -f $@; \
	echo $(CC) $${$@_FLAGS-"$(CFLAGS)"} -I$(srcdir)/../lib/src -o $@ $(srcdir)/$@.c -lm $(XLDFLAGS);\
	eval $(CC) $${$@_FLAGS-"$(CFLAGS)"} -I$(srcdir)/../lib/src -o $@ $(srcdir)/$@.c -lm $(XLDFLAGS)

$(FTARGETS) :
#	The next line may set shell variables of the form foo_FLAGS
#	appropriate as compilation flags for program foo, to be used
#	instead of the normal FFLAGS.  SETFLAGS must be used in a
#	different statement to the one where the variables it sets are
#	used; the pwd avoids lossage if SETFLAGS is null and we want the
#	cwd info for easier debugging and this saves doing it twice.
#	The `xxx=1' is to avoid an empty command.
#	The line is echoed so you can see what substitutions were
#	actually made -- keep the echo and eval lines consistent!
#	Fixme: find a better way of doing this!
#	Add the rm to avoid problems on Irix (at least) whereby after an
#	empty-targets when someone else recompiles, the executable doesn't
#	have execute permission
	@$(SETFLAGS) xxx=1; \
	  rm -f $@; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $? $(LDFLAGS) ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $? $(LDFLAGS)

clean : ; -rm -f core *.o *~ a.out *.orig *.rej *.il
	cd harvest_app_/pdb_extract/ ; make clean
	cd $(srcdir)/ccp4mapwish_/ ; rm -f *.o

realclean : clean
	-rm -f $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS) ps.o $(dmobjs) rspslib.a rspslib.dir/*.o
	-rm -rf rspslib.dir
	cd $(srcdir)/ccp4mapwish_/ ; rm -f libccp4map.a libccp4map.so ccp4mapwish

distclean : realclean ; -rm -f Makefile
	-rm -f ccp4mapwish_/Makefile

uninstall :
	for i in $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS) $(JAVATARGETS) $(PDB_EXTRACT_TARGETS); do \
	  rm -f $(bindir)/$$i ;\
	done

# this leaves empty, non executable files in place of the targets which have
# been built, saving space in the build directory, but enabling re-building
# contingent on the empty files being out-of-date with respect to their
# dependencies.  install mustn't shift the empty files!
empty-targets :
	-for i in $(CTARGETS) $(CXXTARGETS) $(FTARGETS) $(OTHERS); do \
	  test -s $$i && rm -f $$i && touch $$i || true ;\
	done

# Here are the things which have their own source directories at present
# Where include files are used, we have to do the compilation in the source
# directory, since we can't necessarily dictate the path for fortran includes.
# In case you're tempted to do the compilation and linking together, note
# that it might attempt to create a .o in the source directory which we don't
# want to touch -- it might not even be writeable.  Compilation and linking
# are separated to do the linking in the build directory (for which the
# $(LDFLAGS) are appropriate).

### ccp4mapwish

# This is special and has its own Makefile
# Build with -i because it might go wrong and we don't want to
# break the build
ccp4mapwishdir = $(srcdir)/ccp4mapwish_
ccp4mapwish :
	if test -f $(ccp4mapwishdir)/Makefile; then cd $(ccp4mapwishdir); \
	   $(MAKE) -i $(MFLAGS) ; else true; fi

### phaser

phaser : FORCE
	if test -n "$(phaserdir)"; then cd $(top_srcdir)/$(phaserdir); \
	./ccp4_build "$(phaseropts)"; else true; fi

### dm

dmdir = $(srcdir)/dm_
dmobjs = dmlib.o phcomb.o denmod.o fftkdc.o maptree.o dmaver.o mathkdc.o\
         xtlkdc.o dmmain.o freemask.o ncsautomask.o gamma.o dmharvest.o
dm :	$(dmobjs)
	rm -f dm; eval $(FC) $${dm_FLAGS-"$(FFLAGS)"} -o dm $(dmobjs) $(LDFLAGS)
$(dmobjs):			# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(dmdir); \
	echo $(FC) $${dm_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dmdir)/`basename $@ .o`.f ;\
	eval $(FC) $${dm_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dmdir)/`basename $@ .o`.f

### dmmulti

dmmultidir = $(srcdir)/dmmulti_
dmmultiobjs = dmmulti.o dmmulti_dmlib.o dmmulti_denmod.o dmmulti_dmaver.o \
              dmmulti_maptree.o dmmulti_phcomb.o dmmulti_fftkdc.o\
              dmmulti_xtlkdc.o dmmulti_mathkdc.o
dmmulti : $(dmmultiobjs)
	rm -f dmmulti ; eval $(FC) $${dmmulti_FLAGS-"$(FFLAGS)"} -o dmmulti $(dmmultiobjs) $(LDFLAGS) 
$(dmmultiobjs) :
	@$(SETFLAGS) pwd=`pwd` ; rm -f dmmulti; \
	cd $(dmmultidir) ; \
	echo $(FC) $${dmmulti_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dmmultidir)/`basename $@ .o`.f ; \
	eval $(FC) $${dmmulti_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dmmultidir)/`basename $@ .o`.f 

### dtrek2scala

dtrek2scaladir = $(srcdir)/dtrek2scala_
dtrek2scalaobjs = abblk.o clcalc.o gn3cmp.o mkordtr.o opndtr.o prtgrp.o rtmats.o zeroia.o\
		 bemvec.o clsopf.o hdropf.o mktrdtr.o ordr3.o rdrefl.o sinv.o zerora.o\
		 bmatrx.o dcosfd.o inihdr.o outhdr.o readhd.o umatcl.o zerorm.o\
		 camatc.o dtrek2scala.o mfsd.o moveit.o plabsn.o redtre.o vnorm.o\
		 chkhdkey.o getreu.o mkbmat.o open_file.o prcdtr.o rotmat.o wrmatx.o

dtrek2scala :  $(dtrek2scalaobjs)
	rm -f dtrek2scala; eval $(FC) $${dtrek2scala_FLAGS-"$(FFLAGS)"} -o dtrek2scala $(dtrek2scalaobjs) $(LDFLAGS)
$(dtrek2scalaobjs):			# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(dtrek2scaladir); \
	echo $(FC) $${dtrek2scala_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dtrek2scaladir)/`basename $@ .o`.f ;\
	eval $(FC) $${dtrek2scala_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(dtrek2scaladir)/`basename $@ .o`.f


### fffear

fffeardir = $(srcdir)/fffear_
fffearobjs = fffear.o searcher.o srchfft.o filter.o fffear_dmlib.o fffear_fftkdc.o \
	     fffear_xtlkdc.o fffear_mathkdc.o
fffear : $(fffearobjs)
	rm -f fffear ; eval $(FC) $${fffear_FLAGS-"$(FFLAGS)"} -o fffear $(fffearobjs) $(LDFLAGS)
$(fffearobjs):			# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(fffeardir); \
	echo $(FC) $${fffear_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(fffeardir)/`basename $@ .o`.f ;\
	eval $(FC) $${fffear_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(fffeardir)/`basename $@ .o`.f

### refmac5 and libcheck

refmacdir = $(srcdir)/refmac5_
reflibobjs =  make_CIF.o make_subr.o make_lib.o make_crd.o make_new.o make_PDB.o
refmac5objs = refmac_newdic.o solvent_contr_mask.o hkon_secder_tch.o \
              fast_hessian_tabulation.o subvag.o lsq_symm_atoms.o \
              oppro_tor1.o rcard_tor1.o subcf_scale1.o ncs_const.o \
              subag_scale_hessian.o extra_eigen.o rigid_body_newdic.o \
              aniso_ref_eigen.o linalgebra.o make_subr_refmac.o \
              tls_newdic_non.o vdw_symmetry.o make_rst.o makecif.o \
              make_refmac_dummy.o ls_scaling_double.o interpolate_mod.o \
              rharvest.o newentry_idealise.o ml_scaling_double.o \
              gaussian_int.o subnumrec.o
libcheckobjs = main_libcheck.o make_subr_2.o libcheck.o emin.o \
               make_unix_ccp4.o libcheck_min.o
$(reflibobjs) $(refmac5objs):		# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(refmacdir); \
	echo $(FC) $${refmac5_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(refmacdir)/`basename $@ .o`.f ;\
	eval $(FC) $${refmac5_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(refmacdir)/`basename $@ .o`.f

refmac5 :  $(reflibobjs) $(refmac5objs)
	rm -f refmac5; eval $(FC) $${refmac5_FLAGS-"$(FFLAGS)"} -o refmac5 $(reflibobjs) $(refmac5objs) $(LDFLAGS)

libcheck :  $(reflibobjs) $(libcheckobjs)
	rm -f libcheck; eval $(FC) $${libcheck_FLAGS-"$(FFLAGS)"} -o libcheck $(reflibobjs) $(libcheckobjs) $(LDFLAGS)

$(libcheckobjs):           # dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(refmacdir); \
	echo $(FC) $${libcheck_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(refmacdir)/`basename $@ .o`.f ;\
	eval $(FC) $${libcheck_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(refmacdir)/`basename $@ .o`.f

### molrep

molrepdir = $(srcdir)/molrep_
molrepobjs = main_molrep_mtz.o molrep.o molrep1.o molrep2.o molrep3.o \
             molrep_prog.o molrep_prog1.o molrep_prog2.o molrep_subr.o \
             molrep_sym_ccp4.o molrep_unix_ccp4.o 
molrep :  $(molrepobjs)
	rm -f molrep; eval $(FC) $${molrep_FLAGS-"$(FFLAGS)"} -o molrep $(molrepobjs) $(LDFLAGS)
$(molrepobjs):                        # dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(molrepdir); \
	echo $(FC) $${molrep_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(molrepdir)/`basename $@ .o`.f ;\
	eval $(FC) $${molrep_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(molrepdir)/`basename $@ .o`.f

### beast

beastdir = $(srcdir)/beast_
beast : beast.o kdfftsf.o
	rm -f beast; \
	echo $(FC) $${beast_FLAGS-"$(FFLAGS)"} -o beast beast.o kdfftsf.o $(LDFLAGS) ; \
	eval $(FC) $${beast_FLAGS-"$(FFLAGS)"} -o beast beast.o kdfftsf.o $(LDFLAGS)
beast.o : $(beastdir)/beast.f $(beastdir)/sizes.fh $(beastdir)/heaps.fh \
	$(beastdir)/controlparams.fh $(beastdir)/molinfo.fh \
	$(beastdir)/trig.fh $(beastdir)/tables.fh
	pwd=`pwd` ; cd $(beastdir); \
	echo $(FC) $${beast_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ beast.f ; \
	eval $(FC) $${beast_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ beast.f
kdfftsf.o : $(beastdir)/kdfftsf.f $(beastdir)/sizes.fh $(beastdir)/heaps.fh \
	$(beastdir)/molinfo.fh $(beastdir)/kdfftsf.fh
	pwd=`pwd` ; cd $(beastdir); \
	echo $(FC) $${beast_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ kdfftsf.f ; \
	eval $(FC) $${beast_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ kdfftsf.f

### sfcheck

sfcheckdir = $(srcdir)/sfcheck_
sfcheckobjs = main_sfcheck_ccp4.o sfcheck.o sfch_prog.o sfch_graph_1.o \
        sfch_graph_2.o sfch_graph_3.o sfch_graph_4.o sfch_graph_5.o \
        sfch_subr.o sfch_unix_ccp4.o sfch_sym_ccp4.o
sfcheck :  $(sfcheckobjs)
	rm -f sfcheck; eval $(FC) $${sfcheck_FLAGS-"$(FFLAGS)"} -o sfcheck $(sfcheckobjs) $(LDFLAGS)
$(sfcheckobjs):			# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(sfcheckdir); \
	echo $(FC) $${sfcheck_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(sfcheckdir)/`basename $@ .o`.f ;\
	eval $(FC) $${sfcheck_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(sfcheckdir)/`basename $@ .o`.f

### topp

toppdir = $(srcdir)/topp_
toppobjs = topp.o autosnd.o
topp :  $(toppobjs)
	rm -f topp; eval $(FC) $${topp_FLAGS-"$(FFLAGS)"} -o topp $(toppobjs) $(LDFLAGS)
$(toppobjs):			# dependencies at end
	@$(SETFLAGS) pwd=`pwd` ; \
	cd $(toppdir); \
	echo $(FC) $${topp_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(toppdir)/`basename $@ .o`.f ;\
	eval $(FC) $${topp_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@ $(toppdir)/`basename $@ .o`.f

### toplist

toplist: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(toppdir); \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(toppdir)/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(toppdir)/$@.f
	eval $(FC) $${toplist_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS) && rm -f $@.o

### pdbhtf

pdbhtf: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(toppdir); \
	  echo $(CC) $${$@_FLAGS-"$(CFLAGS)"} -c -o $$pwd/$@.o $(toppdir)/$@.c ;\
	  eval $(CC) $${$@_FLAGS-"$(CFLAGS)"} -c -o $$pwd/$@.o $(toppdir)/$@.c
	eval $(CC) $${pdbhtf_FLAGS-"$(CFLAGS)"} -o $@ $@.o $(XLDFLAGS) && rm -f $@.o

### restrain

restraindir = $(srcdir)/restrain_

restrain tlsanl rdent: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(restraindir); \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(restraindir)/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(restraindir)/$@.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS) && rm -f $@.o


tlsextract: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(restraindir); \
	  echo $(CC) $${$@_FLAGS-"$(CFLAGS)"} -I$(incdir) -c -o $$pwd/$@.o $(restraindir)/$@.c ;\
	  eval $(CC) $${$@_FLAGS-"$(CFLAGS)"} -I$(incdir) -c -o $$pwd/$@.o $(restraindir)/$@.c
	eval $(CC) $${$@_FLAGS-"$(CFLAGS)"} -o $@ $@.o $(LDCFLAGS) && rm -f $@.o

### sftools

sftoolsdir = $(srcdir)/sftools_

sftools: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(sftoolsdir); \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(sftoolsdir)/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o $(sftoolsdir)/$@.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS) && rm -f $@.o

### rsps

rspsdir = $(srcdir)/rsps_
rsps : $(rspsdir)/rsps.f rspslib.a \
       $(rspsdir)/rspsctl.inc $(rspsdir)/rspsdim.inc $(rspsdir)/rspsgrd.inc \
       $(rspsdir)/rspspos.inc $(rspsdir)/rspsdef.inc \
       $(rspsdir)/rspsfil.inc $(rspsdir)/rspsmap.inc $(rspsdir)/rspssym.inc
	@$(SETFLAGS) pwd=`pwd` ; rm -f rsps; \
	  cd $(rspsdir); \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/rsps.o $(rspsdir)/rsps.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/rsps.o $(rspsdir)/rsps.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o rsps rsps.o rspslib.dir/*.o $(LDFLAGS) && rm -f $@.o
rspslib.a : $(rspsdir)/errlib.f $(rspsdir)/forlib.f $(rspsdir)/hlptxt.f \
            $(rspsdir)/veclib.f $(rspsdir)/rspsfil.inc
	-rm -rf rspslib.dir; mkdir rspslib.dir
	cd rspslib.dir && \
	  $(LNS) $(rspsdir)/rspsfil.inc . && \
	  for i in errlib veclib forlib hlptxt; \
	  do $(fsplit_dir)/fsplit $(rspsdir)/$$i.f && $(RMEMPTY); done && \
	  eval $(FC) -c $${rsplib_FLAGS-"$(FFLAGS)"} *.f && $(AR) ../$@ *.o
	$(RANLIB) $@

### scala, mapmask, maprot, ncsmask, combat

scala mapmask maprot ncsmask combat sc dyndom: # dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd $(srcdir)/$@_; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS) && rm -f $@.o

### procheck

procheck : pplot gfac2pdb probplot tplot mplot anglen secstr proclean nb rmsdev
	@echo; echo
	@echo "***Please see the procheck licence, $$CPROG/procheck/confid.doc"
	@echo; echo
ps.o :	$(srcdir)/procheck/ps.f
	$(FC) $(FFLAGS) -c -o ps.o $(srcdir)/procheck/ps.f
pplot gfac2pdb tplot mplot :		# dependencies below (including ps.o)
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd  $(srcdir)/procheck; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o ps.o $(LDFLAGS) && rm -f $@.o
# original name (`bplot') clashes with prog in unsupported/src
probplot :		# dependencies below (including ps.o)
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@; \
	  cd  $(srcdir)/procheck; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/probplot.o `pwd`/bplot.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/probplot.o `pwd`/bplot.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o ps.o $(LDFLAGS) && rm -f $@.o
anglen secstr rmsdev :	# dependencies below
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@ ; \
	  cd  $(srcdir)/procheck; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/$@.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS)
proclean :	
	@$(SETFLAGS) pwd=`pwd` ; rm -f $@ ; \
	  cd  $(srcdir)/procheck; \
	  echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/clean.f ;\
	  eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -c -o $$pwd/$@.o `pwd`/clean.f
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $@.o $(LDFLAGS)
nb: 
	rm -f $@; eval $(CC) $${$@_FLAGS-"$(CFLAGS)"} -o $@ $(srcdir)/procheck/$@.c -lm

### stereo

STEREODEPS = $(srcdir)/stereo_/astereo.f $(srcdir)/stereo_/central.f \
	$(srcdir)/stereo_/helix.f $(srcdir)/stereo_/lineq1.f \
	 $(srcdir)/stereo_/refine.f
stereo : $(STEREODEPS)
	@$(SETFLAGS) ; \
	echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(STEREODEPS) $(LDFLAGS);\
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(STEREODEPS) $(LDFLAGS)
	for i in $(STEREODEPS); do rm -f `basename $$i .f`.o; done

### solomon

solomondir = $(srcdir)/solomon_
solomonobjs = cmap_io.o solomon.o matrix.o cmap_calc.o cmsk_io.o
solomon :	$(solomonobjs)
	@$(SETFLAGS); rm -f solomon; eval $(CC) $${solomon_FLAGS-"$(CFLAGS)"} -o solomon $(solomonobjs) $(LDCFLAGS)
cmap_io.o solomon.o matrix.o cmap_calc.o cmsk_io.o : # dependencies at end
	@$(SETFLAGS); eval $(CC) -I$(solomondir) -I$(incdir) $${solomon_FLAGS-"$(CFLAGS)"} -c -o $@ $(solomondir)/`basename $@ .o`.c

### mtz2cif

mtz2cifdir = $(srcdir)/mtz2cif_
mtz2cifobjs = mtz2cif.o mtz2cif_lib.o
mtz2cif : $(mtz2cifobjs)
	@$(SETFLAGS); rm -f mtz2cif; eval $(CC) $${mtz2cif_FLAGS-"$(CFLAGS)"} \
	-o mtz2cif $(mtz2cifobjs) $(LDCFLAGS)
$(mtz2cifobjs) : # dependencies at end
	@$(SETFLAGS); eval $(CC) -I$(mtz2cifdir) -I$(incdir) \
	$${mtz2cif_FLAGS-"$(CFLAGS)"} -c -o $@ $(mtz2cifdir)/`basename $@ .o`.c

### pdbcur ncont coord_format pdb_merge chainsaw

mmdb_appdir = $(srcdir)/mmdb_app_
pdbcurobjs = pdbcur.o pcur_funcs.o
ncontobjs = ncont.o
coord_formatobjs = coord_format.o
pdb_mergeobjs = pdb_merge.o
chainsawobjs = chainsaw.o
pdbcur : $(pdbcurobjs)
	@$(SETFLAGS) ; rm -f pdbcur; eval $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o pdbcur $(pdbcurobjs) $(LDCXXFLAGS)
ncont : $(ncontobjs)
	@$(SETFLAGS) ; rm -f ncont; eval $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o ncont $(ncontobjs) $(LDCXXFLAGS)
coord_format : $(coord_formatobjs)
	@$(SETFLAGS) xxx=1 ; \
	rm -f coord_format; \
	echo $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o coord_format $(coord_formatobjs) $(LDCXXFLAGS) ; \
	eval $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o coord_format $(coord_formatobjs) $(LDCXXFLAGS)
pdb_merge : $(pdb_mergeobjs)
	@$(SETFLAGS) xxx=1 ; \
	rm -f pdb_merge; \
	echo $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o pdb_merge $(pdb_mergeobjs) $(LDCXXFLAGS) ; \
	eval $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o pdb_merge $(pdb_mergeobjs) $(LDCXXFLAGS)
chainsaw : $(chainsawobjs)
	@$(SETFLAGS) xxx=1 ; \
	rm -f chainsaw; \
	echo $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o chainsaw $(chainsawobjs) $(LDCXXFLAGS) ; \
	eval $(CXX) $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -o chainsaw $(chainsawobjs) $(LDCXXFLAGS)
pdbcur.o pcur_funcs.o ncont.o coord_format.o pdb_merge.o chainsaw.o: # dependencies at end
	@$(SETFLAGS) xxx=1 ; \
	echo $(CXX) -I$(mmdb_appdir) -I$(incdir) -I$(incdir)/mmdb $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -c -o $@ $(mmdb_appdir)/`basename $@ .o`.cpp ; 
	eval $(CXX) -I$(mmdb_appdir) -I$(incdir) -I$(incdir)/mmdb $${mmdb_app_FLAGS-"$(CXXFLAGS)"} -c -o $@ $(mmdb_appdir)/`basename $@ .o`.cpp

### bp3

bp3dir = $(srcdir)/bp3_
bp3objs = bp3input.o bp3main.o bp3misc.o crystal.o gauss.o likelihood.o minimizer.o mir.o model.o sad.o sfdata.o
bp3 : $(bp3objs)
	@$(SETFLAGS) xxx=1 ; \
	rm -f bp3; \
	echo $(CXX) $${bp3_FLAGS-"$(CXXFLAGS)"} -o bp3 $(bp3objs) $(LDCXXFLAGS) $(XLAPACK_LIB) $(bp3objs) ; \
	eval $(CXX) $${bp3_FLAGS-"$(CXXFLAGS)"} -o bp3 $(bp3objs) $(LDCXXFLAGS) $(XLAPACK_LIB)
$(bp3objs) : # dependencies at end
	@$(SETFLAGS) xxx=1 ; \
	echo $(CXX) -I$(bp3dir) -I$(incdir) -I$(incdir)/mmdb $${bp3_FLAGS-"$(CXXFLAGS)"} -c -o $@ $(bp3dir)/`basename $@ .o`.C ; \
	eval $(CXX) -I$(bp3dir) -I$(incdir) -I$(incdir)/mmdb $${bp3_FLAGS-"$(CXXFLAGS)"} -c -o $@ $(bp3dir)/`basename $@ .o`.C

### cif2xml cross_validate pdb_extract suite

harvest_appdir = $(srcdir)/harvest_app_
cif2xmlobjs = cif2xml.o 
cross_validateobjs = cross_validate.o
cif2xml : $(cif2xmlobjs)
	@$(SETFLAGS); rm -f cif2xml; eval $(CXX) $${harvest_app_FLAGS-"$(CXXFLAGS)"} -o cif2xml $(cif2xmlobjs) $(LDCXXFLAGS)
cross_validate : $(cross_validateobjs)
	@$(SETFLAGS); rm -f cross_validate; eval $(CXX) $${harvest_app_FLAGS-"$(CXXFLAGS)"} -o cross_validate $(cross_validateobjs) $(LDCXXFLAGS)
cif2xml.o cross_validate.o : # dependencies at end
	@$(SETFLAGS); eval $(CXX) -I$(harvest_appdir) -I$(incdir) -I$(incdir)/mmdb $${harvest_app_FLAGS-"$(CXXFLAGS)"} -c -o $@ $(harvest_appdir)/`basename $@ .o`.cpp

pdb_extractdir = $(srcdir)/harvest_app_/pdb_extract
pdb_extract_suite :
	cd $(pdb_extractdir); make compile;

### Developers tools: mtzdiff, mapdiff, pdbdiff

dev_toolsdir = $(srcdir)/dev_tools_
dev_tools_ctargets = mtzdiff mapdiff
dev_tools_cxxtargets = pdbdiff
$(dev_tools_ctargets) :
	@$(SETFLAGS) xxx=1; \
	  rm -f $@; \
	  echo $(CC) $${dev_tools_FLAGS-"$(CFLAGS)"} -o $@ $(dev_toolsdir)/$@.c -I$(incdir) $(LDCFLAGS) ;\
	  eval $(CC) $${dev_tools_FLAGS-"$(CFLAGS)"} -o $@ $(dev_toolsdir)/$@.c -I$(incdir) $(LDCFLAGS)

$(dev_tools_cxxtargets) :
	@$(SETFLAGS) xxx=1; \
	  rm -f $@; \
	  echo $(CXX) $${dev_tools_FLAGS-"$(CXXFLAGS)"} -o $@ $(dev_toolsdir)/$@.cpp -I$(incdir) -I$(incdir)/mmdb $(LDCXXFLAGS) ;\
	  eval $(CXX) $${dev_tools_FLAGS-"$(CXXFLAGS)"} -o $@ $(dev_toolsdir)/$@.cpp -I$(incdir) -I$(incdir)/mmdb $(LDCXXFLAGS)

### Jiffies for use in Crank: generate_xml_datasetinfo_from_mtz mtzcat

crank_appdir = $(srcdir)/crank_app_
crank_app_ctargets = generate_xml_datasetinfo_from_mtz mtzcat
$(crank_app_ctargets) :
	@$(SETFLAGS) xxx=1; \
	  rm -f $@; \
	  echo $(CC) $${crank_app_FLAGS-"$(CFLAGS)"} -o $@ $(crank_appdir)/$@.c -I$(incdir) $(LDCFLAGS) ;\
	  eval $(CC) $${crank_app_FLAGS-"$(CFLAGS)"} -o $@ $(crank_appdir)/$@.c -I$(incdir) $(LDCFLAGS)

### mlphare
mlphare:
	@$(SETFLAGS) xxx=1; \
	rm -f $@; \
	echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS) ;\
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS)

### ffjoin
ffjoin:
	@$(SETFLAGS) xxx=1; \
	rm -f $@; \
	echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS) ;\
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS)

### anisoanl
anisoanl:
	@$(SETFLAGS) xxx=1; \
	rm -f $@; \
	echo $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS) ;\
	eval $(FC) $${$@_FLAGS-"$(FFLAGS)"} -o $@ $(srcdir)/$@.f $(LDFLAGS)

# there follows a tedious set of dependencies which must be kept
# up-to-date to keep the makefile straightforward enough to be portable,
# sigh...
abs:		$(srcdir)/abs.f
acorn:		$(srcdir)/acorn.f
act:		$(srcdir)/act.f
almn:		$(srcdir)/almn.f
amore:		$(srcdir)/amore.f
anisoanl:	$(srcdir)/anisoanl.f $(srcdir)/anisoanl.fh
areaimol:	$(srcdir)/areaimol.f
baverage:	$(srcdir)/baverage.f
bones2pdb:	$(srcdir)/bones2pdb.f
bplot:		$(srcdir)/bplot.f
bulking:	$(srcdir)/bulking.f
cad:		$(srcdir)/cad.f
cavenv:		$(srcdir)/cavenv.f
cif2mtz:	$(srcdir)/cif2mtz.f
contact:	$(srcdir)/contact.f
coordconv:	$(srcdir)/coordconv.f
crossec:	$(srcdir)/crossec.f
detwin: 	$(srcdir)/detwin.f
distang:	$(srcdir)/distang.f
dtrek2mtz:      $(srcdir)/dtrek2mtz.f
ecalc:		$(srcdir)/ecalc.f
f2mtz:		$(srcdir)/f2mtz.f
ffjoin:		$(srcdir)/ffjoin.f $(srcdir)/ffjoin.fh
fft:		$(srcdir)/fft.f
fhscal:		$(srcdir)/fhscal.f
findncs:	$(srcdir)/findncs.f
freerflag:	$(srcdir)/freerflag.f
fsearch:	$(srcdir)/fsearch.f
gensym:		$(srcdir)/gensym.f
geomcalc:	$(srcdir)/geomcalc.f
getax:		$(srcdir)/getax.f
hgen:		$(srcdir)/hgen.f
hklplot:	$(srcdir)/hklplot.f
icoefl:		$(srcdir)/icoefl.f
lsqkab:		$(srcdir)/lsqkab.f
makedict:       $(srcdir)/makedict.f
mama2ccp4:	$(srcdir)/mama2ccp4.f
map2fs:         $(srcdir)/map2fs.f
mapdump:	$(srcdir)/mapdump.f
mapsig:		$(srcdir)/mapsig.f
maptona4:	$(srcdir)/maptona4.f
matthews_coef:  $(srcdir)/matthews_coef.f
mlphare:	$(srcdir)/mlphare.f $(srcdir)/mlphare.fh
mtz2various:	$(srcdir)/mtz2various.f
mtzMADmod:	$(srcdir)/mtzMADmod.f
mtzdump:	$(srcdir)/mtzdump.f
mtzmnf: 	$(srcdir)/mtzmnf.f
mtztona4:	$(srcdir)/mtztona4.f
mtzutils:	$(srcdir)/mtzutils.f
na4tomtz:	$(srcdir)/na4tomtz.f
npo:		$(srcdir)/npo.f
oasis:		$(srcdir)/oasis.f
omit:		$(srcdir)/omit.f
overlapmap:	$(srcdir)/overlapmap.f
pdbset:		$(srcdir)/pdbset.f
peakmax:	$(srcdir)/peakmax.f
phistats:	$(srcdir)/phistats.f
polarrfn:	$(srcdir)/polarrfn.f
polypose:       $(srcdir)/polypose.f
prep_bulk:	$(srcdir)/prep_bulk.f
professs: 	$(srcdir)/professs.f
rantan: 	$(srcdir)/rantan.f
rebatch:	$(srcdir)/rebatch.f
reindex:	$(srcdir)/reindex.f
revise: 	$(srcdir)/revise.f
rfcorr:		$(srcdir)/rfcorr.f
rotamer:	$(srcdir)/rotamer.f
rotmat:		$(srcdir)/rotmat.f
rsearch:	$(srcdir)/rsearch.f
rstats:		$(srcdir)/rstats.f
rwcontents:	$(srcdir)/rwcontents.f
sapi:		$(srcdir)/sapi.f
scaleit:	$(srcdir)/scaleit.f
scalepack2mtz:  $(srcdir)/scalepack2mtz.f
sfall:		$(srcdir)/sfall.f
sigmaa:		$(srcdir)/sigmaa.f
sortmtz:	$(srcdir)/sortmtz.f
sortwater:	$(srcdir)/sortwater.f
stgrid:         $(srcdir)/stgrid.f
stnet:  	$(srcdir)/stnet.f
surface:	$(srcdir)/surface.f
tffc:		$(srcdir)/tffc.f
tracer:		$(srcdir)/tracer.f
truncate:	$(srcdir)/truncate.f
unique:		$(srcdir)/unique.f
vecref:		$(srcdir)/vecref.f
vectors:	$(srcdir)/vectors.f
volume:		$(srcdir)/volume.f
watertidy:	$(srcdir)/watertidy.f
watncs:		$(srcdir)/watncs.f
watpeak:	$(srcdir)/watpeak.f
wilson:		$(srcdir)/wilson.f

anglen:		$(srcdir)/procheck/anglen.f $(srcdir)/procheck/anglen.inc
pplot:		$(srcdir)/procheck/pplot.f $(srcdir)/procheck/pplot.inc ps.o
gfac2pdb:	$(srcdir)/procheck/gfac2pdb.f $(srcdir)/procheck/gfac2pdb.inc ps.o
probplot:	$(srcdir)/procheck/bplot.f $(srcdir)/procheck/bplot.inc ps.o
tplot:		$(srcdir)/procheck/tplot.f $(srcdir)/procheck/tplot.inc ps.o
mplot:		$(srcdir)/procheck/mplot.f $(srcdir)/procheck/mplot.inc ps.o
secstr:		$(srcdir)/procheck/secstr.f $(srcdir)/procheck/sstruc.par
proclean:	$(srcdir)/procheck/clean.f $(srcdir)/procheck/brkcln.par
rmsdev:		$(srcdir)/procheck/rmsdev.f $(srcdir)/procheck/rmsdev.inc

scaladir = $(srcdir)/scala_
scala : $(scaladir)/scala.f $(scaladir)/column.fh $(scaladir)/orient.fh \
	$(scaladir)/params.fh $(scaladir)/rfile.fh $(scaladir)/scales.fh \
	$(scaladir)/nbtchc.fh $(scaladir)/parameter.fh $(scaladir)/refcon.fh \
	$(scaladir)/rundef.fh $(scaladir)/sdfacc.fh $(scaladir)/flags.fh \
	$(scaladir)/inout.fh $(scaladir)/dump.fh $(scaladir)/tie.fh \
	$(scaladir)/outcon.fh $(scaladir)/version.fh $(scaladir)/anomtc.fh \
        $(scaladir)/axes.fh $(scaladir)/bigarg.fh \
        $(scaladir)/errors.fh $(scaladir)/flow.fh $(scaladir)/glocon.fh \
        $(scaladir)/means.fh $(scaladir)/refflg.fh $(scaladir)/stats.fh \
        $(scaladir)/symmty.fh $(scaladir)/sharvest.fh $(scaladir)/chtml.fh \
        $(scaladir)/htmbuf.fh $(scaladir)/sphhrm.fh $(scaladir)/crlncf.fh \
        $(scaladir)/datasets.fh $(scaladir)/dts_storage.fh \
        $(scaladir)/sclinimeans.fh $(scaladir)/timecor.fh

freemask.o:	$(dmdir)/freemask.f $(dmdir)/crystal.fh $(dmdir)/cycl.fh \
		$(dmdir)/dmheader.fh $(dmdir)/io.fh $(dmdir)/output.fh \
		$(dmdir)/params.fh $(dmdir)/uvwdata.fh
xtlkdc.o:	$(dmdir)/xtlkdc.f $(dmdir)/dmheader.fh
fftkdc.o:	$(dmdir)/fftkdc.f $(dmdir)/dmheader.fh
mathkdc.o:	$(dmdir)/mathkdc.f $(dmdir)/dmheader.fh
dmharvest.o:    $(dmdir)/dmharvest.f $(dmdir)/dmharvest.fh
phcomb.o:	$(dmdir)/phcomb.f $(dmdir)/cycl.fh  $(dmdir)/dmheader.fh \
		$(dmdir)/hkldata.fh $(dmdir)/hkllab.fh $(dmdir)/io.fh \
		$(dmdir)/output.fh $(dmdir)/params.fh $(dmdir)/dmharvest.fh
maptree.o:	$(dmdir)/maptree.f $(dmdir)/crystal.fh  $(dmdir)/dmheader.fh \
		$(dmdir)/hkldata.fh $(dmdir)/params.fh\
		$(dmdir)/uvwdata.fh $(dmdir)/skldat.fh
dmmain.o:	$(dmdir)/crystal.fh $(dmdir)/cycl.fh $(dmdir)/dmheader.fh \
		$(dmdir)/hkldata.fh $(dmdir)/hkllim.fh  $(dmdir)/hkllab.fh \
		$(dmdir)/io.fh $(dmdir)/mode.fh \
		$(dmdir)/mtzdata.fh $(dmdir)/ncssym.fh $(dmdir)/output.fh \
		$(dmdir)/params.fh $(dmdir)/scaleb.fh $(dmdir)/uvwdata.fh \
		$(dmdir)/dmmain.f $(dmdir)/dmharvest.fh
dmlib.o:	$(dmdir)/dmlib.f $(dmdir)/crystal.fh $(dmdir)/dmheader.fh \
		$(dmdir)/hkldata.fh $(dmdir)/hkllim.fh $(dmdir)/io.fh \
		$(dmdir)/uvwdata.fh
dmaver.o:	$(dmdir)/dmaver.f $(dmdir)/crystal.fh $(dmdir)/cycl.fh \
		$(dmdir)/dmheader.fh $(dmdir)/hkldata.fh $(dmdir)/io.fh \
		$(dmdir)/ncssym.fh $(dmdir)/output.fh $(dmdir)/uvwdata.fh
denmod.o:	$(dmdir)/denmod.f $(dmdir)/crystal.fh $(dmdir)/cycl.fh \
		$(dmdir)/dmheader.fh $(dmdir)/hkldata.fh $(dmdir)/hkllab.fh \
		$(dmdir)/io.fh $(dmdir)/mode.fh $(dmdir)/params.fh \
		$(dmdir)/uvwdata.fh
gamma.o:	$(dmdir)/gamma.f $(dmdir)/uvwdata.fh \
		$(dmdir)/dmheader.fh $(dmdir)/hkldata.fh $(dmdir)/hkllab.fh \
		$(dmdir)/io.fh $(dmdir)/mode.fh 

# dmmulti dependencies
dmmulti.o:          $(dmmultidir)/dmmulti.f $(dmmultidir)/cyclsync.fh \
                    $(dmmultidir)/dmmulti.fh $(dmmultidir)/io.fh \
                    $(dmmultidir)/xavginfo.fh $(dmmultidir)/xcrystal.fh \
                    $(dmmultidir)/xdominfo.fh $(dmmultidir)/xhklinfo.fh \
                    $(dmmultidir)/xtalinfo.fh $(dmmultidir)/xtlparam.fh
dmmulti_dmlib.o:    $(dmmultidir)/dmmulti_dmlib.f $(dmmultidir)/dmmulti.fh \
                    $(dmmultidir)/io.fh $(dmmultidir)/xcrystal.fh \
                    $(dmmultidir)/xhklinfo.fh $(dmmultidir)/xtlparam.fh 
dmmulti_denmod.o:   $(dmmultidir)/dmmulti_denmod.f $(dmmultidir)/cyclsync.fh \
                    $(dmmultidir)/dmmulti.fh $(dmmultidir)/io.fh \
                    $(dmmultidir)/xcrystal.fh $(dmmultidir)/xhklinfo.fh \
                    $(dmmultidir)/xtlparam.fh 
dmmulti_dmaver.o:   $(dmmultidir)/dmmulti_dmaver.f  $(dmmultidir)/dmmulti.fh \
                    $(dmmultidir)/io.fh $(dmmultidir)/xavginfo.fh \
                    $(dmmultidir)/xcrystal.fh $(dmmultidir)/xdominfo.fh \
                    $(dmmultidir)/xhklinfo.fh $(dmmultidir)/xtalinfo.fh \
                    $(dmmultidir)/xtlparam.fh
dmmulti_maptree.o:  $(dmmultidir)/dmmulti_maptree.f $(dmmultidir)/cyclsync.fh \
                    $(dmmultidir)/dmmulti.fh $(dmmultidir)/io.fh \
                    $(dmmultidir)/skldat.fh $(dmmultidir)/xcrystal.fh \
                    $(dmmultidir)/xhklinfo.fh $(dmmultidir)/xtlparam.fh
dmmulti_phcomb.o:   $(dmmultidir)/dmmulti_phcomb.f $(dmmultidir)/cyclsync.fh \
                    $(dmmultidir)/dmmulti.fh $(dmmultidir)/io.fh \
                    $(dmmultidir)/output.fh $(dmmultidir)/xhklinfo.fh \
                    $(dmmultidir)/xtlparam.fh
dmmulti_fftkdc.o:   $(dmmultidir)/dmmulti_fftkdc.f $(dmmultidir)/dmmulti.fh 
dmmulti_xtlkdc.o:   $(dmmultidir)/dmmulti_xtlkdc.f $(dmmultidir)/dmmulti.fh
dmmulti_mathkdc.o:  $(dmmultidir)/dmmulti_mathkdc.f $(dmmultidir)/dmmulti.fh

# dtrek2scala dependencies
abblk.o:        $(dtrek2scaladir)/abblk.f $(dtrek2scaladir)/madsav.fh \
                $(dtrek2scaladir)/madsvc.fh
dtrek2scala.o:  $(dtrek2scaladir)/dtrek2scala.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/reindx.fh \
                $(dtrek2scaladir)/subcom.fh $(dtrek2scaladir)/symmet.fh \
                $(dtrek2scaladir)/csymme.fh
clsopf.o:       $(dtrek2scaladir)/clsopf.f $(dtrek2scaladir)/flags.fh
getreu.o:       $(dtrek2scaladir)/getreu.f $(dtrek2scaladir)/madsav.fh
hdropf.o:       $(dtrek2scaladir)/hdropf.f $(dtrek2scaladir)/orient.fh \
                $(dtrek2scaladir)/corient.fh
inihdr.o:       $(dtrek2scaladir)/inihdr.f $(dtrek2scaladir)/batch.fh
mktrdtr.o:      $(dtrek2scaladir)/mktrdtr.f
mkordenz.o:     $(dtrek2scaladir)/mkordenz.f $(dtrek2scaladir)/madsav.fh \
                $(dtrek2scaladir)/madsvc.fh $(dtrek2scaladir)/reindx.fh \
                $(dtrek2scaladir)/orient.fh $(dtrek2scaladir)/corient.fh \
                $(dtrek2scaladir)/matrcs.fh $(dtrek2scaladir)/morien.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/grpdat.fh
opndtr.o:       $(dtrek2scaladir)/opndtr.f $(dtrek2scaladir)/symmet.fh \
                $(dtrek2scaladir)/csymme.fh
outhdr.o:       $(dtrek2scaladir)/outhdr.f $(dtrek2scaladir)/batch.fh \
                $(dtrek2scaladir)/cbatch.fh
plabsn.o:       $(dtrek2scaladir)/plabsn.f $(dtrek2scaladir)/tabl1.fh
prcden.o:       $(dtrek2scaladir)/prcden.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/matrcs.fh $(dtrek2scaladir)/reindx.fh \
                $(dtrek2scaladir)/orient.fh $(dtrek2scaladir)/madsav.fh \
                $(dtrek2scaladir)/batch.fh
prcdtr.o:       $(dtrek2scaladir)/prcdtr.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/orient.fh $(dtrek2scaladir)/reindx.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/matrcs.fh \
                $(dtrek2scaladir)/grpdat.fh $(dtrek2scaladir)/madsav.fh
prcfil.o:       $(dtrek2scaladir)/prcfil.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/orient.fh $(dtrek2scaladir)/reindx.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/matrcs.fh \
                $(dtrek2scaladir)/grpdat.fh
prtgrp.o:       $(dtrek2scaladir)/prtgrp.f $(dtrek2scaladir)/madsav.fh \
                $(dtrek2scaladir)/grpdat.fh
rdrefl.o:       $(dtrek2scaladir)/rdrefl.f $(dtrek2scaladir)/madsav.fh
readhd.o:       $(dtrek2scaladir)/readhd.f $(dtrek2scaladir)/madsav.fh \
                $(dtrek2scaladir)/madsvc.fh
redtre.o:       $(dtrek2scaladir)/redtre.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/cbatch.fh \
                $(dtrek2scaladir)/subcom.fh
remadn.o:       $(dtrek2scaladir)/remadn.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/batch.fh $(dtrek2scaladir)/cbatch.fh \
                $(dtrek2scaladir)/subcom.fh
setolq.o:       $(dtrek2scaladir)/setolq.f $(dtrek2scaladir)/flags.fh \
                $(dtrek2scaladir)/morien.fh
umatcl.o:       $(dtrek2scaladir)/umatcl.f $(dtrek2scaladir)/matrcs.fh

# fffear dependencies
fffear.o:         $(fffeardir)/fffear.f $(fffeardir)/crystal.fh \
	          $(fffeardir)/params.fh $(fffeardir)/hkldata.fh \
	          $(fffeardir)/hkllab.fh $(fffeardir)/uvwdata.fh \
	          $(fffeardir)/srcdata.fh $(fffeardir)/io.fh      \
	          $(fffeardir)/fffear.fh $(fffeardir)/hkllim.fh  \
	          $(fffeardir)/mtzdata.fh
searcher.o:       $(fffeardir)/searcher.f $(fffeardir)/crystal.fh \
	          $(fffeardir)/params.fh $(fffeardir)/hkldata.fh \
	          $(fffeardir)/hkllab.fh $(fffeardir)/uvwdata.fh \
	          $(fffeardir)/srcdata.fh $(fffeardir)/io.fh      \
	          $(fffeardir)/fffear.fh $(fffeardir)/hkllim.fh
srchfft.o:        $(fffeardir)/srchfft.f $(fffeardir)/crystal.fh \
	          $(fffeardir)/io.fh $(fffeardir)/fffear.fh  \
	          $(fffeardir)/hkldata.fh $(fffeardir)/hkllim.fh  \
	          $(fffeardir)/uvwdata.fh $(fffeardir)/params.fh  \
	          $(fffeardir)/srcdata.fh
filter.o:         $(fffeardir)/filter.f $(fffeardir)/crystal.fh \
	          $(fffeardir)/io.fh $(fffeardir)/fffear.fh  \
	          $(fffeardir)/params.fh $(fffeardir)/uvwdata.fh \
	          $(fffeardir)/srcdata.fh
fffear_dmlib.o:   $(fffeardir)/fffear_dmlib.f $(fffeardir)/crystal.fh \
	          $(fffeardir)/io.fh $(fffeardir)/fffear.fh  \
	          $(fffeardir)/hkldata.fh $(fffeardir)/hkllim.fh  \
	          $(fffeardir)/uvwdata.fh
fffear_fftkdc.o:  $(fffeardir)/fffear_fftkdc.f $(fffeardir)/fffear.fh
fffear_xtlkdc.o:  $(fffeardir)/fffear_xtlkdc.f $(fffeardir)/fffear.fh
fffear_mathkdc.o: $(fffeardir)/fffear_mathkdc.f $(fffeardir)/fffear.fh

# refmac5 and libcheck dependencies

refmac_newdic.o:  $(refmacdir)/refmac_newdic.f $(refmacdir)/celsym.fh \
                  $(refmacdir)/pls_incl.fh     $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/celsym_aniso.fh $(refmacdir)/cif_incl.fh \
                  $(refmacdir)/const.fh        $(refmacdir)/expcost.fh \
		  $(refmacdir)/makecif.fh      $(refmacdir)/monitor.fh \
	          $(refmacdir)/restr_files.fh  $(refmacdir)/rharvest.fh \
	          $(refmacdir)/vitals.fh       $(refmacdir)/weights.fh \
                  $(refmacdir)/makecif_version.fh
subvag.o:         $(refmacdir)/subvag.f        $(refmacdir)/celsym.fh \
                  $(refmacdir)/const.fh
oppro_tor1.o:     $(refmacdir)/oppro_tor1.f    $(refmacdir)/agreem.fh \
                  $(refmacdir)/celsym.fh       $(refmacdir)/const.fh \
                  $(refmacdir)/expcost.fh      $(refmacdir)/monitor.fh \
                  $(refmacdir)/pls_incl.fh     $(refmacdir)/refi_flags.fh \
                  $(refmacdir)/weights.fh      $(refmacdir)/atom_com.fh \
	          $(refmacdir)/atom_com_str.fh $(refmacdir)/crd_com.fh \
	          $(refmacdir)/ncs_rest.fh     $(refmacdir)/makecif.fh \
	          $(refmacdir)/restr_params.fh $(refmacdir)/restr_files.fh \
	          $(refmacdir)/map_params.fh   $(refmacdir)/ref_com_str.fh \
	          $(refmacdir)/restr_files.fh
rcard_tor1.o:     $(refmacdir)/rcard_tor1.f    $(refmacdir)/agreem.fh \
                  $(refmacdir)/celsym.fh       $(refmacdir)/cif_incl.fh \
                  $(refmacdir)/monitor.fh      $(refmacdir)/pls_incl.fh \
                  $(refmacdir)/refi_flags.fh   $(refmacdir)/vitals.fh \
                  $(refmacdir)/weights.fh      $(refmacdir)/rigid_body.fh \
	          $(refmacdir)/const.fh        $(refmacdir)/atom_com.fh \
	          $(refmacdir)/expcost.fh      $(refmacdir)/makecif.fh \
	          $(refmacdir)/ncs_rest.fh     $(refmacdir)/rharvest.fh \
	          $(refmacdir)/solvent.fh      $(refmacdir)/tls.fh \
	          $(refmacdir)/map_params.fh   $(refmacdir)/occupancy_params.fh \
	          $(refmacdir)/restr_files.fh  $(refmacdir)/restr_params.fh
subcf_scale1.o:   $(refmacdir)/subcf_scale1.f  $(refmacdir)/agreem.fh \
                  $(refmacdir)/celsym.fh       $(refmacdir)/const.fh \
                  $(refmacdir)/monitor.fh      $(refmacdir)/pls_incl.fh \
                  $(refmacdir)/refi_flags.fh   $(refmacdir)/vitals.fh \
                  $(refmacdir)/weights.fh      $(refmacdir)/atom_com.fh \
	          $(refmacdir)/rharvest.fh     $(refmacdir)/gaussian.fh
extra_eigen.o:    $(refmacdir)/extra_eigen.f   $(refmacdir)/agreem.fh \
                  $(refmacdir)/celsym.fh       $(refmacdir)/cif_incl.fh \
                  $(refmacdir)/const.fh        $(refmacdir)/expcost.fh \
                  $(refmacdir)/pls_incl.fh     $(refmacdir)/files.fh \
                  $(refmacdir)/refi_flags.fh   $(refmacdir)/vitals.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/celsym_aniso.fh \
		  $(refmacdir)/gaussian.fh
rharvest.o:       $(refmacdir)/rharvest.f      $(refmacdir)/rharvest.fh \
                  $(refmacdir)/pls_incl.fh     $(refmacdir)/celsym.fh \
                  $(refmacdir)/refi_flags.fh   $(refmacdir)/agreem.fh \
	          $(refmacdir)/atom_com.fh     $(refmacdir)/const.fh \
	          $(refmacdir)/makecif.fh      $(refmacdir)/ncs_rest.fh \
	          $(refmacdir)/solvent.fh      $(refmacdir)/tls.fh \
	          $(refmacdir)/makecif_version.fh $(refmacdir)/weights.fh
rigid_body_newdic.o:  $(refmacdir)/rigid_body_newdic.f $(refmacdir)/pls_incl.fh \
                  $(refmacdir)/rigid_body.fh   $(refmacdir)/vitals.fh \
                  $(refmacdir)/const.fh        $(refmacdir)/refi_flags.fh \
                  $(refmacdir)/monitor.fh      $(refmacdir)/celsym.fh \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/restr_files.fh
aniso_ref_eigen.o: $(refmacdir)/aniso_ref_eigen.f    $(refmacdir)/pls_incl.fh \
                  $(refmacdir)/celsym.fh       $(refmacdir)/celsym_aniso.fh \
                  $(refmacdir)/vitals.fh       $(refmacdir)/const.fh \
                  $(refmacdir)/refi_flags.fh   $(refmacdir)/atom_com.fh
linalgebra.o:     $(refmacdir)/linalgebra.f    $(refmacdir)/pls_incl.fh \
                  $(refmacdir)/atom_com.fh
solvent_contr_mask.o:     $(refmacdir)/solvent_contr_mask.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/atom_com_str.fh $(refmacdir)/celsym.fh \
		  $(refmacdir)/celsym_aniso.fh $(refmacdir)/const.fh \
	          $(refmacdir)/monitor.fh      $(refmacdir)/pls_incl.fh \
	          $(refmacdir)/refi_flags.fh   $(refmacdir)/solvent.fh \
	          $(refmacdir)/vitals.fh       $(refmacdir)/weights.fh \
	          $(refmacdir)/rharvest.fh
hkon_secder_tch.o: $(refmacdir)/hkon_secder_tch.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/celsym.fh       $(refmacdir)/celsym_aniso.fh \
	          $(refmacdir)/cif_incl.fh     $(refmacdir)/const.fh \
	          $(refmacdir)/hessian_impl.fh $(refmacdir)/monitor.fh \
	          $(refmacdir)/ncs_rest.fh     $(refmacdir)/occupancy_params.fh \
	          $(refmacdir)/pls_incl.fh     $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/restr_files.fh  $(refmacdir)/rharvest.fh \
	          $(refmacdir)/save_all_params.fh $(refmacdir)/solvent.fh \
	          $(refmacdir)/tls.fh          $(refmacdir)/vitals.fh \
	          $(refmacdir)/weights.fh
fast_hessian_tabulation.o: $(refmacdir)/fast_hessian_tabulation.f    \
	          $(refmacdir)/atom_com.fh     $(refmacdir)/celsym.fh \
	          $(refmacdir)/celsym_aniso.fh $(refmacdir)/hessian_impl.fh \
	          $(refmacdir)/pls_incl.fh     $(refmacdir)/vitals.fh \
	          $(refmacdir)/weights.fh
lsq_symm_atoms.o: $(refmacdir)/lsq_symm_atoms.f    \
	          $(refmacdir)/atom_com.fh     $(refmacdir)/celsym.fh \
	          $(refmacdir)/celsym_aniso.fh $(refmacdir)/cif_incl.fh \
	          $(refmacdir)/const.fh        $(refmacdir)/monitor.fh \
	          $(refmacdir)/ncs_rest.fh     $(refmacdir)/pls_incl.fh \
	          $(refmacdir)/refi_flags.fh   $(refmacdir)/restr_files.fh \
	          $(refmacdir)/rharvest.fh     $(refmacdir)/vitals.fh \
	          $(refmacdir)/weights.fh
subag_scale_hessian.o: $(refmacdir)/subag_scale_hessian.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/celsym.fh       $(refmacdir)/celsym_aniso.fh \
	          $(refmacdir)/const.fh        $(refmacdir)/monitor.fh \
	          $(refmacdir)/pls_incl.fh     $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/rharvest.fh     $(refmacdir)/solvent.fh \
	          $(refmacdir)/tls.fh          $(refmacdir)/vitals.fh \
	          $(refmacdir)/weights.fh
tls_newdic_non.o: $(refmacdir)/tls_newdic_non.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
	          $(refmacdir)/celsym.fh       $(refmacdir)/celsym_aniso.fh \
	          $(refmacdir)/const.fh        $(refmacdir)/monitor.fh \
	          $(refmacdir)/pls_incl.fh     $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/restr_files.fh  $(refmacdir)/save_all_params.fh \
	          $(refmacdir)/tls.fh          $(refmacdir)/vitals.fh \
	          $(refmacdir)/weights.fh
ls_scaling_double.o: $(refmacdir)/ls_scaling_double.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/celsym.fh \
	          $(refmacdir)/celsym_aniso.fh $(refmacdir)/const.fh \
	          $(refmacdir)/monitor.fh      $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/weights.fh
interpolate_mod.o: $(refmacdir)/interpolate_mod.f 
ml_scaling_double.o: $(refmacdir)/ml_scaling_double.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/celsym.fh \
	          $(refmacdir)/const.fh        $(refmacdir)/expcost.fh \
	          $(refmacdir)/monitor.fh      $(refmacdir)/refi_flags.fh \
	          $(refmacdir)/rharvest.fh     $(refmacdir)/weights.fh
gaussian_int.o:   $(refmacdir)/gaussian_int.f
subnumrec.o:      $(refmacdir)/subnumrec.f
make_subr.o:      $(refmacdir)/make_subr.f     $(refmacdir)/atom_com.fh \
	          $(refmacdir)/crd_com.fh      $(refmacdir)/metal.fh
make_lib.o:       $(refmacdir)/make_lib.f      $(refmacdir)/lib_com.fh \
		  $(refmacdir)/CIF_items_lib.fh $(refmacdir)/crd_com.fh
make_PDB.o:       $(refmacdir)/make_PDB.f      $(refmacdir)/atom_com.fh \
		  $(refmacdir)/crd_com.fh      $(refmacdir)/link_com.fh \
		  $(refmacdir)/metal.fh
make_CIF.o:       $(refmacdir)/make_CIF.f \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/CIF_items_crd.fh \
	          $(refmacdir)/atom_com_str.fh $(refmacdir)/crd_com.fh \
	          $(refmacdir)/metal.fh
make_new.o:       $(refmacdir)/make_new.f      $(refmacdir)/lib_com.fh \
		  $(refmacdir)/CIF_items_crd.fh $(refmacdir)/atom_com.fh \
		  $(refmacdir)/crd_com.fh      $(refmacdir)/metal.fh \
		  $(refmacdir)/link_com.fh
make_crd.o:       $(refmacdir)/make_crd.f      $(refmacdir)/lib_com.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/crd_com.fh \
		  $(refmacdir)/link_com.fh     $(refmacdir)/metal.fh
make_subr_refmac.o:     $(refmacdir)/make_subr_refmac.f 
vdw_symmetry.o:      $(refmacdir)/vdw_symmetry.f    \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/atom_com_str.fh \
	          $(refmacdir)/celsym.fh       $(refmacdir)/pls_incl.fh \
		  $(refmacdir)/restr_files.fh  $(refmacdir)/weights.fh \
		  $(refmacdir)/vitals.fh
make_rst.o:       $(refmacdir)/make_rst.f      $(refmacdir)/lib_com.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/atom_com_str.fh \
		  $(refmacdir)/crd_com.fh
makecif.o:        $(refmacdir)/makecif.f       $(refmacdir)/lib_com.fh \
		  $(refmacdir)/crd_com.fh      $(refmacdir)/makecif_version.fh
make_refmac_dummy.o:    $(refmacdir)/make_refmac_dummy.f   \
		  $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
		  $(refmacdir)/const.fh        $(refmacdir)/makecif.fh \
		  $(refmacdir)/ncs_rest.fh     $(refmacdir)/refi_flags.fh \
		  $(refmacdir)/rharvest.fh     $(refmacdir)/solvent.fh \
		  $(refmacdir)/tls.fh          $(refmacdir)/vitals.fh \
		  $(refmacdir)/weights.fh      $(refmacdir)/makecif_version.fh
ncs_const.o:      $(refmacdir)/ncs_const.f     $(refmacdir)/pls_incl.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/const.fh \
		  $(refmacdir)/monitor.fh      $(refmacdir)/ncs_rest.fh \
		  $(refmacdir)/restr_files.fh  $(refmacdir)/rharvest.fh \
		  $(refmacdir)/vitals.fh       $(refmacdir)/weights.fh
newentry_idealise.o:    $(refmacdir)/newentry_idealise.f    \
	          $(refmacdir)/agreem.fh       $(refmacdir)/atom_com.fh \
		  $(refmacdir)/celsym.fh       $(refmacdir)/const.fh \
		  $(refmacdir)/makecif.fh      $(refmacdir)/pls_incl.fh \
		  $(refmacdir)/refi_flags.fh   $(refmacdir)/tls.fh \
		  $(refmacdir)/vitals.fh       $(refmacdir)/weights.fh
main_libcheck.o:  $(refmacdir)/main_libcheck.f $(refmacdir)/libcheck_version.fh
make_subr_2.o:    $(refmacdir)/make_subr_2.f   $(refmacdir)/atom_com.fh \
		  $(refmacdir)/crd_com.fh
libcheck.o:       $(refmacdir)/libcheck.f      $(refmacdir)/lib_com.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/crd_com.fh \
		  $(refmacdir)/libcheck_version.fh 
make_unix_ccp4.o: $(refmacdir)/make_unix_ccp4.f
emin.o:           $(refmacdir)/emin.f          $(refmacdir)/atom_com.fh \
		  $(refmacdir)/atom_com_str.fh $(refmacdir)/crd_com.fh \
		  $(refmacdir)/emin_version.fh $(refmacdir)/ener_com.fh \
		  $(refmacdir)/ref_com.fh      $(refmacdir)/ref_com_str.fh \
		  $(refmacdir)/rstr_com.fh
libcheck_min.o:   $(refmacdir)/libcheck_min.f  $(refmacdir)/lib_com.fh \
		  $(refmacdir)/atom_com.fh     $(refmacdir)/libcheck_version.fh \
		  $(refmacdir)/crd_com.fh

# topp dependencies

topp.o:           $(toppdir)/topp.f            $(toppdir)/config_top.inc
autosnd.o:        $(toppdir)/autosnd.f         $(toppdir)/autosnd.inc 
toplist:          $(toppdir)/toplist.f 
pdbhtf:           $(toppdir)/pdbhtf.c 

# molrep dependencies

main_molrep_mtz.o: $(molrepdir)/main_molrep_mtz.f  $(molrepdir)/molrep_version.fh 
molrep.o:          $(molrepdir)/molrep.f           $(molrepdir)/molrep_version.fh  
molrep1.o:         $(molrepdir)/molrep1.f          $(molrepdir)/mr_crd_com.fh  
molrep2.o:         $(molrepdir)/molrep2.f          $(molrepdir)/mr_crd_com.fh  
molrep3.o:         $(molrepdir)/molrep3.f          $(molrepdir)/mr_crd_com.fh  
molrep_prog.o:     $(molrepdir)/molrep_prog.f      $(molrepdir)/mr_crd_com.fh \
                   $(molrepdir)/mr_crd2_com.fh  
molrep_prog1.o:    $(molrepdir)/molrep_prog1.f    $(molrepdir)/mr_crd_com.fh  
molrep_prog2.o:    $(molrepdir)/molrep_prog2.f    $(molrepdir)/mr_crd_com.fh  
molrep_subr.o:     $(molrepdir)/molrep_subr.f     $(molrepdir)/mr_crd_com.fh \
                   $(molrepdir)/mr_crd2_com.fh  
molrep_sym_ccp4.o: $(molrepdir)/molrep_sym_ccp4.f
molrep_unix_ccp4.o:  $(molrepdir)/molrep_unix_ccp4.f

# sfcheck dependencies

main_sfcheck_ccp4.o: $(sfcheckdir)/main_sfcheck_ccp4.f  $(sfcheckdir)/sfch_version.fh
sfcheck.o:          $(sfcheckdir)/sfcheck.f           $(sfcheckdir)/sfch_comt.fh \
                    $(sfcheckdir)/sfch_version.fh  
sfch_prog.o:        $(sfcheckdir)/sfch_prog.f         $(sfcheckdir)/sfch_comt.fh
sfch_subr.o:        $(sfcheckdir)/sfch_subr.f         $(sfcheckdir)/sfch_comt.fh 
sfch_graph_1.o:     $(sfcheckdir)/sfch_graph_1.f      $(sfcheckdir)/sfch_comt.fh \
                    $(sfcheckdir)/sfch_version.fh     $(sfcheckdir)/sfch_graph.inc \
                    $(sfcheckdir)/sfch_graph_ini.inc  $(sfcheckdir)/sfch_html.inc
sfch_graph_2.o:     $(sfcheckdir)/sfch_graph_2.f      $(sfcheckdir)/sfch_graph.inc \
                    $(sfcheckdir)/sfch_graph_2.inc    $(sfcheckdir)/sfch_html.inc
sfch_graph_3.o:     $(sfcheckdir)/sfch_graph_3.f
sfch_graph_4.o:     $(sfcheckdir)/sfch_graph_4.f      $(sfcheckdir)/sfcheck_ps.inc
sfch_graph_5.o:     $(sfcheckdir)/sfch_graph_5.f      $(sfcheckdir)/sfch_graph.inc \
                    $(sfcheckdir)/sfch_version.fh     $(sfcheckdir)/sfch_html.inc
sfch_unix_ccp4.o:        $(sfcheckdir)/sfch_unix_ccp4.f
sfch_sym_ccp4.o:        $(sfcheckdir)/sfch_sym_ccp4.f

mapmask :	$(srcdir)/mapmask_/mapmask.f $(srcdir)/mapmask_/mapmask.fh \
		$(srcdir)/mapmask_/crystal.fh $(srcdir)/mapmask_/io.fh \
		$(srcdir)/mapmask_/params.fh

maprot :	$(srcdir)/maprot_/maprot.f $(srcdir)/maprot_/maprot.fh \
		$(srcdir)/maprot_/crystals.fh $(srcdir)/maprot_/io.fh \
		$(srcdir)/maprot_/params.fh $(srcdir)/maprot_/grids.fh

ncsmask :	$(srcdir)/ncsmask_/ncsmask.f $(srcdir)/ncsmask_/ncsmask.fh \
		$(srcdir)/ncsmask_/crystal.fh $(srcdir)/ncsmask_/io.fh \
		$(srcdir)/ncsmask_/params.fh

combat :	$(srcdir)/combat_/combat.f $(srcdir)/combat_/parser.fh \
		$(srcdir)/combat_/refandmtz.fh $(srcdir)/combat_/orient.fh 

sftools :	$(sftoolsdir)/sftools.f $(sftoolsdir)/sftools.inc

sc :		$(srcdir)/sc_/sc.f $(srcdir)/sc_/big.fh \
		$(srcdir)/sc_/defaults.fh $(srcdir)/sc_/grasp.fh \
		$(srcdir)/sc_/setup.fh

dyndom :	$(srcdir)/dyndom_/dyndom.f $(srcdir)/dyndom_/DynDom.param

restrain :	$(restraindir)/restrain.f $(restraindir)/common.inc
tlsanl :	$(restraindir)/tlsanl.f $(restraindir)/tlsanl.inc
tlsextract :	$(restraindir)/tlsextract.c 
rdent :  	$(restraindir)/rdent.f

arp_waters:	$(srcdir)/arp_warp_/arp_waters.f
prepform:	$(srcdir)/arp_warp_/prepform.f
prepshel:	$(srcdir)/arp_warp_/prepshel.f
t_shift:	$(srcdir)/arp_warp_/t_shift.f

# C targets:
pltdev:		$(srcdir)/pltdev.c
nb:		$(srcdir)/procheck/nb.c
binsort:	$(srcdir)/../lib/src/binsort.h $(srcdir)/binsort.c

cmap_calc.o :	$(solomondir)/cmap_calc.c $(solomondir)/solomon.h
cmap_io.o :	$(solomondir)/cmap_io.c $(solomondir)/solomon.h
cmsk_io.o :	$(solomondir)/cmsk_io.c $(solomondir)/solomon.h
matrix.o :	$(solomondir)/matrix.c $(solomondir)/matrix.h
solomon.o :	$(solomondir)/solomon.c $(solomondir)/solomon.h \
                $(solomondir)/matrix.h

mtz2cif.o :	$(mtz2cifdir)/mtz2cif.c $(mtz2cifdir)/mtz2cif_lib.h
mtz2cif_lib.o :	$(mtz2cifdir)/mtz2cif_lib.c $(mtz2cifdir)/mtz2cif_lib.h

harv.o : 	$(pdb_extractdir)/harv.c
cns.o :		$(pdb_extractdir)/cns.c
ccp4.o : 	$(pdb_extractdir)/ccp4.c
shelx.o :	$(pdb_extractdir)/shelx.c
tnt.o :   	$(pdb_extractdir)/tnt.c
snb.o : 	$(pdb_extractdir)/snb.c
warp.o :	$(pdb_extractdir)/warp.c
solve.o :	$(pdb_extractdir)/solve.c
sharp.o	:	$(pdb_extractdir)/sharp.c
pdb_extract_sf.o : $(pdb_extractdir)/pdb_extract_sf.c
struct_align.o : $(pdb_extractdir)/struct_align.c
ls-fit.o : 	$(pdb_extractdir)/ls-fit.c
seq-sub.o :	$(pdb_extractdir)/seq-sub.c
nrutil.o :	$(pdb_extractdir)/nrutil.c

# dev_tools dependencies:
dev_toolsdir = $(srcdir)/dev_tools_
mtzdiff :       $(dev_toolsdir)/mtzdiff.c
mapdiff :       $(dev_toolsdir)/mapdiff.c
pdbdiff :       $(dev_toolsdir)/pdbdiff.cpp

# crank_app dependencies:
crank_appdir = $(srcdir)/crank_app_
generate_xml_datasetinfo_from_mtz : $(crank_appdir)/generate_xml_datasetinfo_from_mtz.c
mtzcat :       $(crank_appdir)/mtzcat.c

# CXX targets:
pdbcur.o : 	$(mmdb_appdir)/pdbcur.cpp  $(mmdb_appdir)/pcur_funcs.h
pcur_funcs.o : 	$(mmdb_appdir)/pcur_funcs.cpp $(mmdb_appdir)/pcur_funcs.h
ncont.o :	$(mmdb_appdir)/ncont.cpp
coord_format.o :	$(mmdb_appdir)/coord_format.cpp
pdb_merge.o :	$(mmdb_appdir)/pdb_merge.cpp
chainsaw.o :    $(mmdb_appdir)/chainsaw.cpp
cif2xml.o :	$(harvest_appdir)/cif2xml.cpp
cross_validate.o :	$(harvest_appdir)/cross_validate.cpp
bp3input.o   :  $(bp3dir)/bp3input.C $(bp3dir)/bp3input.h
bp3main.o    :  $(bp3dir)/bp3main.C $(bp3dir)/bp3misc.C $(bp3dir)/bp3misc.h \
                $(bp3dir)/crystal.C $(bp3dir)/crystal.h $(bp3dir)/likelihood.C \
                $(bp3dir)/likelihood.h $(bp3dir)/model.C $(bp3dir)/model.h \
                $(bp3dir)/minimizer.C $(bp3dir)/minimizer.h
bp3misc.o    :  $(bp3dir)/bp3misc.C $(bp3dir)/bp3misc.h
crystal.o    :  $(bp3dir)/crystal.C $(bp3dir)/crystal.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h $(bp3dir)/sfdata.C $(bp3dir)/sfdata.h 
gauss.o      :  $(bp3dir)/gauss.C $(bp3dir)/gauss.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h
likelihood.o :  $(bp3dir)/likelihood.C $(bp3dir)/likelihood.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h $(bp3dir)/crystal.C $(bp3dir)/crystal.h \
                $(bp3dir)/model.C $(bp3dir)/model.h $(bp3dir)/tab.h
minimizer.o  :  $(bp3dir)/minimizer.C $(bp3dir)/minimizer.h $(bp3dir)/likelihood.C \
                $(bp3dir)/likelihood.h $(bp3dir)/bp3misc.C $(bp3dir)/bp3misc.h 
mir.o  :        $(bp3dir)/mir.C $(bp3dir)/likelihood.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h $(bp3dir)/crystal.C $(bp3dir)/crystal.h \
                $(bp3dir)/tab.h
model.o      :  $(bp3dir)/model.C $(bp3dir)/model.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h  
sad.o  :        $(bp3dir)/sad.C $(bp3dir)/likelihood.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h $(bp3dir)/crystal.C $(bp3dir)/crystal.h \
                $(bp3dir)/tab.h
sfdata.o     :  $(bp3dir)/sfdata.C $(bp3dir)/sfdata.h $(bp3dir)/bp3misc.C \
                $(bp3dir)/bp3misc.h

# on some systems the distributed class doesn't work 
JLogGraph.class: JLogGraph.java
	javac $?

FORCE : ;

# Local Variables:
# mode:makefile
# End:
