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

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

        The DJGPP specific changes 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 difficulty 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. 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
        the packages on plain DOS like reading and writting files
        in binary mode, closing files before renaming them, checking
        for slashes and backslaches and colon as directory separators
        in paths,etc. Some changes to Makefile.in to eliminate the
        wrong assumptions about installation paths that it makes.
        I have also replaced the included libtool with the latest
        version (libtool v 1.3.5). This one has better MSDOS support
        and allows to configure and compile with the old Bash 1.14.7.
        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 gdbm180b.zip      or
          djtarx gdbm180b.zip       or
          pkunzip -d gdbm180b.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, bsh203b.zip, gcc2953b.zip,
          bnu2112b.zip, mak3791b.zip, fil40b.zip,
          shl112.zip, txt20b.zip, txi40b.zip,
          grep24b.zip and sed302b.zip

        All this packages can be found in the v2gnu directory of any
        Simtel.NET mirror.
        You will need bsh203b.zip and *NOT* a prior version or the build will fail.
        The same applies to djdev203.zip. You *MUST* use the updated versions
        shl112b.zip (date: 2000-08-11). This updated version has been recompiled
        with djdev203.zip and know about the "/dev/env" functionality introduced
        with djdev203.zip. All the other packages are the ones I have used to
        build the binaries from this sources.
        Previuos and/or later versions of this packages may do the job as well but
        I have not tested this.

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

3.3.:   The package is preconfigured for djdev203. To build the products you
        should run the following command:
          make
 
        To install the products run the command:
          make install

        This will install the products (gdbm.h libgdbm.a gdbm.info and gdbm.3) 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) will be installed into the include dir.


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

        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 -?

        You can also compile the conv2gdbm.exe programm running the command:
          make conv2gdbm

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

        conv2gdbm.exe is not installed automatically so you must do it manually,
        if you really need the programm.


3.5.:   If you need/want to reconfigure the package you will have to run the
        following commands:
          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-0\djgpp\config x:/src/gnu/gdbm-1.8-0

        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-0\djgpp\config x:/src/gnu/gdbm-1.8-0



        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 <st001906@hrz1.hrz.tu-darmstadt.de>
