# Makefile for SFCHECK

# Use `make all'      to build the normal distribution.
# Use `make clean'    to remove objects and executable
# Use `make ccp4'     to build the ccp4 distribution.
# Use `make lnx'      to build the linux distribution without ccp4.
# Use `make lnx_ccp4' to build the linux distribution with ccp4.

# Change next line to define another target directory for the sfcheck
# executable and library files
SFCHECK = `cd ..;pwd`

BIN = $(SFCHECK)/bin
LIB = $(SFCHECK)/lib

F77 = f77

C77 = f77 -32

L77 = fort77 -Nn2406 -Nx1200

OBJS =  main_sfcheck.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.o

OBJS_CC =  main_sfcheck_mtz_c.o sfcheck_c.o sfch_prog_c.o sfch_graph_1_c.o \
        sfch_graph_2_c.o sfch_graph_3_c.o sfch_graph_4_c.o sfch_graph_5_c.o sfch_subr_c.o sfch_unix_c.o

OBJS_L =  main_sfcheck_l.o sfcheck_l.o sfch_prog_l.o sfch_graph_1_l.o \
        sfch_graph_2_l.o sfch_graph_3_l.o sfch_graph_4_l.o  sfch_graph_5_l.o sfch_subr_l.o sfch_linux.o

OBJS_T =  main_sfcheck.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.o

OBJS_LC =  main_sfcheck_mtz_l.o sfcheck_l.o sfch_prog_l.o sfch_graph_1_l.o \
        sfch_graph_2_l.o sfch_graph_3_l.o sfch_graph_4_l.o  sfch_graph_5_l.o sfch_subr_l.o sfch_linux.o

OBJS_TC =  main_sfcheck_mtz.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.o

OBJS_C =  main_sfcheck_mtz.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.o

all: sf_edit sfcheck

lnx: sf_edit sfcheck_ln

lnx_ccp4: sf_edit sfcheck_lnc

sf_edit:
	sed -e "s|*'[^\)].*|*'$(LIB)/|" \
	sfch_path.fh > temp_sfch_path.fh
	mv temp_sfch_path.fh sfch_path.fh

ccp4: sf_edit sfcheck_ccp4

clean:
	rm -f temp_sfch_path.fh
	rm -f $(BIN)/*
	rm -f ./*.o
	rm -f ./*~ ./#*

# ---------------------------------------


sfcheck.o: sfcheck.f sfch_version.fh sfch_comt.fh
	$(F77) -c  -trapuv -O2 -Olimit 2000 sfcheck.f 
sfch_prog.o: sfch_prog.f sfch_comt.fh
	$(F77) -c  -trapuv -O2  -Olimit 2000 sfch_prog.f 
sfch_subr.o: sfch_subr.f sfch_path.fh sfch_comt.fh
	$(F77) -c  -trapuv -O2  -Olimit 2000 sfch_subr.f 
sfch_graph_1.o: sfch_graph_1.f sfch_graph.inc sfch_graph_ini.inc sfch_version.fh sfch_comt.fh sfch_html.inc
	$(F77) -c  -trapuv -O2 sfch_graph_1.f
sfch_graph_2.o: sfch_graph_2.f sfch_graph.inc sfch_graph_2.inc
	$(F77) -c  -trapuv -O2 sfch_graph_2.f
sfch_graph_3.o: sfch_graph_3.f
	$(F77) -c  -trapuv -O2 sfch_graph_3.f
sfch_unix.o: sfch_unix.f
	$(F77) -c  -trapuv -O2 sfch_unix.f
sfch_graph_4.o: sfch_graph_4.f
	$(F77) -c  -trapuv -O2 sfch_graph_4.f
sfch_graph_5.o: sfch_graph_5.f sfch_graph.inc sfch_html.inc
	$(F77) -c  -trapuv -O2 sfch_graph_5.f
main_sfcheck.o: main_sfcheck.f sfch_version.fh
	$(F77) -c  -trapuv -O2 main_sfcheck.f

sfcheck: $(OBJS)
	$(F77) -O2 -o $(BIN)/sfcheck $(OBJS)

# --------------------------------------

sfcheck_c.o: sfcheck.f sfch_version.fh sfch_comt.fh
	$(C77) -c  -trapuv -O2 -Olimit 2000 sfcheck.f 
sfch_prog_c.o: sfch_prog.f sfch_comt.fh
	$(C77) -c  -trapuv -O2  -Olimit 2000 sfch_prog.f 
sfch_subr_c.o: sfch_subr.f sfch_path.fh sfch_comt.fh
	$(C77) -c  -trapuv -O2  -Olimit 2000 sfch_subr.f 
sfch_graph_1_c.o: sfch_graph_1.f sfch_graph.inc sfch_graph_ini.inc sfch_version.fh sfch_comt.fh sfch_html.inc
	$(C77) -c  -trapuv -O2 sfch_graph_1.f
sfch_graph_2_c.o: sfch_graph_2.f sfch_graph.inc
	$(C77) -c  -trapuv -O2 sfch_graph_2.f sfch_graph_2.inc
sfch_graph_3_c.o: sfch_graph_3.f
	$(C77) -c  -trapuv -O2 sfch_graph_3.f
sfch_unix_c.o: sfch_unix.f
	$(C77) -c  -trapuv -O2 sfch_unix.f
sfch_graph_4_c.o: sfch_graph_4.f
	$(C77) -c  -trapuv -O2 sfch_graph_4.f
sfch_graph_5_c.o: sfch_graph_5.f sfch_graph.inc sfch_html.inc
	$(C77) -c  -trapuv -O2 sfch_graph_5.f
main_sfcheck_mtz_c.o: main_sfcheck_mtz.f sfch_version.fh
	$(C77) -c  -trapuv -O2 main_sfcheck_mtz.f



sfcheck_ccp4: $(OBJS_CC)
	$(C77) -O2 -o $(BIN)/sfcheck $(OBJS_C) $(CLIB)/libccp4.a


# ----------------------------------------

sfcheck_l.o: sfcheck.f sfch_version.fh sfch_comt.fh
	$(L77) -c sfcheck.f 
sfch_prog_l.o: sfch_prog.f sfch_comt.fh
	$(L77) -c sfch_prog.f 
sfch_subr_l.o: sfch_subr.f sfch_path.fh sfch_comt.fh
	$(L77) -c sfch_subr.f 
sfch_graph_1_l.o: sfch_graph_1.f sfch_graph.inc sfch_graph_ini.inc sfch_version.fh sfch_comt.fh sfch_html.inc
	$(L77) -c sfch_graph_1.f
sfch_graph_2_l.o: sfch_graph_2.f sfch_graph.inc sfch_graph_2.inc
	$(L77) -c sfch_graph_2.f
sfch_graph_3_l.o: sfch_graph_3.f
	$(L77) -c sfch_graph_3.f
sfch_graph_4_l.o: sfch_graph_4.f
	$(L77) -c sfch_graph_4.f
sfch_graph_5_l.o: sfch_graph_5.f sfch_graph.inc sfch_html.inc
	$(L77) -c sfch_graph_5.f 
sfch_linux.o: sfch_unix.f
	$(L77) -c sfch_unix.f
main_sfcheck_l.o: main_sfcheck.f sfch_version.fh
	$(L77) -c main_sfcheck.f
main_sfcheck_mtz_l.o: main_sfcheck_mtz.f sfch_version.fh
	$(L77) -c main_sfcheck_mtz.f

sfcheck_ln: $(OBJS_L)
	$(L77) -o $(BIN)/sfcheck $(OBJS_T)

sfcheck_lnc: $(OBJS_LC)
	$(L77) -o $(BIN)/sfcheck $(OBJS_TC) $(CLIB)/libccp4.a
