P=		lp 

SIMPDIR=	$(PWD)
DOCDIR=		$(SIMPDIR)/Doc
LDHDIR=		$(SIMPDIR)/Ldh
LINEDIR=	$(SIMPDIR)/Line
LIBDIR=		$(SIMPDIR)/Lib

DOCFILES=\
		$(DOCDIR)/Data_redn.doc \
		$(DOCDIR)/Input.doc \
		$(DOCDIR)/Output.doc \
		$(DOCDIR)/Simplex.doc

OTHERFILES=\
		Makefile \
		$(LIBDIR)/simpdefs.h \
		$(LINEDIR)/linefit.c \
		$(LINEDIR)/linefit.dat \
		$(LDHDIR)/ldhfit.c \
		$(LDHDIR)/ldhfit.dat 

CFILES=\
		$(LIBDIR)/simpinput.c \
		$(LIBDIR)/simpmain.c \
		$(LIBDIR)/simpfit.c \
		$(LIBDIR)/simpdev.c \
		$(LIBDIR)/simplib0.c 

OBJECTS=\
		$(LIBDIR)/simpinput.o \
		$(LIBDIR)/simpmain.o \
		$(LIBDIR)/simpfit.o \
		$(LIBDIR)/simpdev.o \
		$(LIBDIR)/simplib0.o 

LINT=		lint -uvx 

LIBES=		-lm

CFLAGS=		-cckr -O -I$(LIBDIR)

all:		$(LINEDIR)/linefit $(LDHDIR)/ldhfit

$(LINEDIR)/linefit:	$(OBJECTS) $(LINEDIR)/linefit.o
		cc $(CFLAGS) $(OBJECTS) $(LINEDIR)/linefit.o $(LIBES) -o $(LINEDIR)/linefit
		size $(LINEDIR)/linefit

$(LDHDIR)/ldhfit:		$(OBJECTS) $(LDHDIR)/ldhfit.o
		cc $(CFLAGS) $(OBJECTS) $(LDHDIR)/ldhfit.o $(LIBES) -o $(LDHDIR)/ldhfit
		size $(LDHDIR)/ldhfit

$(OBJECTS): 	$(CFILES) $(LIBDIR)/simpdefs.h
		(cd $(LIBDIR); make)

$(LINEDIR)/linefit.o:	$(LINEDIR)/linefit.c $(LIBDIR)/simpdefs.h
		(cd $(LINEDIR); cc -c $(CFLAGS) $*.c)

$(LDHDIR)/ldhfit.o:	$(LDHDIR)/ldhfit.c $(LIBDIR)/simpdefs.h
		(cd $(LDHDIR); cc -c $(CFLAGS) $*.c)

clean:
		-rm $(LINEDIR)/*.o $(LINEDIR)/*.out* $(LINEDIR)/linefit
		-rm $(LDHDIR)/*.o $(LDHDIR)/*.out* $(LDHDIR)/ldhfit

spotless:	clean
		(cd $(LIBDIR); make clean)

install:	$(LDHDIR)/ldhfit
		strip $(LDHDIR)/ldhfit
		mv $(LDHDIR)/ldhfit /usr/local/bin/ldhfit

manpage:	
		nroff -man $(DOCDIR)/simplex.1 | col | pg

printmanpage:	
		troff -man $(DOCDIR)/simplex.1 | dpost | $(P)

printall:	printmanpage
		pr $(CFILES) $(OTHERFILES) $(DOCFILES) | $(P)

testline:	$(LINEDIR)/linefit.out
		@echo 
		@cat $(LINEDIR)/linefit.out
		@echo 
		-diff $(LINEDIR)/linefit.test1 $(LINEDIR)/linefit.out
#		-diff $(LINEDIR)/linefit.test2 $(LINEDIR)/linefit.out

$(LINEDIR)/linefit.out:	$(LINEDIR)/linefit
		@echo "this may take a while; please be patient...."
		$(LINEDIR)/linefit -sn -dl $(LINEDIR)/linefit.dat $(LINEDIR)/linefit.out

testldh:	$(LDHDIR)/ldhfit.out
		@echo 
		@cat $(LDHDIR)/ldhfit.out
		@echo 
		-diff $(LDHDIR)/ldhfit.test1 $(LDHDIR)/ldhfit.out
#		-diff $(LDHDIR)/ldhfit.test2 $(LDHDIR)/ldhfit.out

$(LDHDIR)/ldhfit.out:	$(LDHDIR)/ldhfit
		@echo "this may take a while; please be patient...."
		$(LDHDIR)/ldhfit -sn -dl $(LDHDIR)/ldhfit.dat $(LDHDIR)/ldhfit.out 2>/dev/null 1>/dev/null

testldhx:	$(LDHDIR)/ldhfit.out $(LDHDIR)/ldhfit.outx
		-diff $(LDHDIR)/ldhfit.out $(LDHDIR)/ldhfit.outx

$(LDHDIR)/ldhfit.outx:	$(LDHDIR)/ldhfit
		@echo "this may take a while; please be patient...."
		cat $(LDHDIR)/ldhfit.dat | \
			sed 's/\(quad_test= \)[0-9]*/\1 0/' | \
			$(LDHDIR)/ldhfit -sn -dl -o $(LDHDIR)/ldhfit.outx 2>/dev/null 1>/dev/null

lint:
		$(LINT) $(CFILES) $(LINEDIR)/linefit.c 

shar:
#	cat MANIFEST | sed 1,2d | makekit -pX -s42k >scr
#	cat MANIFEST | sed 1,2d | makekit -pX -s25k >scr
	cat MANIFEST | sed 1,2d | makekit  >scr
	diff scr MANIFEST
	rm scr
