This is a port of GNU gettext 0.20.1 to MSDOS/DJGPP.

  The GNU gettext package provides the needed tools and library functions for
  authors or maintainers of other packages or programs which they want to see
  internationalized.




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

        There are no user visible DJGPP specific changes to the sources.
        The official GNU distribution has build-in DJGPP to some degree
        but this support has ceased, so that new changes must be ported
        to DJGPP.  Especially for included support libraries like libxml2
        and the posix specific library relocation support that has been
        completely disabled by me because it makes no sense on DOS/DJGPP.

        It is important to understand that this port does not have nor will
        ever provide code to identify SFN aliases that have numeric tails.
        IOW, it is the user's responsability to disable numeric tail generation
        on all OS where this is possible before installing packages that have
        NLS support or the program compiled with this library will fail when
        LFN support has been disabled.  E.g.: the port will be able to find a
        file like charset.alias if LFN support is enabled and it will be able
        to find charset.ali if LFN support is disabled but it will never be
        able to find charset~1.ali.  On WIN95/98 systems and plain DOS with
        DOSLFN, the user _must_ always turn off the generation of numeric tails
        for 8.3 aliases the OS creats for long file names _before_ package
        installation or the package will not work in a dual DOS/WIN9X (SFN/LFN)
        environment (it will work on Win[9X|2K|XP] where the long file name
        (charset.alias) is available but it will not work on plain DOS where an
        alias like charset~1.ali will be visible instead of the 8.3 truncated
        short file name, this is charset.ali).

        Due to various new issues DXE3 modules will not be provided.

        To be able to compile AND to use this port, the iconv library must be
        installed.  It is available as:
          ftp://ftp.delorie.com/pub/djgpp/v2gnu/licv116b.zip
        Please do not mix libraries.  This port has been compiled with the
        above libraries and is supposed to be used with them.  I have never
        tried any of the old ports of libiconv and I have serious doubts that
        it will work.

        To be able to compile your applications using the DXE3 version of the
        library you will need the a port of binutils that supports resolving
        multiple symbol definitions during linking.  The linker provided by:
          ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu224br2.zip
        and later port versions provides this features.

        Please note that the port does not support neither java, python nor C#
        nor whatever else languages may exist that have not been ported with
        DJGPP.

        Please note that the original library filenames are not SFN clean.
        This concerns the following libraries:
          libgettextlib.a  -->  libgtxtlib.a
          libgettextpo.a   -->  libgtxtpo.a
          libgettextsrc.a  -->  libgtxtsrc.a
        The libraries have been renamed to become unique when installed on
        plain DOS without LFN support or with LFN support enabled but with
        numeric tails disabled.
        The linker provided by:
          ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu224br2.zip
        and later versions of this port provides a lib name mapping feature
        that will allow to use the long library file name in makefiles but
        have the libraries installed with short file names.  If the linker
        cannot load the library using the long file name it will try to load
        a mapping file and search in it for a short file name associated to
        the long file name.  If the linker can load the library using the
        short file it will continue linking without warning or error message.

        The NLS controling environment variables, LANG and LANGUAGE, must been
        set.  The values of the two environment variables LANG and LANGUAGE
        should be set like this:

LANG=xx_CC
LANGUAGE=yy:zz

        in the /dir/env/DJDIR/djgpp.env.  

        The LANG entry is obligatory, the LANGUAGE entry may be omited.
        xx, yy and zz stand for some language code while CC stands for some
        country related to that language.  The LANGUAGE variable allows to
        select an alternate catalog than the one stipulated by LANG.  It should
        be noted that LANGUAGE has always higher priority than LANG when both
        have been set.  It should also be noted that the LANG variable not only
        selects a catalog, it also specifies the dos codepage that will be used
        as locale charset.  All this means that the translation strings contained
        in the catalogs (.mo files) will be recoded at runtime to the dos codepage
        stipulated by the value of LANG.  This runtime recoding is needed because
        the .mo files may have been written using a charset that is not compatible
        with the charset that will be used on the machine and OS where the .mo file
        contents will be displayed.  The .po files of the GNU packages, from which
        the .mo files are generated, are typical examples of this.  Usualy, they
        have been written using some ISO-8859-nn charset (an unix charset) and
        shall be displayed on a DOS/WIN32 machine that uses some dos codepage.

        Some examples:
        If you only want to use the catalog containing the translations for your
        mother tongue (in my case the spanish translations) the above lines will
        only use the LANG variable and will look like this:

          LANG=es

        In this case, LANG defines the translation to be used and at the same
        time the locale charset (CP850 in this case) to be used for the on-the-
        fly recoding of the catalog (.mo file) contents.  If you want to use
        the spanish (es) and german (de) catalogs the above lines will look
        like this:

          LANG=es
          LANGUAGE=es:de

        In this case a DJGPP binary that has been compiled with NLS support will
        first search for the spanish translation of a string.  If a translation
        for that particular string can not be found in the spanish .mo file then
        it will search for a german translation of that string in the german .mo
        file and if a german translation of that string can also not been found
        it will default to display the build-in english string.  No mather if a
        spanish, a german or an english build-in string is selected, the string
        is always recoded to the dos codepage stipulated by LANG. In this case:
          CP850.
        If you want to reverse this search order the above lines would look like
        this one:

          LANG=es
          LANGUAGE=de:es

        Now let us assume that an user wants to use the swedish catalogs on a
        machine that loads codepage CP437 when it is booted.  It should be noted
        that the locale charset for Sweden is CP850 and not CP437.  In this case,
        the lines must look like this:

          LANG=en_US
          LANGUAGE=sv

        LANG reflects the available codepage/charset and LANGUAGE selects the
        wanted translation catalog.  en_US means CP437.  Now, the contents of
        the catalog are recoded to CP437 instead to CP850 because CP437 is the
        codepage used to display messages on screen.  Of course, not every
        combination of catalogs and locale charset (dos codepages) makes sense.
        E.G.: selecting as locale charset chinese (LANG=zh_TW) and the french
        translations (LANGUAGE=fr) will certainly not generate an usefull screen
        output.  The content of LANG is a language code.  Examples are fr for
        french, en_US for US english, etc.  This language code is an alias for
        the locale charset (codepage) to be used for runtime recoding.  The
        complete list of all available aliases can be found in lib/charset.alias.
        This file is a table with two entries: left entry is the alias (en_US,
        de_AT, etc.), right entry is the corresponding dos codepage that will
        be used for that language code (alias).  It should be noticed that it
        is also possible to select a codepage directely.  E.G.: Instead of
        setting:

          LANG=en_US

        you may directely set:

          LANG=CP437

        This overwrites any settings in charset.alias. Please note that if you
        omit the LANG environment variable, the LANGUAGE variable will not be
        honored at all.  Because the information about what locale charset shall
        be used is needed, if LANG is omitted by the user, LANGUAGE will be
        ignored and no translation will be done at all.
        If for some reason you want to disable NLS, then you should comment out
        the LANG variable, select 'C' as your catalog:

          LANG=C

        or clear it.

        This version of the port has been compiled using gcc346 and bnu232b.

        As usual, all djgpp specific files (config.bat, diffs, README files,
        etc.) are stored in the djgpp directory.

        For further information about GNU gettext please read the info docs and NEWS file.


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

2.1.:   Copy the binary distribution into the top DJGPP installation directory,
        just unzip it preserving the directory structure running *ONE* of the
        following commands:
          unzip32 gtxt201b.zip      or
          djtarx gtxt201b.zip       or
          pkunzip -d gtxt201b.zip

2.2.:   If there is no entry for the libiconv info docs in your dir file, create
        one running the command:
          install-info --info-dir=/dev/env/DJDIR/info /dev/env/DJDIR/info/iconv.info


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

3.1.:   Create a temporary directory and copy the source package into the
        directory.  If you download the source distribution from one of the
        DJGPP sites, just unzip it preserving the directory structure
        running *ONE* of the following commands:
          unzip32 gtxt201s.zip      or
          djtarx gtxt201s.zip       or
          pkunzip -d gtxt201s.zip

3.2.:   To build the binaries you will need the following binary packages:
          djdev205.zip (or a later but NOT a prior version)
          bsh205bbr3.zip (or a later but NOT a prior version)
          gccNNNb.zip, gppNNN.zip, bnuNNNb.zip, makNNNb.zip, filNNNb.zip,
          shlNNNb.zip, txtNNNb.zip, txiNNNb.zip, grepNNNb.zip, sedNNNb.zip,
          pcreNNNb.zip, mktmpNNb.zip, gwkNNNb.zip, licvNNNb.zip and lunsNNNb.zip

        If you want to run the check you will need also:
          difNNNb.zip and mktmpNNNb.zip

        All this packages can be found in the /v2gnu directory of any
        ftp.delorie.com mirror.  NNN stands for the newest port versions
        available when this port was build but older may do the work as well
        but I have not tested this.

3.3.:   The package has been configured to be build in a separate build directory
        under the top srcdir (aka gtxt-0.20.1).  To build the binaries cd
        into /_build directory.  If for some reason you want to reconfigure the
        package cd into the build directory and run the following commands:
          del config.cache
          make clean
          ..\djgpp\config ./..

        Please note that you *MUST* delete the config.cache file in the _build
        directory or you will not really reconfigure the sources because the
        configuration informations will be read from the cache file instead
        of being newly computed.

        config.bat, among other things, will start the configure script passing
        to it a couple of arguments.  You can control these argument passing the
        following command line arguments to config.bat:
          nls or no-nls, default nls.  NLS support enabled.
          cache or no-cache, default cache.  Cache in build directory.
          dep or no-dep, default no-dep.  No dependency tracking.
          silent or no-silent, default silent.  Controls the verbosity of the
                                                build process.
          acl or no-acl, default no-acl.
          curses or no-curses, default no-curses. Curses support disabled.
          threads or no-threads, default no-threads. Threads support disabled.
          c++ or no-c++, default c++.  C++ support enabled.
          libasprintf or no-libasprintf, default libasprintf.  Create libasprintf.
          emacs or no-emacs, default emacs.  Emacs support enabled.
          java or no-java, default no-java.  Java support disabled.
          openmp or no-openmp, default no-openmp.  OpenMP support disabled.
        All other configure specific options are not set by config.bat so their
        values are left as they are.  If no arguments are passed to config.bat
        then the default values are used.


        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\gtxt-0.20.1\djgpp\config x:/src/gnu/gtxt-0.20.1

        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\gtxt-0.20.1\djgpp\config x:/src/gnu/gtxt-0.20.1

        The order of the options and the srcdir option does not matter.  You
        *MUST* use forward slashes to specify the source directory.

        The batch file will set same environment variables, make MSDOS specific
        modifications to the Makefile.in's and supply all other needed options
        to the configure script.

3.4.:   To compile the package run from the directory where you have configured
        the sources the command:
          make
        This will produce static version of the libraries.  If you prefer the
        DXE3 module version of the libraries use the command:
          make MAKE_DXE3

3.5.:   Now you can run the tests if you like.  Start the command:
          make check
        Due to bash issues the scripts used by the test suite do not work.

        If the package has been compiled to produce DXE3 modules, the test suite
        must be started using the command
          make check MAKE_DXE3

        If MAKE_DXE3 is omitted, the makefile will not set the LD_LIBRARY_PATH
        environment variable and the compiled test programs will not be able to
        find and load the DXE3 modules.

3.6.:   To install the binaries and info docs run the following command from
        the directory where you have configured the sources:
          make install

        This will install the products into your DJGPP installation tree given
        by the default prefix "/dev/env/DJDIR".  If you prefer to install them
        into some other directory you will have to set prefix to the appropriate
        value:
          make install prefix=z:/some/other/place



        Send GNU gettext specific bug reports to <bug-gettext@gnu.org>.
        Send suggestions and bug reports concerning the DJGPP port
        to comp.os.msdos.djgpp or <djgpp@delorie.com>.


Enjoy.

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