#
# simple makefile to make the pbl library and the test frame
#
AR=      /usr/bin/ar
RANLIB=  /usr/bin/ar ts
IPATH=   -I.
CFLAGS=  -Wall -O3 ${IPATH} 
CC= gcc

INCLIB    = 

LIB_OBJS  = pbl.o pblhash.o pblkf.o pblisam.o
THELIB    = libpbl.a

EXE_OBJS1 = pblhttst.o
THEEXE1   = pblhttst

EXE_OBJS2 = pblkftst.o
THEEXE2   = pblkftst

EXE_OBJS3 = pbliftst.o
THEEXE3   = pbliftst

EXE_OBJS4 = pblkfblockprint.o
THEEXE4   = pblkfblockprint

all: $(THELIB) $(THEEXE1) $(THEEXE2) $(THEEXE3) $(THEEXE4)

$(THELIB):  $(LIB_OBJS)
	$(AR) rc $(THELIB) $?
	$(RANLIB) $(THELIB)

$(THEEXE1):  $(EXE_OBJS1) $(THELIB)
	$(CC) -O2 -o $(THEEXE1) $(EXE_OBJS1) $(THELIB) $(INCLIB)

$(THEEXE2):  $(EXE_OBJS2) $(THELIB)
	$(CC) -O2 -o $(THEEXE2) $(EXE_OBJS2) $(THELIB) $(INCLIB)

$(THEEXE3):  $(EXE_OBJS3) $(THELIB)
	$(CC) -O2 -o $(THEEXE3) $(EXE_OBJS3) $(THELIB) $(INCLIB)

$(THEEXE4):  $(EXE_OBJS4) $(THELIB)
	$(CC) -O2 -o $(THEEXE4) $(EXE_OBJS4) $(THELIB) $(INCLIB)

test: $(THEEXE3)
	mkdir -p isamtest/
	rm -f isamtest/*
	$(THEEXE3) ISAM0001.TST > /dev/null
	diff ISAM0001.TST pbliftst.log || ( echo test case 1 failed; exit 1 )
	echo passed test case 1
	$(THEEXE3) ISAM0004.TST > /dev/null
	diff ISAM0004.TST pbliftst.log || ( echo test case 4 failed; exit 1 )
	echo passed test case 1
	rm -f isamtest/*
	echo !!! all tests passed !!!

clean:
	rm -f ${THELIB}  ${LIB_OBJS} core
	rm -f ${THEEXE1} ${EXE_OBJS1}
	rm -f ${THEEXE2} ${EXE_OBJS2}
	rm -f ${THEEXE3} ${EXE_OBJS3}
	rm -f ${THEEXE4} ${EXE_OBJS4}
	rm -f isamtest/*

