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