#Makefile for geneal
#last edit 11-Jan-1988 09:29:05 by jimmc ()

PROGRAM	      = geneal
DEST	      = /tmp

#Program to pack file into shell archive
SHAR =	shar

#Program to check for symbol name clashes
CLASH = clash

MKMF =	mkmf

MAKE		=	make $(MFLAGS)
MAKEFILE	= Makefile

SPINDIR = ../spin

BKPMACH = wheel
BKPDIR = geneal/geneal.bak

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

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

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

EXTHDRS	      = ../spin/spin.h \
		../spin/xalloc.h \
		/usr/include/ctype.h \
		/usr/include/ctype.h \
		/usr/include/stdio.h \
		/usr/include/strings.h \
		/usr/include/sys/stat.h \
		/usr/include/sys/types.h

HDRS	      = dataman.h \
		famntree.h \
		geneal.h \
		index.h \
		pagemap.h

LDFLAGS	      = -g

LINKER	      = cc

MAKEFILE      = Makefile

OBJS	      = browse.o \
		dataman.o \
		dates.o \
		datesort.o \
		dlists.o \
		errorman.o \
		famatree.o \
		famdtree.o \
		family.o \
		familyh.o \
		famlists.o \
		famntree.o \
		fgdat.o \
		fgsubs.o \
		gconsist.o \
		geneal.o \
		index.o \
		indivs.o \
		lists.o \
		misc.o \
		pagemap.o \
		strings.o \
		vsprintf.o

SRCS	      = browse.c \
		dataman.c \
		dates.c \
		datesort.c \
		dlists.c \
		errorman.c \
		famatree.c \
		famdtree.c \
		family.c \
		familyh.c \
		famlists.c \
		famntree.c \
		fgdat.c \
		fgsubs.c \
		gconsist.c \
		geneal.c \
		index.c \
		indivs.c \
		lists.c \
		misc.c \
		pagemap.c \
		strings.c \
		vsprintf.c

LIBS          =	$(SPINDIR)/spin.a

PRINT	      = pr

DOCFILES =	README History PGMR.DOC geneal.n
SHARFILES1 =	$(DOCFILES) $(MAKEFILE) $(HDRS) sample.dat
SHARFILES2 =	[a-eh-zA-Z]*.c
SHARFILES3 =	[fg]*.c
SHAROUT1 =	$(PROGRAM).1.sh
SHAROUT2 =	$(PROGRAM).2.sh
SHAROUT3 =	$(PROGRAM).3.sh

all:		$(PROGRAM)

shar:		$(SHAROUT1) $(SHAROUT2) $(SHAROUT3)

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

man:		$(PROGRAM).n
		nroff -man $(PROGRAM).n > $(PROGRAM).man.new
		mv $(PROGRAM).man.new $(PROGRAM).man

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

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

$(SHAROUT3):	$(SHARFILES3)
		$(SHAR) -n 3 -e 3 $(SHARFILES3) > $(SHAROUT3)

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

clean:		tidy
		@rm -f $(PROGRAM)

tidy:;		@rm -f $(OBJS)

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

index:;		@ctags -wx $(HDRS) $(SRCS)

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

install:	$(PROGRAM)
		@echo Installing $(PROGRAM) in $(DEST)
		@install -s $(PROGRAM) $(DEST)

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

program:        $(PROGRAM)

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

update:		$(DEST)/$(PROGRAM)

$(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS)
		@make -f $(MAKEFILE) DEST=$(DEST) install

backup:;	tar chf - $(HDRS) $(SRCS) $(MAKEFILE) | \
			rsh $(BKPMACH) 'cd $(BKPDIR); tar xBf -'
###
browse.o: /usr/include/stdio.h geneal.h
dataman.o: /usr/include/stdio.h /usr/include/sys/types.h \
	/usr/include/sys/stat.h \
	/usr/include/ctype.h /usr/include/strings.h index.h dataman.h
dates.o: /usr/include/stdio.h /usr/include/ctype.h /usr/include/strings.h \
	geneal.h
datesort.o: /usr/include/stdio.h ../spin/xalloc.h geneal.h
dlists.o: /usr/include/stdio.h geneal.h
errorman.o: /usr/include/stdio.h /usr/include/strings.h
famatree.o: /usr/include/stdio.h geneal.h
famdtree.o: /usr/include/stdio.h geneal.h /usr/include/ctype.h
family.o: /usr/include/stdio.h /usr/include/ctype.h geneal.h pagemap.h
familyh.o: /usr/include/stdio.h /usr/include/ctype.h /usr/include/strings.h \
	geneal.h
famlists.o: /usr/include/stdio.h geneal.h
famntree.o: /usr/include/stdio.h /usr/include/ctype.h \
	/usr/include/strings.h geneal.h famntree.h ../spin/xalloc.h
fgdat.o: /usr/include/stdio.h /usr/include/strings.h geneal.h \
	../spin/xalloc.h
fgsubs.o: /usr/include/stdio.h /usr/include/strings.h dataman.h geneal.h \
	../spin/xalloc.h
gconsist.o: /usr/include/stdio.h geneal.h
geneal.o: /usr/include/stdio.h /usr/include/ctype.h ../spin/spin.h geneal.h
index.o: index.h
indivs.o: /usr/include/stdio.h geneal.h ../spin/xalloc.h
lists.o: /usr/include/stdio.h ../spin/xalloc.h geneal.h ../spin/spin.h
misc.o: /usr/include/stdio.h /usr/include/strings.h ../spin/spin.h geneal.h
pagemap.o: pagemap.h ../spin/xalloc.h /usr/include/stdio.h
strings.o: /usr/include/ctype.h /usr/include/strings.h ../spin/xalloc.h
vsprintf.o: /usr/include/stdio.h
