###############################################################################
#
# File:         makefile
# RCS:          $Header: $
# Description:  Makefile for Berkeley db
# Author:       Darryl Okahata
# Created:      Thu Oct 20 23:58:45 1994
# Modified:     Mon Oct 24 00:09:07 1994 (darrylo@home) darrylo@hostigos
# Language:     N/A
# Package:      N/A
# Status:       Experimental
#
# (C) Copyright 1994, Darryl Okahata, all rights reserved.
#
###############################################################################


#
# Define LSEEK_BE_BROKEN with WATCOM C/C++^32 10.0A or earlier, as these
# versions have a bug in the lseek() routine where, when a file's size is
# extended, the extended area is not always zero-filled.  This causes
# problems with dbm access.  It is not known if later releases fix this
# bug (it has been reported), as 10.0A is the latest version as this is
# being written.
#
DEFINES= /D__DBINTERFACE_PRIVATE /DLSEEK_BE_BROKEN /DPURIFY

.BEFORE
	# This is for debugging:
	#set wcc386=/d2 $(DEFINES)
	# This is for generating optimized code:
	set wcc386=/oilrt/5r/fpi/fp5/zp4/oe=40 $(DEFINES)

LIBDB=	libdb.lib

OBJ1=	hash.obj hash_big.obj hash_buf.obj hash_fun.obj hash_log.obj \
	hash_pag.obj hsearch.obj ndbm.obj

OBJ2=	bt_close.obj bt_conv.obj bt_debug.obj bt_delet.obj bt_get.obj \
	bt_open.obj bt_overf.obj bt_page.obj bt_put.obj bt_searc.obj \
	bt_seq.obj bt_split.obj bt_utils.obj

OBJ3=	db.obj

OBJ4=	mpool.obj

#OBJ5=	rec_clos.obj rec_dele.obj rec_get.obj rec_open.obj rec_put.obj \
#	rec_sear.obj rec_seq.obj rec_util.obj
OBJ5=

MISC=	snprintf.obj

OBJS=	$(OBJ1) $(OBJ2) $(OBJ3) $(OBJ4) $(OBJ5) $(MISC)

CC=wcl386 /j

$(LIBDB): $(OBJS) libresp.lbc
	wlib $(LIBDB) @libresp.lbc

libresp.lbc:	makefile
	-del libresp.lbc
	for %f in ($(OBJS)) do echo -+ %f >> libresp.lbc

CL=	$(CC) /c $(DEBUG) /i=. /i=.\include

hash.obj: ..\..\hash\hash.c
	$(CL) /i=..\..\hash ..\..\hash\hash.c
hash_big.obj: ..\..\hash\hash_bigkey.c
	$(CL) /i=..\..\hash ..\..\hash\hash_bigkey.c
hash_buf.obj: ..\..\hash\hash_buf.c
	$(CL) /i=..\..\hash ..\..\hash\hash_buf.c
hash_fun.obj: ..\..\hash\hash_func.c
	$(CL) /i=..\..\hash ..\..\hash\hash_func.c
hash_log.obj: ..\..\hash\hash_log2.c
	$(CL) /i=..\..\hash ..\..\hash\hash_log2.c
hash_pag.obj: ..\..\hash\hash_page.c
	$(CL) /i=..\..\hash ..\..\hash\hash_page.c
hsearch.obj: ..\..\hash\hsearch.c
	$(CL) /i=..\..\hash ..\..\hash\hsearch.c
ndbm.obj: ..\..\hash\ndbm.c
	$(CL) /i=..\..\hash ..\..\hash\ndbm.c

bt_close.obj: ..\..\btree\bt_close.c
	$(CL) /i=..\..\btree ..\..\btree\bt_close.c
bt_conv.obj: ..\..\btree\bt_conv.c
	$(CL) /i=..\..\btree ..\..\btree\bt_conv.c
bt_debug.obj: ..\..\btree\bt_debug.c
	$(CL) /i=..\..\btree ..\..\btree\bt_debug.c
bt_delet.obj: ..\..\btree\bt_delete.c
	$(CL) /i=..\..\btree ..\..\btree\bt_delete.c
bt_get.obj: ..\..\btree\bt_get.c
	$(CL) /i=..\..\btree ..\..\btree\bt_get.c
bt_open.obj: ..\..\btree\bt_open.c
	$(CL) /i=..\..\btree ..\..\btree\bt_open.c
bt_overf.obj: ..\..\btree\bt_overflow.c
	$(CL) /i=..\..\btree ..\..\btree\bt_overflow.c
bt_page.obj: ..\..\btree\bt_page.c
	$(CL) /i=..\..\btree ..\..\btree\bt_page.c
bt_put.obj: ..\..\btree\bt_put.c
	$(CL) /i=..\..\btree ..\..\btree\bt_put.c
bt_searc.obj: ..\..\btree\bt_search.c
	$(CL) /i=..\..\btree ..\..\btree\bt_search.c
bt_seq.obj: ..\..\btree\bt_seq.c
	$(CL) /i=..\..\btree ..\..\btree\bt_seq.c
bt_split.obj: ..\..\btree\bt_split.c
	$(CL) /i=..\..\btree ..\..\btree\bt_split.c
bt_utils.obj: ..\..\btree\bt_utils.c
	$(CL) /i=..\..\btree ..\..\btree\bt_utils.c

db.obj: ..\..\db/db.c
	$(CL) ..\..\db\db.c

mpool.obj: ..\..\mpool\mpool.c
	$(CL) /i=..\..\mpool ..\..\mpool\mpool.c

rec_clos.obj: ..\..\recno\rec_close.c
	$(CL) /i=..\..\recno ..\..\recno\rec_close.c
rec_dele.obj: ..\..\recno\rec_delete.c
	$(CL) /i=..\..\recno ..\..\recno\rec_delete.c
rec_get.obj: ..\..\recno\rec_get.c
	$(CL) /i=..\..\recno ..\..\recno\rec_get.c
rec_open.obj: ..\..\recno\rec_open.c
	$(CL) /i=..\..\recno ..\..\recno\rec_open.c
rec_put.obj: ..\..\recno\rec_put.c
	$(CL) /i=..\..\recno ..\..\recno\rec_put.c
rec_sear.obj: ..\..\recno\rec_search.c
	$(CL) /i=..\..\recno ..\..\recno\rec_search.c
rec_seq.obj: ..\..\recno\rec_seq.c
	$(CL) /i=..\..\recno ..\..\recno\rec_seq.c
rec_util.obj: ..\..\recno\rec_utils.c
	$(CL) /i=..\..\recno ..\..\recno\rec_utils.c

memmove.obj:
	$(CC) -DMEMMOVE /c $(DEBUG) /i=. /i=include clib\memmove.c
mktemp.obj:
	$(CC) /c $(DEBUG) /i=. /i=include clib\mktemp.c
realloc.obj:
	$(CC) /c $(DEBUG) /i=. /i=include clib\realloc.c
snprintf.obj:
	$(CC) /c $(DEBUG) /i=. /i=include clib\snprintf.c

clean:	.SYMBOLIC
	-del *.obj
	-del *.lib
	-del *.lbc
	-del *.bak
