This is a port of GNU gdbm 1.8.3 to MSDOS/DJGPP.

1.:     DJGPP specific changes.
        =======================

        The DJGPP specific changes for version 2.03 account for the fact that
        DJGPP's implementation of fcntl() does not support F_GETLK, F_SETLK nor
        F_SETLKW.  To make this package work, no file locking and unlocking
        attempt is done at all.  This implies that the macros READLOCK_FILE and
        WRITELOCK_FILE defined in system.h will always return a success status
        if the user locks a db file for reading or writing.  MSDOS does not
        offer a serious file locking anyway, so this way of solving the dif-
        ficulty is acceptable.  The user will be able to read and write db
        files but it must be recalled that the opened file is not locked
        at all, neither on plain DOS nor on WIN9X.  DJGPP 2.04 implementation
        of fcntl() supports F_GETLK, F_SETLK and F_SETLKW, so if the used OS
        offers a serious implementation of file locking, then db libary and
        tools will take advantage of this functionality if they have been
        compiled with that version of DJGPP.
        All other changes to the sources are based on bug fixes reported by
        users at <bug-gnu-utils@gnu.org> and changes needed to compile the
        packages on plain DOS like reading and writting files in binary mode,
        closing files before renaming them, checking for backslaches and colon
        and slashes as well as directory separators in paths, etc. Some changes
        to Makefile.in to eliminate the wrong assumptions about installation
        paths that it makes.  All changes I have done against the original GNU
        distribution are documented in the diffs file stored in the /djgpp
        subdir of the source package.


2.:     Installing the binary package.
        ==============================

2.1.:   It is highly recommended to deinstall the old port (gdbm173b)
        *BEFORE* installing this new one. This package will install the
        headers in the include dir and the library in the lib dir. This
        is different from old port that installed everything into the
        contrib dir.
        Copy the binary distribution into the top DJGPP installation
        directory and unzip the binary distribution running *ONE* of
        the following commands:
          unzip32 gdbm183b.zip      or
          djtarx gdbm183b.zip       or
          pkunzip -d gdbm183b.zip

2.2.:   To create an entry for the gdbm info docs in your dir file,
        run from the top DJGPP installation directory the command:
          install-info --info-dir=./info ./info/gdbm.info
        For futher information about GNU gdbm please read the info docs
        and man pages.


3.:     Building the binaries from sources.
        ===================================

3.1.:   To build the binaries you will need the following binary packages:
          djdev203.zip, bsh204b.zip, gcc410b.zip,
          bnu2161b.zip, mak3791b.zip, fil41b.zip,
          shl112.zip, txt20b.zip, txi48b.zip,
          grep24b.zip and sed415b.zip

        All this packages can be found in the v2gnu directory of any
        ftp.delorie.com mirror.
        The package depends on the "/dev/env" functionality introduced
        with djdev203.zip. So you will need binaries and libraries com-
        piled with djdev203.zip or the build will fail.
        The above mentioned packages are the ones I have used to compile
        this package. Previous or later versions of above packages may work
        too, as long as they have been compiled using djdev203.

3.2.:   Create a temporary directory. Copy the source package: gdbm183s.zip
        into the directory and unzip it runnig ONE of the following commands:
          unzip32 gdbm183s.zip      or
          djtarx gdbm183s.zip       or
          pkunzip -d gdbm183s.zip

3.3.:   The package is preconfigured for djdev203. To build the products, these are
        gdbm.h, libgdbm.a, libgdbm_compat.a, gdbm.info and gdbm.3, you should run
        the following command:
          make

        If you want the test and conversion programs, these are you must run the following
        command:
          make progs

        To install the products run the command:
          make install

        This will install the products (gdbm.h libgdbm.a gdbm.info and gdbm.3,
        but neither the compatibility library: libgdbm_compat.a, nor the test
        and conversion programs) into your DJGPP inatallation tree. As usual,
        prefix is defined as "/dev/env/DJDIR".
        If you prefer to install into same other directory run the command:
          make install prefix=z:/some/other/dir
          make install-compat prefix=z:/some/other/dir

        Of course, you should replace "z:/some/other/dir" by an apropiate path
        that will meet your requeriments. With the second command the compatibility
        headers (dbm.h and ndbm.h) and library (libgdbm_compat.a) will be installed
        into the include dir and lib dir.


3.4.:   There is no testsuite included in this package. Neitherless you can compile
        the following programms:
          testdbm.exe, testndbm.exe, testgdbm.exe and conv2gdbm
        to test DBM-, NDBM- and GDBM-databases running the command:
          make progs

        Of course, compiling this programms make only sense if you really have
        databases of this kind. You can get some info about the above programms
        running, e.g.:
          testgdbm -?

        conv2gdbm.exe is a programm that converts DBM databases into GDBM databases.
        You can get some help running the command:
          conv2gdbm

        None of the binaries are installed automatically so you must do it manually,
        if you really need the programs.


3.5.:   If you need/want to reconfigure the package you will have to run the
        following commands:
          rm djgpp/config.cache
          make distclean
          djgpp\config

        Please note that you *MUST* use the "distclean" option or the config.cache
        file will *NOT* be deleted. In this case you are *NOT* reconfiguring
        because the configuration informations is read from the cache file instead
        of being newly computed.
        To build the programs in a directory other than where the sources are,
        you must add the parameter that specifies the source directory,
        e.g:
          x:\src\gnu\gdbm-1.8-3\djgpp\config x:/src/gnu/gdbm-1.8-3

        Lets assume you want to build the binaries in a directory placed on a 
        different drive (z:\build in this case) from where the sources are,
        then you will run the following commands:
          z:
          md \build
          cd \build
          x:\src\gnu\gdbm-1.8-3\djgpp\config x:/src/gnu/gdbm-1.8-3



        Send suggestions and bug reports concerning the DJGPP port to
        comp.os.msdos.djgpp or <djgpp@delorie.com> and cc them to me.
        Bug reports concerning gdbm must be send <bug-gnu-utils@gnu.org>.


Enjoy

          Guerrero, Juan Manuel <juan.guerrero@gmx.de>
