# Windows GDBM,DBM,NDBM and Getopt makefile .AUTODEPEND BCCROOT = $(MAKEDIR)\.. CC = $(BCCROOT)\bin\bcc32 LD = $(BCCROOT)\bin\ilink32 AR = $(BCCROOT)\bin\tlib WINZIP = C:\apps\Winzip\wzzip # The suffix appended to executables. # This should be set for Cygwin and Windows. EXE = .exe #EXE = # Compiler directives for debugging !ifdef DEBUG DEBUG_CFLAGS = -v -y -Od -r- DEBUG_LFLAGS = -v !else DEBUG_CFLAGS = -v- -O2 -$(PROCESSOR_LEVEL) DEBUG_LFLAGS = -v- !endif INCDIRS = -I$(BCCROOT)\include # Compiler/linker directives for linking static or dynamic !ifdef STATIC STATIC_CFLAGS = LIBS = import32.lib cw32mt.lib !else STATIC_CFLAGS = -tWR LIBS = import32.lib cw32mti.lib !endif BCC32STARTUP = c0x32.obj DEFINES= -DWIN32 -DWIN32_LEAN_AND_MEAN -D_NO_VCL WARNMSG = -w -w-pia -w-par -w-aus -w-rch -w-sig -w-use OPTIM= $(STATIC_CFLAGS) $(DEBUG_CFLAGS) -tWM -tWC $(WARNMSG) CFLAGS= $(OPTIM) $(DEFINES) LFLAGS = -Tpe -ap -c -Gn $(DEBUG_LFLAGS) # GDBM GDBMLIB = gdbm.lib GDBMSRC = version.c falloc.c findkey.c bucket.c update.c global.c \ gdbmclose.c gdbmdelete.c gdbmerrno.c gdbmexists.c gdbmfdesc.c \ gdbmfetch.c gdbmopen.c gdbmreorg.c gdbmseq.c gdbmsetopt.c \ gdbmstore.c gdbmsync.c GDBMOBJ = $(GDBMSRC:.c=.obj) GDBMHDR = gdbm.h GDBMIHDR = gdbmdefs.h gdbmerrno.h extern.h GDBMXTRA = NEWS README INSTALL COPYING Changelog makefile.bor makefile.vc gdbm.html # NDBM NDBMLIB = ndbm.lib NDBMSRC = ndbm.c NDBMOBJ = $(NDBMSRC:.c=.obj) NDBMHDR = ndbm.h # DBM DBMLIB = dbm.lib DBMSRC = dbm.c DBMOBJ = $(DBMSRC:.c=.obj) DBMHDR = dbm.h # GETOPT GOLIB = getopt.lib GOSRC = getopt.c GOOBJ = $(GOSRC:.c=.obj) GOHDR = getopt.h # Utilities and test programs UTILSRC = conv2gdbm.c testgdbm.c testndbm.c testdbm.c # Files in the standard distribution DISTFILES = $(GDBMSRC) $(GDBMHDR) $(GDBMIHDR) $(GDBMXTRA) $(NDBMSRC) \ $(NDBMHDR) $(DBMSRC) $(DBMHDR) $(GOSRC) $(GOHDR) $(UTILSRC) !ifndef RELEASE RELEASE = dist !endif INSTFILES = $(GDBMLIB) $(NDBMLIB) $(DBMLIB) $(GOLIB) \ $(GDBMHDR) $(NDBMHDR) $(DBMHDR) $(GOHDR) # Dependency information - used for clean here OBJDEPENDS = $(GDBMOBJ) $(NDBMOBJ) $(DBMOBJ) $(GOOBJ) \ conv2gdbm.obj testgdbm.obj testndbm.obj testdbm.obj TARGETS = $(GDBMLIB) $(NDBMLIB) $(DBMLIB) $(GOLIB) \ conv2gdbm$(EXE) testgdbm$(EXE) testndbm$(EXE) testdbm$(EXE) all: $(TARGETS) conv2gdbm$(EXE) : conv2gdbm.obj $(GDBMLIB) $(DBMLIB) $(GOLIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) testgdbm$(EXE) : testgdbm.obj $(GDBMLIB) $(GOLIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) testndbm$(EXE) : testndbm.obj $(NDBMLIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) testdbm$(EXE) : testdbm.obj $(DBMLIB) $(LD) $(LFLAGS) $(BCC32STARTUP) $**, $<,, $(LIBS) $(GDBMLIB) : $(GDBMOBJ) @echo "making GDBM library..." -@del $< 2>NUL $(AR) $< /a $** $(NDBMLIB) : $(NDBMOBJ) $(GDBMLIB) @echo "making NDBM library..." -@del $< 2>NUL $(AR) $< /a $** $(DBMLIB) : $(DBMOBJ) $(GDBMLIB) @echo "making DBM library..." -@del $< 2>NUL $(AR) $< /a $** $(GOLIB) : $(GOOBJ) @echo "making Getopt library..." -@del $< 2>NUL $(AR) $< /a $** dist : $(DISTFILES) @echo "Building distribution..." @md wingdbm @© /y $** wingdbm 1>NUL @$(WINZIP) -Pr wingdbm-$(RELEASE).zip wingdbm 1>NUL 2>NUL @rd /s /q wingdbm @echo "Done." clean : @echo "Cleaning..." @-del *.tds *.map *.TR2 $(TARGETS) $(OBJDEPENDS) 2>NUL @echo "Done." inst : $(INSTFILES) @echo "Installing..." @if not exist $(INSTDIR) echo Install directory [$(INSTDIR)] does not exist. @if not exist $(INSTDIR) echo creating... @if not exist $(INSTDIR) mkdir $(INSTDIR) @© $** $(INSTDIR) 2>NUL 1>NUL @echo "Done." .c.obj: $(CC) $(CFLAGS) $(INCDIRS) -c -n$(@D) $<