source: trunk/third/gettext/djgpp/README @ 16931

Revision 16931, 21.3 KB checked in by ghudson, 23 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r16930, which included commits to RCS files with non-trunk default branches.
RevLine 
[16930]1This is a port of GNU Gettext 0.10.40 to MSDOS/DJGPP.
2
3
4        TO USE THE GNU GETTEXT LIBRARY YOU **MUST** MODIFY YOUR C-LIBRARY.
5        PLEASE, READ SECTION #2 (Installing the binary package) CAREFULLY
6        TO LEARN HOW TO INSTALL THE GNU GETTEXT LIBRARY AND HOW TO CHANGE
7        YOUR C-LIBRARY AND SYSTEM HEADER FILE.
8        TO USE THE GNU GETTEXT LIBRARY YOU **MUST** DOWNLOAD AND INSTALL
9        LICV16B.ZIP TOO. THIS IS **NOT** OPTIONAL.
10        IT IS NOT RECOMMED TO DOWNLOAD THE GNU DISTRIBUTION OF GETTEXT
11        BECAUSE ONLY THE DJGPP PORT WILL CONTAIN THE REQUIRED HEADER AND
12        OBJECT FILE TO PATCH THE C LIBRARY.
13
14
151.:     DJGPP specific changes.
16        =======================
17
18        The DJGPP specific changes are the followings:
19     1) The conflict existing between the BORLAND-compatibility gettext function
20        from DJGPP's libc.a defined in conio.h and the GNU gettext function from
21        libintl.a defined in libintl.h has been removed. But this conflict can not
22        be removed **WITHOUT** changing a system header file and libc.a.
23     1.1)  libc.a and system header changes.
24        In conio.c, the BORLAND-compatibility gettext function has been renamed
25        into _conio_gettext. In conio.h some code has been added to check if
26        libintl.h is included or not by the same source file. If libintl.h is NOT
27        included, the BORLAND-compatibility gettext function will be available as
28        gettext. If libintl.h has been included then the BORLAND-compatibility
29        gettext function will **ONLY** be available as _conio_gettext.
30        The BORLAND-compatibility gettext function is now available as gettext
31        and _conio_gettext.
32     1.2)  GNU gettext library changes.
33        If both headers, libintl.h and conio.h, are included in the same source
34        file the gettext keyword makes **ALWAYS** reference to the GNU gettext
35        function and **NEVER** to the BORLAND-compatibility gettext function.
36
37     2) The binary package gtxt040b.zip contains all needed files to get NLS
38        support for the following DJGPP ports:
39          bison-1.28 (bsn128s.zip)
40          enscript-1.5.0 (ens150s.zip)
41          enscript-1.6.1 (ens161s.zip)
42          enscript-1.6.2 (ens162s.zip)
43          fileutils-3.16 (fil316s.zip)
44          fileutils-4.0 (fil40s.zip)
45          grep-2.4 (grep24s.zip)
46          id-utils-3.2 (idu32s.zip)
47          make-3.79.1 (mak3791s.zip)
48          recode-3.5 (rcode35s.zip)
49          recode-3.6 (rcode36s.zip)
50          sed-3.02.80 (sed3028s.zip)
51          sharutils-4.2c (shar42cs.zip)
52          sh-utils-2.0i (shl20is.zip)
53          sh-utils-2.0j (shl20js.zip)
54          tar-1.12a (tar112as.zip)
55          texinfo-4.0 (txi40s.zip)
56          textutils-2.0 (txt20s.zip)
57
58        See section #4 for further information about this issue.
59        To implement NLS support for one of those packages you will also need
60        to download the following packages:
61          gtxt040b.zip (binaries of GNU Gettext 0.10.40)
62          licv17b.zip (binaries of GNU libiconv 1.7)
63          fil40b.zip  (binaries of GNU Fileutils 4.0)
64          shl112b.zip (binaries of GNU Sh-utils 1.12  Date: 2000-08-11)
65
66
672.:     Installing the binary package.
68        ==============================
69
702.1.:   To use this binary package you **MUST** install licv17b.zip or later
71        first. licv17b.zip provides the required functionality to recode the
72        .mo files at run time from the unix charsets used to create them to the
73        dos codepages used to display them. Copy the binary distribution into
74        the top DJGPP installation directory. If you are installing Gettext on
75        a dual DOS/WINDOWS 9X systems, you *MUST* first turn off the generation
76        of numeric tails for 8.3 aliases Windows creats for long file names.
77        For information about how to do this, please read the DJGPP FAQ List
78        V 2.30, chapter 22.19: "How to Set Up a Dual DOS/Windows Installation".
79        It should be noticed that neither the libintl.a library nor the
80        binaries (xgettext.exe, gettext.exe, etc.) contain any code to handle
81        nuneric tails of short file names. This implies that if you install
82        the binary packages in a DOS box of Win9X (LFN) **WITHOUT** turning
83        off the numeric tail generation you will **NOT** be able to use NLS
84        on plain DOS. Once again: if you want NLS support on both Win9X **AND**
85        on plain DOS you **MUST** turn off the numeric tail generation **BEFORE**
86        installing the binary package. After having installed the package
87        you can turn on numerical tail generation again if you wish.
88        All this also applies to any other package that has been compiled with
89        NLS support. You **MUST** turn off numeric tail generation every time
90        you install a package that has been compiled with NLS or the binaries
91        will **NOT** be able to find their .mo files (translations) when you
92        switch to plain DOS.
93
942.2.:   Copy the binary distribution into the top DJGPP installation directory,
95        just unzip it preserving the directory structure running *ONE* of the
96        following commands:
97          unzip32 gtxt040b.zip      or
98          djtarx gtxt040b.zip       or
99          pkunzip -d gtxt040b.zip
100
1012.3.:   Changing libc.a and conio.h.
102        Apart from the ussual directories, the binary package will create the
103        following directory:
104          %DJDIR%/gnu/gtxt-010.40/djgpp/djdev-2.03
105        where %DJDIR% stands for the root of your DJGPP installation tree.
106        Cd into the djdev-2.03 directory. You will find the following files:
107          conio.diffs
108          conio.h
109          conio.o
110        conio.diffs is a patch file that documents the changes I have done against
111        the files of the original djdev203.zip and djlsr203.zip distributions.
112        This file is not needed by the average user. conio.h is the modified header
113        and conio.o is the recompiled new conio.c file that will replace the old
114        conio.o contained in libc.a.
115
116        For all commands that will follow now I will assume that you have
117        cd'ed into the %DJDIR%/gnu/gtxt-010.40/djgpp/djdev-2.03 directory,
118        where %DJDIR% represents the path to your DJGPP installation. First,
119        you should backup your old header and library. For this task, run the
120        following command sequence (cp is the copy program from fil40b.zip):
121          cp /dev/env/DJDIR/include/conio.h /dev/env/DJDIR/include/conio.bak
122          cp /dev/env/DJDIR/lib/libc.a /dev/env/DJDIR/lib/libc.bak
123
124        Now you can copy the new header into your include directory
125        running the command:
126          cp conio.h /dev/env/DJDIR/include
127
128        Now you can substitute the old conio.o file in libc.a with the new one.
129        For this task you will need the ar program from binutils.
130        Run the command:
131          ar -rv /dev/env/DJDIR/lib/libc.a conio.o
132        You are done.
133
1342.4.:   Edit the djgpp.env file which is located in the top DJGPP installation
135        directory. Move to the first or global part of your djgpp.env.
136        The global part of your djgpp.env is everything *BEFORE* the *FIRST*
137        line that looks like:
138[xxxx]
139        where xxxx stands for the name of some DJGPP binary (usually this is bison).
140        Add the following line to the first part of your djgpp.env:
141
142+LANG=xx
143+LANGUAGE=yy:zz
144
145        The line must be completely shifted to the left in your djgpp.env file.
146        Please note the plus sign at the beginning of the line. This plus sign
147        should **NOT** be omited or a lot of shell scripts, in this and in
148        other packages, that try to reset this value will stop working. The
149        LANG entry is obligatory, the LANGUAGE entry may be omited. The
150        LANGUAGE variable allows you to select an alternate catalog that the
151        one stipulated by LANG. Replace xx, yy and zz by the language code of
152        the catalogs you want to use.
153
154        Some examples:
155        If you only want to use the catalog containig the translations for
156        your mother tongue (in my case the spanish translations) the above
157        lines will only use the LANG variable and will look like this:
158
159+LANG=es
160
161        If you want to use the spanish (es) and german (de) catalogs
162        the above lines will look like this:
163
164+LANG=es
165+LANGUAGE=es:de
166
167        In this case a DJGPP binary that has been compiled with NLS support
168        will first search for the spanish translations. If this translations
169        can not be found it will search for the german translations and if
170        this can also not been found it will default to the build-in english
171        messages. If you want to reverse this search order the above lines
172        would look like this one:
173
174+LANG=es
175+LANGUAGE=de:es
176
177        Please note that if you omit the LANG environment variable, the
178        LANGUAGE variable will not be honored at all. The LANG varaiable must
179        always be set to your default catalog. With the aid of LANGUAGE you can
180        select other catalogs apart of the default one. If for some reason you
181        want to disable NLS, then you should comment out the LANG variable or
182        select 'C' as your catalog:
183+LANG=C
184
185        Users not familiar with djgpp.env should refer to kb.info.
186        This document can be read running the command:
187          info -f kb -n DJGPP.ENV
188
1892.5.:   To create an entry for the gettext info docs in your dir file
190        run from the top DJGPP installation directory the command:
191          install-info --info-dir=./info ./info/gettext.info
192
1932.6.:   The binaries distributed in this package have NLS support.
194        E.G. run the command:
195          xgettext
196        and the binary should talk to you in your mother tonge, if
197        supported.
198        For futher information about GNU gettext please read the info docs.
199
200
2013.:     Building the binaries from sources.
202        ===================================
203
2043.1.:   To build the binaries you will need the following binary packages:
205          djdev203.zip (or a later but NOT a prior version)
206          bsh203b.zip  (or a later but NOT a prior version)
207          gcc2953b.zip, bnu2112b.zip, mak3791b.zip,
208          fil40b.zip, shl112b.zip, txt20b.zip,
209          txi40b.zip, grep24b.zip, sed302b.zip,
210          licv17b.zip
211
212        If you want to run the check you will need also:
213          dif272b.zip
214
215        If you want to recreate the html docs you will also need:
216          gro116b.zip  (or a later but NOT a prior version)
217          perl561b.zip (or a later but NOT a prior version)
218
219        All this packages can be found in the v2gnu directory of any
220        Simtel.NET mirror.
221        You must have licv17b.zip or a later version installed before
222        configuring or compiling the package or the configuration and build
223        process will fail due to unresolved references to libiconv.a
224        You will need bsh203b.zip or later and *NOT* a prior version or the
225        build will fail. The same applies to djdev203.zip. You *MUST* use the
226        updated version of shl112b.zip (date: 2000-08-11).
227        This updated versions have been recompiled with djdev203.zip and know
228        about the "/dev/env" functionality introduced with djdev203.zip. All the
229        other packages are the ones I have used to build the binaries from this
230        sources. Previuos versions of this packages may do the job as well but
231        I have not tested this.
232
2333.2.:   Create a temporary directory and copy the source package into the
234        directory. If you download the source distribution from one of the
235        DJGPP archives, just unzip it preserving the directory structure
236        running *ONE* of the following commands:
237          unzip32 gtxt040s.zip      or
238          djtarx gtxt040s.zip       or
239          pkunzip -d gtxt040s.zip
240
241        Source distributions downloaded from one of the GNU FTP sites need
242        some more work to unpack. First, you *MUST* use the `djtar' program
243        to unzip the package.  That is because some file names in the official
244        distributions need to be changed to avoid problems on the various
245        platforms supported by DJGPP. `djtar' can rename files on the fly given
246        a file with name mappings. The distribution includes a file
247        `djgpp/fnchange.lst' with the necessary mappings. So you need first
248        to retrieve that file, and then invoke `djtar' to unpack the
249        distribution. Here is how:
250
251          djtar -x -p -o gettext-0.10.40/djgpp/fnchange.lst gettext-0.10.40.tar.gz > lst
252          djtar -x -n lst gettext-0.10.40.tar.gz
253
254        (The name of the distribution archive and the top-level directory will
255        be different for versions other than 0.10.40.)
256
257        It is always recommended to download the DJGPP packages from some
258        Simtel.NET mirror and *NOT* the original GNU distribution because
259        only the binary distribution of the DJGPP port will contain the
260        files needed to patch libc.a. This are: conio.h and conio.o.
261
2623.3.:   This package is preconfigured for NLS support and for run time recoding
263        due to the functionality provided by libiconv.a from licv17b.zip.
264        This implies that licv17b.zip *MUST* be installed *before* you try to
265        compile the package or the build process will fail.
266        It should be noticed that when you compile your own binaries with NLS
267        you must also *always* link with libiconv.a
268        If you compile this package with a later version of libc.a or if you
269        prefer no NLS support at all you will have to reconfigure this package.
270        The configuration batch file of this package, located in the djgpp
271        directory, allows you to enable or disable NLS support and to compile
272        from a different partition than from where the sources are located.
273        config.bat always configures the package for NLS support enabled and
274        for in-place compilation if no options are given.
275        The available NLS options are:
276          NLS
277          no-NLS
278
279        If for some reason you want no NLS support you will have to reconfigure
280        the package. For this purpose cd into the top srcdir (gtxt-010.40)
281        and run the following commands:
282          make distclean
283          djgpp\config no-NLS
284
285        This step is **NOT** optional and the "distclean" option must be used.
286        If you do not use the "distclean" option the config.cache file will not
287        be deleted. In this case you are **NOT** reconfiguring because the
288        configuration informations are read from the cache file instead of being
289        newly computed.
290        You **MUST** specify "no-NLS" or config.bat will default to "NLS".
291        To build the programs in a directory other than where the sources are,
292        you must add a parameter that specifies the source directory,
293        e.g:
294          x:\src\gnu\gtxt-010.40\djgpp\config x:/src/gnu/gtxt-010.40 no-NLS
295
296        Lets assume you want to build the binaries in a directory placed on a
297        different drive (z:\build in this case) from where the sources are,
298        then you will run the following commands:
299          z:
300          cd \build
301          x:\src\gnu\gtxt-010.40\djgpp\config x:/src/gnu/gtxt-010.40 no-NLS
302
303        If you want NLS support you will omit "no-NLS" or replace it by
304        "NLS" in the above examples.
305        The order of the "NLS" option and the srcdir option does *NOT* matter.
306        You *MUST* use forward slashes to specify the source directory.
307
308        This batch file will set same environment variables, make MSDOS
309        specific modifications to the Makefile.ins and supply all other
310        needed options to the configure script.
311
3123.4.:   To compile the package run from the top srcdir the command:
313          make
314
3153.5.:   Now you can run the tests if you like.
316        From the top srcdir run the command:
317          make check
318
319        Non test should fail.
320
3213.6.:   To install the binaries, header, library, catalogs, and info docs
322        run the following command from the top srcdir:
323          make install CATALOGS="xx.gmo yy.gmo zz.gmo"
324        or
325          make install CATALOGS="xx.gmo yy.gmo zz.gmo" prefix=z:/some/other/place
326
327        This will install the products into your DJGPP installation tree given
328        by the default prefix "/dev/env/DJDIR". If you prefer to install them
329        into some other directory you will have to set prefix to the appropiate
330        value. Replace xx, yy and zz by the language codes of the catalogs you
331        want to install.
332
3333.7.:   Now you have to set the LANG environment variable.
334        Please refer to section 2.3 for further information.
335
336
3374.:     NLS support for other DJGPP ports.
338        ==================================
339
340        This package contains all needed files to get NLS support for the
341        following DJGPP ports:
342          bison-1.28 (bsn128s.zip)
343          enscript-1.5.0 (ens150s.zip)
344          enscript-1.6.1 (ens161s.zip)
345          enscript-1.6.2 (ens162s.zip)
346          fileutils-3.16 (fil316s.zip)
347          fileutils-4.0 (fil40s.zip)
348          grep-2.4 (grep24s.zip)
349          id-utils-3.2 (idu32s.zip)
350          make-3.79.1 (mak3791s.zip)
351          recode-3.5 (rcode35s.zip)
352          recode-3.6 (rcode36s.zip)
353          sed-3.02.80 (sed3028s.zip)
354          sharutils-4.2c (shar42cs.zip)
355          sh-utils-2.0i (shl20is.zip)
356          sh-utils-2.0j (shl20js.zip)
357          tar-1.12a (tar112as.zip)
358          texinfo-4.0 (txi40s.zip)
359          textutils-2.0 (txt20s.zip)
360
361        The files needed are placed in the NLS_for_djgpp_packages tree located
362        in djgpp directory. I will explane this using bison-1.28 as example.
363        This means that file names or command names may change from port to port.
364        The configuration batch files and the sed scripts of every package have
365        the same name as the original ones that this ones will replace. If you
366        are familiar with the original package you shall have no difficulties
367        in reconfigure the package for NLS support.
368        Please inspect the tree NLS_for_djgpp_packages to see what files will
369        be replaced.
370
3714.1.:   To reconfigure and recompile a source package with NLS support you
372        *MUST* install the gtxt040b.zip and licv17b.zip packages
373        first. NLS support will **NOT** work with any prior version of the above
374        mentioned packages. Before installing gtxt040b.zip and licv17b.zip
375        you *MUST* deinstall the old packages if you ever have installed them.
376        For this purpose use the provided manifest files from the old packages.
377        Old packages means previous beta releases of gtxt040b.zip and licv17b.zip
378        *AND* also previous versions of gettext like gettext 0.10.32, etc.
379
3804.2.:   We will assume that the required sources will be unzipped into
381        a directory called src.
382        Copy bsn128s.zip into /src and decompress them preserving the directory
383        structure running the command:
384          unzip32 *.zip
385        This will create the directory:
386          /src/gnu/bison-1.28
387
388        The binary package gtxt040b.zip will create the directory:
389          %DJDIR%/gnu/gtxt-010.40/djgpp/NLS_for_djgpp_packages/bison-1.28
390        This directory contains all needed files.
391        The files are:
392          bison-1.28/djconfig.bat      (new .bat file that replaces the original one.)
393          bison-1.28/djgpp/config.sed  (sed script to modify configure.)
394          bison-1.28/djgpp/config.site (defaults for configure.)
395
396        Now we will xcopy the needed files into the original bison-1.28 directory.
397        First we will cd into the bison-1.28 directory and then we will run the
398        following command:
399          xcopy %DJDIR%\gnu\gtxt-010.40\djgpp\NLS_for_djgpp_packages\bison-1.28 /v/s/e
400
4014.3.:   Before the package can be reconfigured, the old configuration must be
402        cleared. Run the command:
403          make distclean
404
405        This will remove all Makefiles, config.h and config.cache file with old
406        configuration information. This step is *NOT* optional and it must be
407        used the "distclean" target.
408
4094.4.:   Now the package can be configured running the command:
410          djconfig
411        if you want to build the products in the /src/bison-1.28 directory, or:
412          c:\src\bison-1.28\djconfig c:/src/bison-1.28
413        if you want to build the products on a different drive or directory.
414        You can still configure without NLS support if you want. In this case
415        simply add the option "no-NLS" to the above commands.
416
4174.5.:   Now the package can be compiled and checked by running the commands:
418          make
419          make check
420        The first command will create also all the available translation
421        catalogs (.gmo files). Before running the tests you should clear
422        the LANGUAGE and/or LANG variable or the tests will probably fail.
423
4244.6.:   Now the products can be installed by running the command:
425          make install CATALOGS="xx.gmo yy.gmo"
426
427        Replace xx and yy by the appropiate language codeof the catalogs you
428        want to install. If you omit CATALOGS then all catalogs will be installed.
429        You can install into a temp directory if you want by specifying a prefix:
430          make install prefix=z:/tmp CATALOGS="xx.gmo yy.gmo zz.gmo"
431
4324.7.:   Now you have to set the LANG environment variable.
433        Please refer to 2.4.
434
435
436        Send GNU gettext specific bug reports to <bug-gnu-utils@gnu.org>.
437        Send suggestions and bug reports concerning the DJGPP port to
438        comp.os.msdos.djgpp or <djgpp@delorie.com>.
439
440
441Enjoy.
442
443        Guerrero, Juan Manuel <st001906@hrz1.hrz.tu-darmstadt.de>
Note: See TracBrowser for help on using the repository browser.