FC=gfortran 
FFLAGS=-g
FLOPTS=-g
ARCHIVER=ar rv
LIBNAME=nusdas3
LIBRARY=../lib$(LIBNAME).a

INSTALL=install
PREFIX=$(HOME)
INCDIR=$(PREFIX)/include

BINS=prepro errtab reftab bits
SRCS=n3bits.f90 n3hashraw.f90 n3regex.f90 n3io1.f90
OBJS=n3bits.o n3hashraw.o n3regex.o n3io1.o

.SUFFIXES:
.SUFFIXES: .f90 .o
.PHONY: p1tools p2prepro p3lib p4test all test

.f90.o:
	$(FC) $(FFLAGS) -c $<

all: p3lib

p1tools: $(BINS)

prepro: prepro.o n3regex.o
	$(FC) $(FLOPTS) -o prepro prepro.o n3regex.o n3bits.o

errtab: errtab.o
	$(FC) $(FLOPTS) -o errtab errtab.o

reftab: reftab.o n3hashraw.o n3bits.o n3io1.o
	$(FC) $(FLOPTS) -o reftab reftab.o n3hashraw.o n3bits.o n3io1.o

p2prepro: p1tools

p3lib: $(LIBRARY)

$(LIBRARY): $(OBJS)
	$(ARCHIVER) $(LIBRARY) $(OBJS)

test: p4test

p4test: bits
	./bits

bits: bits.o n3bits.o
	$(FC) $(FLOPTS) -o bits bits.o n3bits.o

install:
	$(INSTALL) n3*.mod $(INCDIR)

clean:
	-rm -f $(BINS) *.o *.bak *~ *.mod a.out core *.a

prepro.o: n3regex.o n3bits.o
reftab.o: n3hashraw.o
n3hashraw.o: n3bits.o n3io1.o
n3io1.o: n3bits.o
