]>
Commit | Line | Data |
---|---|---|
cd72b08b JMG |
1 | This is a port of GNU Bison @VERSION@ to MSDOS/DJGPP. |
2 | ||
34136e65 | 3 | Copyright (C) 2005-2012 Free Software Foundation, Inc. |
02650b7f | 4 | |
f16b0819 | 5 | This program is free software: you can redistribute it and/or modify |
02650b7f | 6 | it under the terms of the GNU General Public License as published by |
f16b0819 PE |
7 | the Free Software Foundation, either version 3 of the License, or |
8 | (at your option) any later version. | |
02650b7f PE |
9 | |
10 | This program is distributed in the hope that it will be useful, | |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | GNU General Public License for more details. | |
14 | ||
15 | You should have received a copy of the GNU General Public License | |
f16b0819 | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
02650b7f | 17 | |
cd72b08b JMG |
18 | |
19 | 1.: DJGPP specific changes. | |
02650b7f PE |
20 | ======================= |
21 | ||
22 | The DJGPP port of Bison offers LFN and SFN support depending on which | |
23 | OS it is running. If LFN support is available or not is determinated at | |
127bcae6 JMG |
24 | run time. If LFN support is available (DOS session under Win9X, Win2K, |
25 | WinXP, etc.) the standard posix file name extensions will be used. | |
26 | These are: y.tab.c, y.tab.c++, y.tab.h, y.output, etc. If only SFN | |
27 | support is available (plain DOS), then the standard MSDOS short file | |
28 | names will be used. These are: y_tab.c, y_tab.h, y.out, etc. | |
02650b7f PE |
29 | It should be noticed that this bison version needs the m4 program as |
30 | back end to generate the parser file (y.tab.c etc.) from the skeleton | |
31 | files. This implies that m4 must always be installed to get bison | |
32 | working. m4 will use a couple of m4 scripts that will be installed in | |
33 | /dev/env/DJDIR/share/bison and shall not be removed. | |
34 | It should also be noticed that the skeleton files bison.simple and | |
35 | bison.hairy are no longer supported. This applies also to the environ- | |
127bcae6 | 36 | ment variables BISON_HAIRY and BISON_SIMPLE. Those variables are *no* |
02650b7f PE |
37 | longer honored at all. |
38 | The kind of skeleton file bison.hairy is no longer supported at all. | |
39 | The skeleton file bison.simple is now called yacc.c and is an m4 script. | |
40 | The other two skeleton files supported by this bison version are glr.c | |
41 | and lalr1.cc. The first one is a generalized LR C parser based on | |
42 | Bison's LALR(1) tables and the second one is a experimental C++ parser | |
43 | class. | |
44 | As has been told before, bison uses m4 to generate the parser file. | |
45 | This is done by forking and using pipes for the IPC. MSDOS does not | |
46 | support this functionality so this has been reproduced in the usual | |
47 | way by redirecting stdin and stdout of bison and m4 to temporary files | |
1ab41b2a JMG |
48 | and processing these files in sequence. |
49 | It should be noticed that due to the great amount of file names that do | |
50 | not cleanly map to 8.3 file names, you will need an OS with LFN support | |
51 | to configure and compile the sources. On Win98 this implies that the | |
52 | generation of numeric tails for 8.3 file name aliases must be enabled | |
53 | or the compilation will fail. | |
54 | ||
02650b7f PE |
55 | |
56 | Please **read** the docs. | |
cd72b08b JMG |
57 | |
58 | ||
59 | 2.: Installing the binary package. | |
02650b7f | 60 | ============================== |
cd72b08b JMG |
61 | |
62 | 2.1.: Copy the binary distribution into the top DJGPP installation directory, | |
02650b7f PE |
63 | just unzip it preserving the directory structure running *ONE* of the |
64 | following commands: | |
65 | unzip32 bsn@PACKAGE_VERSION@b.zip or | |
66 | djtarx bsn@PACKAGE_VERSION@b.zip or | |
67 | pkunzip -d bsn@PACKAGE_VERSION@b.zip | |
cd72b08b JMG |
68 | |
69 | ||
70 | ||
71 | 3.: Building the binaries from sources. | |
02650b7f | 72 | =================================== |
cd72b08b | 73 | |
bf60087f | 74 | 3.1.: Create a temporary directory and copy the source package into the |
02650b7f PE |
75 | directory. If you download the source distribution from one of the |
76 | DJGPP sites, just unzip it preserving the directory structure | |
77 | running *ONE* of the following commands: | |
78 | unzip32 bsn@PACKAGE_VERSION@s.zip or | |
79 | djtarx bsn@PACKAGE_VERSION@s.zip or | |
80 | pkunzip -d bsn@PACKAGE_VERSION@s.zip | |
81 | and proceed to the paragraph 3.3, below. | |
bf60087f JMG |
82 | |
83 | 3.2.: Source distributions downloaded from one of the GNU FTP sites need | |
02650b7f PE |
84 | some more work to unpack, if LFN support is not available. If LFN is |
85 | available then you can extract the source files from the archive with | |
86 | any unzip program and proceed to the paragraph 3.3, below. Any file | |
59420cd7 | 87 | name issue will be handled by the DJGPP configuration files. |
02650b7f PE |
88 | To unpack the source distribution on SFN systems, first, you MUST use |
89 | the `djunpack' batch file to unzip the package. That is because some | |
90 | file names in the official distributions need to be changed to avoid | |
91 | problems on the various platforms supported by DJGPP. | |
92 | `djunpack' invokes the `djtar' program (that is part of the basic DJGPP | |
93 | development kit) to rename these files on the fly given a file with | |
94 | name mappings; the distribution includes a file `djgpp/fnchange.lst' | |
95 | with the necessary mappings. So you need first to retrieve that batch | |
96 | file, and then invoke it to unpack the distribution. Here's how: | |
97 | ||
127bcae6 JMG |
98 | djtar -x -p -o bison-@VERSION@/djgpp/djunpack.bat bison-@VERSION@.tar.gz > djunpack.bat |
99 | djunpack bison-@VERSION@.tar.gz | |
02650b7f PE |
100 | |
101 | (The name of the distribution archive and the leading directory of the | |
102 | path to `djunpack.bat' in the distribution will be different for | |
127bcae6 | 103 | versions of Bison other than @VERSION@.) |
02650b7f PE |
104 | |
105 | If the argument to `djunpack.bat' include leading directories, it MUST | |
106 | be given with the DOS-style backslashes; Unix-style forward slashes | |
107 | will NOT work. | |
108 | ||
109 | If the distribution comes as a .tar.bz2 archive, and your version of | |
110 | `djtar' doesn't support bzip2 decompression, you need to unpack it as | |
111 | follows: | |
112 | ||
127bcae6 JMG |
113 | bnzip2 bison-@VERSION@.tar.bz2 |
114 | djtar -x -p -o bison-@VERSION@/djgpp/djunpack.bat bison-@VERSION@.tar > djunpack.bat | |
115 | djunpack bison-@VERSION@.tar | |
bf60087f JMG |
116 | |
117 | 3.3.: To build the binaries you will need the following binary packages: | |
02650b7f PE |
118 | djdev203.zip (or a later but NOT a prior version) |
119 | bsh204b.zip (or a later but NOT a prior version) | |
1ab41b2a | 120 | gccNNNb.zip, gppNNN.zip, bnuNNNb.zip, makNNNb.zip, filNNNb.zip, |
f8cec99b JMG |
121 | perlNNNb.zip, shlNNNb.zip, txtNNNb.zip, txiNNNb.zip, grepNNNb.zip, |
122 | sedNNNb.zip and m4NNN.zip | |
02650b7f PE |
123 | |
124 | If you want to run the check you will need also: | |
1ab41b2a | 125 | difNNNb.zip |
02650b7f | 126 | |
1ab41b2a JMG |
127 | NNN represents the latest version number of the binary packages. All |
128 | this packages can be found in the /v2gnu directory of any | |
02650b7f | 129 | ftp.delorie.com mirror. |
c211f84b | 130 | You will need bsh204b.zip or later and *NOT* a prior version or |
02650b7f | 131 | the build will fail. The same applies to djdev203.zip. Please note |
1ab41b2a | 132 | that Bison requires m4-144b.zip or later to work properly. |
cd72b08b | 133 | |
bf60087f | 134 | 3.4.: If for some reason you want to reconfigure the package cd into the top |
02650b7f PE |
135 | srcdir (bison-@TREE_VERSION@) and run the following commands: |
136 | del djgpp\config.cache | |
137 | make clean | |
138 | djgpp\config | |
139 | ||
140 | Please note that you *MUST* delete the config.cache file in the djgpp | |
141 | subdir or you will not really reconfigure the sources because the | |
142 | configuration informations will be read from the cache file instead | |
143 | of being newly computed. | |
144 | To build the programs in a directory other than where the sources are, | |
145 | you must add the parameter that specifies the source directory, | |
146 | e.g: | |
147 | x:\src\gnu\bison-@TREE_VERSION@\djgpp\config x:/src/gnu/bison-@TREE_VERSION@ | |
148 | ||
149 | Lets assume you want to build the binaries in a directory placed on a | |
150 | different drive (z:\build in this case) from where the sources are, | |
151 | then you will run the following commands: | |
152 | z: | |
153 | md \build | |
154 | cd \build | |
155 | x:\src\gnu\bison-@TREE_VERSION@\djgpp\config x:/src/gnu/bison-@TREE_VERSION@ | |
156 | ||
157 | The order of the options and the srcdir option does not matter. You | |
158 | *MUST* use forward slashes to specify the source directory. | |
159 | ||
160 | The batch file will set same environment variables, make MSDOS specific | |
161 | modifications to the Makefile.in's and supply all other needed options | |
162 | to the configure script. | |
cd72b08b | 163 | |
bf60087f | 164 | 3.5.: To compile the package run from the top srcdir the command: |
02650b7f | 165 | make |
cd72b08b | 166 | |
bf60087f | 167 | 3.6.: Now you can run the tests if you like. From the top srcdir run the |
02650b7f PE |
168 | command: |
169 | make check | |
cd72b08b | 170 | |
c211f84b JMG |
171 | No test should fail but the tests #131 (Doxygen Public Documentation) |
172 | and #132 (Doxygen Private Documentation) will be skipped. Please note | |
173 | that the testsuite only works with LFN available. On plain DOS, most | |
174 | of the tests will fail due to invalid DOS names. | |
cd72b08b | 175 | |
bf60087f | 176 | 3.7.: To install the binaries, header, library, catalogs, and info docs |
02650b7f PE |
177 | run the following command from the top srcdir: |
178 | make install | |
cd72b08b | 179 | |
02650b7f PE |
180 | This will install the products into your DJGPP installation tree given |
181 | by the default prefix "/dev/env/DJDIR". If you prefer to install them | |
182 | into some other directory you will have to set prefix to the appropiate | |
183 | value: | |
184 | make install prefix=z:/some/other/place | |
cd72b08b JMG |
185 | |
186 | ||
187 | ||
02650b7f PE |
188 | Send GNU bison specific bug reports to <bug-bison@gnu.org>. |
189 | Send suggestions and bug reports concerning the DJGPP port to | |
190 | comp.os.msdos.djgpp or <djgpp@delorie.com>. | |
cd72b08b JMG |
191 | |
192 | ||
193 | Enjoy. | |
194 | ||
02650b7f | 195 | Guerrero, Juan Manuel <juan.guerrero@gmx.de> |