#Makefile for treepar
# 28.Jul.87  jimmc  Initial definition
#  2.Aug.87  jimmc  Add backup tag
# 20.Jan.88  jimmc  Add man tag
#  1.Mar.88  jimmc  Fix up shar stuff

PROGRAM	      = treepar
DEST	      = .

XINCDIR = /u8/X/X10R4/include
#NOTE:non-standard X directory; typically is /usr/include/X
XLIB = /u8/X/X10R4/lib/libX.a
#Typically is /usr/lib/libX.a

MKMF =	mkmf

CLASH = clash

SHAR = shar

MAKE		=	make $(MFLAGS)
MAKEFILE	= Makefile

SPINDIR = ../spin

BKPMACH = wheel
BKPDIR = geneal/treepar.bak

# careful with this variable.  it is really set down in target "depend:"
CFLAGS	= $(CCOPTS) -I../spin -I/u8/X/X10R4/include

INCLUDE	= -I$(SPINDIR) -I$(XINCDIR)
CCOPTS = -g -DX10

LINKER	      = cc 

LINTFLAGS =	$(INCLUDE) $(LINTOPTS)
LINTOPTS	= -bauz

SRCS	      = main.c \
		misc.c \
		network.c \
		par.c \
		plot.c \
		plotHP.c \
		plotSIZE.c \
		plotTEST.c \
		plotX.c \
		tfile.c \
		tklex.c

OBJS	      = main.o \
		misc.o \
		network.o \
		par.o \
		plot.o \
		plotHP.o \
		plotSIZE.o \
		plotTEST.o \
		plotX.o \
		tfile.o \
		tklex.o

HDRS	      = network.h \
		plot.h \
		tfile.h \
		tklex.h

EXTHDRS	      = ../spin/xalloc.h \
		/usr/include/ctype.h \
		/usr/include/stdio.h \
		/usr/include/string.h \
		/usr/include/varargs.h

LIBS          =	$(SPINDIR)/spin.a

LINTLIBS = $(SPINDIR)/llib-lspin.a.ln

XLINTLIBS     =

MANSRC = treepar.n
DOCFILES = README $(MANSRC) sample.tf
SHARFILES1 = $(DOCFILES) $(MAKEFILE) $(HDRS) [a-o]*.c
SHARFILES2 = [p-z]*.c
SHAROUT1 = $(PROGRAM).1.sh
SHAROUT2 = $(PROGRAM).2.sh

default:	$(PROGRAM)

all:		$(PROGRAM)

$(PROGRAM):	$(OBJS) $(LIBS)
		@echo -n "Loading $(PROGRAM) ... "
		@rm -f $(PROGRAM)
		@$(LINKER) $(CFLAGS) $(OBJS) $(LIBS) $(XLIB) -lm \
			-o $(PROGRAM).new
		@mv -f $(PROGRAM).new $(PROGRAM)
		@echo "done"

install:	$(PROGRAM)
		@echo Installing $(PROGRAM) in $(DEST)
		@install -m 770 -c $(PROGRAM) $(DEST)

depend:		$(XDEP)
		@echo Updating $(MAKEFILE) ...
		@$(MKMF) -f $(MAKEFILE) \
			CFLAGS='$$(CCOPTS) $(INCLUDE)'
# PROGRAM makes mkmf use p.Makefile template
#			PROGRAM=$(PROGRAM)

lint:;		lint $(LINTFLAGS) $(SRCS) $(LINTLIBS)

clash:;		$(CLASH) $(SRCS) $(HDRS)

man:		treepar.man

treepar.man:	$(MANSRC)
		nroff -man $(MANSRC) > treepar.man.new
		mv treepar.man.new treepar.man

shar:		$(SHAROUT1) $(SHAROUT2)

$(SHAROUT1):	$(SHARFILES1)
		$(SHAR) -n 1 -e 2 $(SHARFILES1) > $(SHAROUT1)

$(SHAROUT2):	$(SHARFILES2)
		$(SHAR) -n 2 -e 2 $(SHARFILES2) > $(SHAROUT2)

tidy:;		@rm -f $(OBJS)

clean:		tidy
		@rm -f $(PROGRAM)

print:;		@pr $(SRCS) $(HDRS)

tags:           $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)

backup:;	tar cf - $(HDRS) $(SRCS) $(MAKEFILE) | \
			rsh $(BKPMACH) 'cd $(BKPDIR); tar xBf -'

###
main.o: /usr/include/stdio.h ../spin/xalloc.h
misc.o: /usr/include/stdio.h ../spin/xalloc.h
network.o: /usr/include/stdio.h /usr/include/ctype.h /usr/include/string.h \
	../spin/xalloc.h network.h tklex.h tfile.h plot.h
par.o: /usr/include/ctype.h network.h ../spin/xalloc.h
plot.o: /usr/include/string.h plot.h
plotHP.o: /usr/include/stdio.h plot.h
plotSIZE.o: /usr/include/stdio.h plot.h
plotTEST.o: /usr/include/stdio.h plot.h
plotX.o: plot.h
tfile.o: /usr/include/stdio.h /usr/include/varargs.h /usr/include/string.h \
	../spin/xalloc.h tklex.h tfile.h
tklex.o: /usr/include/stdio.h /usr/include/ctype.h /usr/include/string.h \
	tklex.h
