P=		lp 


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

LINETESTDIR=	$(LINEDIR)/tests
LDHTESTDIR=	$(LDHDIR)/tests

DOCFILES=\
		$(DOCDIR)/Data_redn.txt \
		$(DOCDIR)/Input.txt \
		$(DOCDIR)/Output.txt \
		$(DOCDIR)/Simplex.txt \
		$(DOCDIR)/simplex.1.txt \
		$(DOCDIR)/simplex.1


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)
CFLAGS = -Wall -ggdb -O -DOLD_TERMIOS -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
		-rm $(LDHDIR)/*.o  $(LDHDIR)/*.out $(LDHDIR)/*.outx 

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

spotless:	cleaner
		-rm $(LINEDIR)/linefit
		-rm $(LDHDIR)/ldhfit

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

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

printmanpage:	
		groffer --man --ps $(DOCDIR)/simplex.1 		#| $(P)

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


testline:	$(LINEDIR)/linefit.out
		@echo
		@echo "********** COPY LINEFIT.OUT TO STDOUT"
		@echo 
		@echo 
		@cat $(LINEDIR)/linefit.out
		@echo 
#		-diff -ibBw $(LINETESTDIR)/linefit.test1-mod-4d30 $(LINEDIR)/linefit.out
#		-diff -ibBw $(LINETESTDIR)/linefit.test2-mod-4d30 $(LINEDIR)/linefit.out
		@echo
		@echo "********** DIFF LINEFIT.TEST2003-octane (REF SGI OUTPUT) VS LINEFIT.OUT (NEW)"
		@echo
		-diff -ibBw $(LINETESTDIR)/linefit.test2003-octane $(LINEDIR)/linefit.out
		@echo
		@echo "********** DIFF TEST-OUT-MACOSX (REF MACOSX OUTPUT) VS LINEFIT.OUT (NEW)"
		@echo
		-diff -ibBw $(LINETESTDIR)/test.out-macosx $(LINEDIR)/linefit.out


$(LINEDIR)/linefit.out:		# $(LINEDIR)/linefit
		$(LINEDIR)/linefit -sn -dl $(LINEDIR)/linefit.dat \
			$(LINEDIR)/linefit.out

testldh:	$(LDHDIR)/ldhfit.out
		@echo
		@echo "********** COPY LDHFIT.OUT TO STDOUT"
		@echo 
		@cat $(LDHDIR)/ldhfit.out
#		-diff -ibBw $(LDHTESTDIR)/ldhfit.test1-mod-4d30 $(LDHDIR)/ldhfit.out
		@echo
		@echo "********** DIFF LDHFIT.TEST2-MOD-4d30 (REF SGI OUTPUT) VS LDHFIT.OUT (NEW)"
		@echo
		-diff -ibBw $(LDHTESTDIR)/ldhfit.test2-mod-4d30 $(LDHDIR)/ldhfit.out
		@echo
		@echo "********** DIFF TEST-OUT-MACOSX (REF MACOSX OUTPUT) VS LDHFIT.OUT (NEW)"
		@echo
		-diff -ibBw $(LDHTESTDIR)/test.out-macosx $(LDHDIR)/ldhfit.out


$(LDHDIR)/ldhfit.out:		# $(LDHDIR)/ldhfit
		$(LDHDIR)/ldhfit -sn -dl $(LDHDIR)/ldhfit.dat \
			$(LDHDIR)/ldhfit.out 2>/dev/null 1>/dev/null


testldhx:	$(LDHDIR)/ldhfit.out $(LDHDIR)/ldhfit.outx
		@echo
		@echo "********** DIFF LDHFIT.OUT VS LDHFIT.OUTX"
		@echo
		-diff -ibBw $(LDHDIR)/ldhfit.out $(LDHDIR)/ldhfit.outx


$(LDHDIR)/ldhfit.outx:		# $(LDHDIR)/ldhfit
		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
