# # Whatever you put in for $(CC) must be able to grok ANSI C. # CC = cl LD = cl AR = link /LIB 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 = /MTd /ZI /Od /FD /GZ /D "DEBUG" DEBUG_LFLAGS = /DEBUG /PDBTYPE:SEPT LIBS= libcmtd.lib kernel32.lib ws2_32.lib !else DEBUG_CFLAGS = /MT /Ot /Oy /Ob1 /Gs /Gy /D "NDEBUG" DEBUG_LFLAGS = LIBS= libcmt.lib kernel32.lib ws2_32.lib !endif DEFINES= /D "WIN32" /D "WIN32_LEAN_AND_MEAN" /D "_CONSOLE" /D "_MBCS" /D "TRACE" OPTIM= /nologo /GX /W1 $(DEBUG_CFLAGS) /G$(PROCESSOR_LEVEL) CFLAGS= $(OPTIM) $(DEFINES) LFLAGS = /link /NOLOGO /NODEFAULTLIB /SUBSYSTEM:CONSOLE $(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) $** $(LIBS) /Fe$@ $(LFLAGS) testgdbm$(EXE) : testgdbm.obj $(GDBMLIB) $(GOLIB) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) testndbm$(EXE) : testndbm.obj $(NDBMLIB) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) testdbm$(EXE) : testdbm.obj $(DBMLIB) $(LD) $** $(LIBS) /Fe$@ $(LFLAGS) $(GDBMLIB) : $(GDBMOBJ) @echo "making GDBM library..." -@del $< 2>NUL $(AR) /OUT:$@ $** $(NDBMLIB) : $(NDBMOBJ) $(GDBMLIB) @echo "making NDBM library..." -@del $< 2>NUL $(AR) /OUT:$@ $** $(DBMLIB) : $(DBMOBJ) $(GDBMLIB) @echo "making DBM library..." -@del $< 2>NUL $(AR) /OUT:$@ $** $(GOLIB) : $(GOOBJ) @echo "making Getopt library..." -@del $< 2>NUL $(AR) /OUT:$@ $** dist : $(DISTFILES) @echo "Building distribution..." @md wingdbm @!copy /y $** wingdbm 1>NUL @$(WINZIP) -Pr wingdbm-$(RELEASE).zip wingdbm 1>NUL 2>NUL @rd /s /q wingdbm @echo "Done." clean : @echo "Cleaning..." @-del *.pdb *.ilk *.idb $(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) @!copy $** $(INSTDIR) 1>NUL @echo "Done." .c.obj: $(CC) $(CFLAGS) /c /Tc$(<:\=/)