# Parameters.

include formats.mk

PROGRAM = 
SOURCES.c = $(FORMATSOURCES) misc.c filt.c rdtape_eg.c
SOURCES.h = rdtape.h
SOURCES.F = 
SOURCES.f = 

# Derived parameters.

SOURCES = \
	$(SOURCES.h) \
	$(SOURCES.c) \
	$(SOURCES.F) \
	$(SOURCES.f)

TARGETS.c = main.c data_io.c spectra.c 

TARGETS.h = ../sunsort_src/sort_thread.h formats.h

TARGETS = \
	$(TARGETS.h) \
	$(TARGETS.c)

OBJECTS = \
	$(SOURCES.c:%.c=%.o) \
	$(SOURCES.f:%.f=%.o) \
	$(SOURCES.F:%.F=%.o) \
	$(TARGETS.c:%.c=%.o)

# Compiler flags.

# for solaris 2.x
CFLAGS = -DSVR4 -xO4 -I../sunsort_src 
FFLAGS = -g -e -I../sunsort_src 
CPPFLAGS += 
LDFLAGS +=
LDLIBS += -lthread

# Standard targets.

all:	 $(OBJECTS)
objects: $(SOURCES.c) $(SOURCES.F) $(TARGETS.c) $(TARGETS.h) $(OBJECTS)
sources: $(SOURCES)
targets: $(SOURCES) $(TARGETS)

clean :
	-rm -f *.o */*.o core *~ *% *.prj

install:
	$(MAKE) formats.mk
	-rm -f $(OBJECTS)
	-test -d optimised || mkdir optimised
	for FILE in $(OBJECTS) ; do ln -s optimised/$$FILE ; done
	$(MAKE) libsunsort.a
	-rm -f $(OBJECTS)	
	-test -d debug || mkdir debug
	for FILE in $(OBJECTS) ; do ln -s debug/$$FILE ; done
	$(MAKE) libdbx_sunsort.a 
	@echo "sunsort libraries installed ..."
	-$(MAKE) checks

checks: externs.prj llib-lsunsort.ln

externs.prj: externs.f
	../ftnchek -library -project externs.f

llib-lsunsort.ln: externs.c externs-spec.c
	-lint -I../sunsort_src -osunsort externs.c externs-spec.c

libdbx_sunsort.a := CFLAGS = -DSVR4 -g -I../sunsort_src 
libdbx_sunsort.a := FFLAGS = -g -e 

libsunsort.a libdbx_sunsort.a: objects
	-rm -f $@
	ar crv $@ `lorder $(OBJECTS) |tsort`
	@echo "make $@ ... completed"


lint:
	lint -DSVR4 -I../sunsort_src -m -u $(SOURCES.c) $(TARGETS.c)

formats.mk formats.h: formats.lst makeformat
	./makeformat

data_io.o: ../sunsort_src/sort_def.h ../sunsort_src/sort_thread.h
data_io.o: ../sunsort_src/sort_def.h ../sunsort_src/eg.h
filt.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h rdtape.h
filt.o: ../sunsort_src/sort_def.h formats.h
main.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h rdtape.h
main.o: ../sunsort_src/sort_def.h formats.h
rdtape_anu.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h rdtape.h
rdtape_anu.o: ../sunsort_src/sort_def.h formats.h
rdtape_demon.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_demon.o: rdtape.h ../sunsort_src/sort_def.h formats.h rdtape_eg.h
rdtape_eg.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h rdtape.h
rdtape_eg.o: ../sunsort_src/sort_def.h formats.h rdtape_eg.h
rdtape_fsu.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h rdtape.h
rdtape_fsu.o: ../sunsort_src/sort_def.h formats.h
rdtape_fsupc.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_fsupc.o: rdtape.h ../sunsort_src/sort_def.h formats.h
rdtape_in2p3.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_in2p3.o: rdtape.h ../sunsort_src/sort_def.h formats.h
rdtape_megha.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_megha.o: rdtape.h ../sunsort_src/sort_def.h formats.h rdtape_eg.h
rdtape_none.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_none.o: rdtape.h ../sunsort_src/sort_def.h formats.h
rdtape_nscl.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_nscl.o: rdtape.h ../sunsort_src/sort_def.h formats.h
rdtape_nsf.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_nsf.o: rdtape.h ../sunsort_src/sort_def.h formats.h
rdtape_nsf2.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
rdtape_nsf2.o: rdtape.h ../sunsort_src/sort_def.h formats.h
spectra.o: ../sunsort_src/sort_thread.h ../sunsort_src/sort_def.h
spectra.o: ../sunsort_src/eg.h spectra.h
