# Makefile for gdbm, not tested

CC	= cl -nologo
MODEL	= L
CFLAGS	= -A$(MODEL) -Ocegt -W2 -Za -DSYSV -DOS2
LDFLAGS	= -Lp -F 8000 -link /noe
LIBS	= pc-files\gdbm.def
AR	= lib
ARFLAGS	= -+

GDBMLIB	= $(MODEL)libgdbm.lib


HFILES = gdbmdefs.h extern.h gdbmerrno.h systems.h dbm.h ndbm.h
MISCFILES = COPYING ChangeLog Makefile README gdbm.proto conv2gdbm.c
TESTFILES = testdbm.c testndbm.c testgdbm.c

DBM_OF = dbminit.obj delete.obj fetch.obj store.obj seq.obj
NDBM_OF = dbmopen.obj dbmdelete.obj dbmfetch.obj dbmstore.obj dbmseq.obj \
	dbmclose.obj dbmdirfno.obj dbmpagfno.obj
GDBM_OF = gdbmopen.obj gdbmdelete.obj gdbmfetch.obj gdbmstore.obj \
	gdbmclose.obj gdbmreorg.obj gdbmseq.obj \
	bucket.obj falloc.obj findkey.obj global.obj hash.obj update.obj

.c.obj:
	$(CC) $(CFLAGS) -Fo$*.obj -c $*.c

allgdbm: $(GDBMLIB) testgdbm.exe testdbm.exe testndbm.exe

$(GDBMLIB): version.c $(GDBM_OF) $(NDBM_OF) $(DBM_OF)
	$(CC) $(CFLAGS) -c version.c
	$(AR) $@ $(ARFLAGS) version.obj $(GDBM_OF) $(NDBM_OF) $(DBM_OF);

gdbm.h:	gdbm.proto gdbmerrn.h
	copy gdbm.proto gdbm.h
	grep _ gdbmerrn.h >> gdbm.h

testgdbm.exe: testgdbm.obj pc-files\getopt.obj $(GDBMLIB)
	$(CC) $(CFLAGS) testgdbm.obj pc-files\getopt.obj $(LIBS) -o $@ $(GDBMLIB) $(LDFLAGS)

testdbm.exe: testdbm.obj $(GDBMLIB)
	$(CC) $(CFLAGS) testdbm.obj $(LIBS) -o $@ $(GDBMLIB) $(LDFLAGS)

testndbm.obj: testndbm.c
	$(CC) -c $(CFLAGS) -DGNU testndbm.c

testndbm.exe: testndbm.obj $(GDBMLIB)
	$(CC) $(CFLAGS) testndbm.obj $(LIBS) -o $@ $(GDBMLIB) $(LDFLAGS)

clean:
	rm -f gdbm.h *.obj *.map *.bak tags
	rcsclean *.c *.h *.proto makefile

# dbm files
dbminit.obj:	gdbmdefs.h extern.h gdbmerrno.h systems.h
delete.obj:	gdbmdefs.h extern.h
fetch.obj:	gdbmdefs.h extern.h
store.obj:	gdbmdefs.h extern.h
seq.obj:	gdbmdefs.h extern.h

# ndbm files
dbmopen.obj:	gdbmdefs.h extern.h gdbmerrno.h systems.h
dbmdelete.obj:	gdbmdefs.h extern.h
dbmfetch.obj:	gdbmdefs.h extern.h
dbmstore.obj:	gdbmdefs.h extern.h
dbmseq.obj:	gdbmdefs.h extern.h
dbmclose.obj:	gdbmdefs.h systems.h
dbmpagfn.obj:	gdbmdefs.h extern.h
dbmdirfn.obj:	gdbmdefs.h extern.h

# gdbm files
gdbmclose.obj:	gdbmdefs.h systems.h
gdbmdelete.obj:	gdbmdefs.h gdbmerrno.h systems.h
gdbmfetch.obj:	gdbmdefs.h gdbmerrno.h systems.h
gdbmopen.obj:	gdbmdefs.h gdbmerrno.h systems.h 
gdbmreorg.obj:	gdbmdefs.h gdbmerrno.h systems.h extern.h
gdbmseq.obj:	gdbmdefs.h systems.h
gdbmstore.obj:	gdbmdefs.h gdbmerrno.h systems.h

# gdbm support files
bucket.obj:	gdbmdefs.h systems.h
falloc.obj:	gdbmdefs.h systems.h
findkey.obj:	gdbmdefs.h systems.h
global.obj:	gdbmdefs.h gdbmerrno.h 
hash.obj:	gdbmdefs.h
update.obj:	gdbmdefs.h systems.h
version.obj:
extern.h:	

# other programs
testgdbm.obj:	gdbmdefs.h extern.h gdbmerrno.h systems.h
testdbm.obj:	dbm.h
testndbm.obj:	ndbm.h
conv2gdbm.obj:	gdbm.h
