This is a port of GNU dbm (1.8.3) to windows. The changed files are all kept in this subdirectory "win32". Still there are some minor changes in some files in the "main"-directory. These changes are simply some inserted defines (IMEXPORT = __declspec(dllexport) or __declspec(dllimport)). The files changed are: global.c, version.c, gdbmerrno.h and testgdbm.c systems.h: has a new Flag "HAVE_NOTHING" which is quite similar to the "Windows"-Environment, saying there is no FLOCK and the whole file-locking is simply defined to be empty (file-locking is done in gdbmopen, reorganize, ...) The relevant changes in the files located in "win32" can be found by looking for the WIN32 -ifdefs. --------------------------------------------------------------------------- CHANGES: Version 1.8.3: * 23.08.2004 - Added Makefile.cygwin (thanks to Alejandro Lopez-Valencia) * 16.12.2003 - Adapted to the new gdbm-version 1.8.3 Version 1.8.0c: * 24.09.2002 - Bugfix (thanks to Nakaue Takumi) in gdbm.h. endif for extern "C" in wrong line Version 1.8.0b: * 04.04.2001 - Bugfix (thanks to Oleg Oleinick) in gdbm_reorganize. Corrected window-filename-parsing Version 1.8.0: * Initial Version --------------------------------------------------------------------------- BUILD GNU dbm: o Visual-C++ If you have the Visual-C++-Environment installed you should simply adapt the installation-paths in the first lines of "Makefile.vc", so they fit your configuration. Than type > nmake -f Makefile.vc in the "win32"-directory. (Or rename Makefile.vc to Makefile and simply > nmake ) This should build gdbm.dll, testgdbm.exe, testdbm.exe, testndbm.exe, conv2gdbm.exe and samp1.exe in the "vc_release"-directory. o Mingw32 For the most people, who do not have a Visual-C++-Compiler or don't like it (e.g. me), I have provided a Makefile for the Mingw32-compiler and make utilities. I assume you have the regular utilities installed too (e.g. rm, mkdir, mv). Simply open a "sh" and type: > make -f Makefile.mingw or copy Makefile.mingw to Makefile and > make Several warnings occur, but they are harmless (at least I hope so) o Cygnus I didn't spent the time to build a Cygnus-Makefile, but if someone has build one I will happily include it in this distribution. Thanks to Alejandro Lopez-Valencia for sending me the Makefile for the latest version of Cygwin gcc-compiler. --------------------------------------------------------------------------- INSTALL of GNU dbm To install gdbm, simply copy "gdbm.dll" to your systems-directory (e.g. c:\winnt\system32) or better to a directory where you need it. There is no install-target in the makefile. Gdbm has been tested under Windows 2000 (Mingw32 and VC++). It has also been tested successfully on Windows 98-SE (thanks to Nicholas Shea for reporting this). Please tell me if it worked for you on your platform. --------------------------------------------------------------------------- PROBLEMS of GNU dbm-Windows-port Due to the different byte-order on unix and windows gdbm-files are not cross-plattform. That means that you cannot use gdbm-files generated with the windows-port on a unix-machine. The gdbm_open-call will fail directly because of a wrong magic-number. If someone knows a simple way to swap the byte-ordering (under Windows) he/she should tell me :-) --------------------------------------------------------------------------- The following files are included in this distribution (only concerning the windows-subdirectory "win32"): README.txt - This file Makefile.mingw - Makefile for Windows to be used with Mingw32. Makefile.cygwin - Makefile for Windows to be used with latest Cygwin. Makefile.vc - A Visual-C++ Makefile autoconf.h,dbminit.c,dbmopen.c,gdbm.h,gdbmopen.c,gdbmreorg.c,getopt.c, samp1.cpp,testdbm.c - Files of gdbm which were adapted to Windows. gdbm.dll - A prebuild DLL for those of you who don't want to build it yourself (build with VC++ 6.0). testgdbm.exe/samp1.exe - Testprogramms The EXE and DLL are release-build with VC++ 6.0 on Windows 2000 For bugs or features concerning the windows port of GNU dbm you can contact: Stefan Vogel . For bugs in gdbm you should contact the author or maintainer of gdbm (see gdbm-1.8.3/README) The original-distribution can be found at: http://www.gnu.org/software/gdbm/gdbm.html