#	Makefile -- -- makefile for "tot_info" utility

#	last edit:	89/02/06	D A Gwyn

#	SCCS ID:	@(#)tot_info.mk	1.1 (edited for publication)

PRODUCT = tot_info

MAKEFIL	= Makefile
HEADERS = chisq.h gamma.h
CFILES	= $(PRODUCT).c info.c gamma.c chisq.c # chisq.c is a "freebie"
OBJECTS	= $(PRODUCT).o info.o gamma.o # chisq.o
LIBTEST	= g_test
TSRC	= $(LIBTEST).c
TOBJ	= $(LIBTEST).o
TFILES	= $(PRODUCT).in $(PRODUCT).exp
LIBES	= -lm
LLIBES	= $(LIBES)
MANSRCS	= $(PRODUCT).1 chisq.3 gamma.3

# "standard" UNIX utilities that may need invocations tweaked:
INS	= cp
LINT	= lint
FLOW	= cflow
XREF	= cxref -c -s -w132

# printer configuration:
LPR	= lp
PR	= pr -f

# DWB configuration:
TOPT	= -Ti300
TMAC	= -man
EQN	= eqn $(TOPT)
TROFF	= troff $(TOPT) $(TMAC)
TPOST	= | dimp


$(PRODUCT):	$(OBJECTS)
	$(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBES)

chisq.o info.o:	chisq.h

gamma.o:	gamma.h

print:		$(MAKEFIL) $(HEADERS) $(CFILES) $(TFILES) $(MANSRCS)
	$(PR) $(MAKEFIL) $(HEADERS) $(CFILES) $(TFILES) $(MANSRCS) | $(LPR)

typeset:	$(MANSRCS)
	$(EQN) $(PRODUCT).1 | $(TROFF) $(TPOST)
	$(EQN) chisq.3 | $(TROFF) $(TPOST)
	$(EQN) gamma.3 | $(TROFF) $(TPOST)

lint:		$(HEADERS) $(CFILES)
	$(LINT) $(CFILES) $(LLIBES) > $@

flow:		$(HEADERS) $(CFILES)
	$(FLOW) $(CFILES) > $@

xref:		$(HEADERS) $(CFILES)
	$(XREF) $(CFILES) > $@

test:		gamma_test tot_test

tot_test:	$(PRODUCT) $(TFILES)
	./$(PRODUCT) < $(PRODUCT).in > $(PRODUCT).out
	@if cmp -s $(PRODUCT).exp $(PRODUCT).out ; \
	then	echo 'Tested okay' ; \
	else	echo '*** Test failed; differences:' ; \
		diff $(PRODUCT).exp $(PRODUCT).out ; \
		exit 1 ; \
	fi

gamma_test:	$(LIBTEST)
	./$(LIBTEST)

$(LIBTEST):	$(TOBJ) gamma.o
	$(CC) $(LDFLAGS) -o $@ $(TOBJ) gamma.o $(LIBES)

$(LIBTEST).o:	gamma.h

clean:
	-rm -f $(OBJECTS) $(TOBJ) $(LIBTEST) $(PRODUCT).out \
	lint flow xref core mon.out

clobber:	clean
	-rm -f $(PRODUCT)
