# makefile for UNIX bplus test

# Bplus routines, utility routines, and the whole library
PLUSLIB		= bplus.o find1stkey.o
UTILLIB		= filelen.o memmove.o
LIB		= $(PLUSLIB) $(UTILLIB)
LIBSRC		= bplus.c find1stkey.c filelen.c memmove.c
DOCFILES	= read.me bplus.doc

TESTS		= utest3 utest4 zoodb
TESTOBJ		= utest3.o utest4.o zoodb.o
TESTSRC		= utest3.c utest4.c s.zoodb.c

DEMOSRC		= ndb.c lookup.c names.c

# C flags, load flags, misc (shared) flags
CFLAGS		= -O
LFLAGS		=
MFLAGS		= 
CC		= cc $(CFLAGS) ${MFLAGS}

# archive for distribution
BPLUSARC	= bplus11a.arc

# info to install the libraries
LIBX286		= /lib
LIBX386		= /lib/386
LIBDOS		= /usr/lib/dos

all: $(TESTS)

$(TESTS): bplus.a $$@.o
	$(CC) $(LFLAGS) -o $@ $@.o bplus.a

$(PLUSLIB):	bplus.h
$(TESTOBJ):	bplus.h

bplus.a: $(LIB)
	ar rv bplus.a $?
	ranlib bplus.a

# special section to make libraries under Xenix386, for Xenix286 and MS-DOS
extlib:		$(LIBSRC) bplus.h
	@echo "Making x286 small"
	cc -c -O -M2 $(LIBSRC)
	ar rv Sbplus286.a $(LIB)
	ranlib Sbplus286.a
	@echo "Making x286 large"
	cc -c -O -M2l $(LIBSRC)
	ar rv Lbplus286.a $(LIB)
	ranlib Lbplus286.a
	@echo "Making DOS small"
	cc -c -O -M2 -dos $(LIBSRC)
	ar rv SbplusDOS.a $(LIB)
	ranlib SbplusDOS.a
	@echo "Making DOS large"
	cc -c -O -M2l -dos $(LIBSRC)
	ar rv LbplusDOS.a $(LIB)
	ranlib LbplusDOS.a
	@echo "Making 386 version"
	cc -c -O $(LIBSRC)
	ar rv bplus.a $(LIB)
	touch extlib

# install the special libraries - run su LIBOWNER
libinstall: extlib
	cp Slib286.a $(LIBX286)/Slibbplus.a
	cp Llib286.a $(LIBX286)/Llibbplus.a
	cp bplus.a $(LIBX386)/Slibbplus.a
	cp SlibDOS.a $(LIBDOS)/Slibbplus.a
	cp LlibDOS.a $(LIBDOS)/Llibbplus.a

.SUFFIXES:	.exe

# special inference rules, DOS and SCCS
.o.exe:
	$(CC) -o $@ -dos $< bplus.a
.c~.o:
	get -s $?
	$(CC) -c $*.c && rm -f $*.c
.c.o:
	$(CC) -c $*.c

MISCSAVE	= $(DOCFILES) bplus.h makefile
SAVELIST	= $(LIBSRC) $(MISCSAVE) $(DEMOSRC)
backup:		bplus.zoo
bplus.zoo:	$(SAVELIST) s.bplus.c
	zoo aunPP bplus $?

bplusarc:	$(BPLUSARC)

$(BPLUSARC):	$(SAVELIST)
	rm -f $(BPLUSARC)
	arc a bplus $?

shar:		bplus.shar
bplus.shar:	$(SAVELIST)
	$${SHAR:-shar} $(SAVELIST) > bplus.shar

# cleanup after backup
clean:		backup
	rm $(SAVELIST)

# phone number database software

PDBX		= ndb lookup
pdbx:		$(PDBX) lookup.exe

$(PDBX):	bplus.a $$@.o
	cc $(MFLAGS) $(LFLAGS) -o $@ $@.o bplus.a

lookup.exe:	lookup.c
	$(CC) $(LFLAGS) -dos -o lookup.exe lookup.c bplus.a

ndb.o lookup.o:	bplus.h
