-
Notifications
You must be signed in to change notification settings - Fork 24
/
README
229 lines (172 loc) · 7.28 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
GnuCOBOL
https://www.gnu.org/software/gnucobol/
https://sourceforge.net/projects/gnucobol
https://savannah.gnu.org/projects/gnucobol
GnuCOBOL is a free (like both in "free speech" and in "free beer")
COBOL compiler, formerly known as OpenCOBOL.
It implements a substantial part of the COBOL 85, COBOL 2002 and COBOL 2014
standards, as well as many extensions included in other COBOL compilers.
GnuCOBOL translates COBOL into C and compiles the translated code
using the native C compiler on various platforms, including Unix/Linux,
Mac OS X, and Microsoft Windows.
This package contains the following subdirectories:
cobc COBOL compiler
libcob COBOL run-time library
bin COBOL driver program
build_aux Helper scripts
lib Helper routines for missing OS functionality
config Configuration files
po International messages
doc 'info' and 'pdf' files
tests Test suite (GnuCOBOL and framework for COBOL85)
extras useful COBOL programs
All programs except those in lib and libcob are distributed under
the GNU General Public License. See COPYING for details.
Programs in lib and libcob are distributed under the GNU Lesser
General Public License. See COPYING.LESSER for details.
For any copyright year range specified as YYYY-ZZZZ in this package,
that the range specifies every single year in that closed interval.
Although many have participated, most development thanks go to
Roger While
Keisuke Nishida
See AUTHORS for the author of each file.
============
Requirements
============
GnuCOBOL uses other software packages, some of these are necessary,
some optional.
See DEPENDENCIES for a complete list of these which may be helpful
if you build GnuCOBOL from source. You will also likely see some of those
when using pre-built binaries of this project, for example via your OS
package manager like apt, yum, pacman, brew, ...
============
Installation
============
See the INSTALL file for detailed information about how to configure
and install GnuCOBOL "building from source".
Special requirements and further installation notes are listed below.
** NOTE **
The default installation path for GnuCOBOL is /usr/local.
The installation path may be changed by specifying --prefix=<dir>
as a parameter to the configure.
Further parameters may be specified to affect
include/library search paths.
Execute ./configure --help for further details.
To generate/install GnuCOBOL :
**************************************
Configure and build
./configure
make
Here you may run different tests with the version of GnuCOBOL that is
not installed yet, see "Tests" below.
This is *highly recommended* before installing.
Install
make install
** NOTE **
You generally need super-user privileges to execute "make install"
unless you changed the installation directory with
"./configure --prefix=<dir>" or install to a different location with
"make install DESTDIR=<dir>".
In those later cases you only need to have full access to <dir>.
** NOTE **
On Linux systems, if you are installing for the
-first- time, you may need to run "ldconfig" (as root).
In fact, it does not hurt if you always do this.
** NOTE **
On some Red Hat (Fedora) installations and
possibly other Linux distros, /usr/local/lib
is NOT automatically searched at runtime.
Edit /etc/ld.so.conf (or the equivalent file) and add
/usr/local/lib to the file.
Rerun "ldconfig".
**************************************
If you think you have a problem or just want to log
the output of make then redirect the output with :
make 1>mymake.log 2>&1
make install 1>myinstall.log 2>&1
**************************************
You can get back to a clean installation status by running :
make distclean
**************************************
============
Tests
============
To verify GnuCOBOL works before installing it, run the internal
testsuite. Simply do
make check
This MUST succeed. Please report any failures.
You may optionally perform a series of COBOL85 tests.
make test
It is recommended that you also perform these tests.
** NOTE **
The language interpreter "perl" is required to run COBOL85 tests.
** NOTE **
Running "make test" will try to download the COBOL85
testsuite if it is neither in the build-tree nor source-tree.
For details see tests/cobol85/README.
If you want to run both testsuites you can run
make checkall
You may also optionally perform a series of semi-manual tests to
verify a working extended screenio.
make checkmanual
The test execution is automatic but the user needs to check for
the expected result. See tests/run_prog_manual.sh for tweaking the
test runner used (which is otherwise deduced from the environment),
either in that script or via TESTRUNNER environment variable.
** NOTE **
The semi-manual tests need either "xterm", GNU "screen" or "tmux"
installed and will run within a detached "cmd" on MSYS based
systems otherwise.
For running with screen or tmux execute the following from
a separate terminal, directly after running the testsuite:
tests/run_prog_manual.sh attach
... and leave that using "exit" at the end of the tests
============
The following is only interesting for advanced use.
A normal user should not have recourse to use these
options.
There are many configure options (see configure --help for a full list),
these are the most important ones:
--with-db Use Berkeley DB >= 4.1 (libdb) (ISAM handler)
This is the default
--without-db Do neither use Berkeley DB nor any other ISAM handler
You will not be able to use indexed I/O
--with-vbisam Use VBISAM (libvbisam) (ISAM handler)
--with-dl Use the system dynamic linker
This is the default
--without-dl Use ltdl for dynamic program loading
--with-patch-level=<n> Set internal patch level to n (default 0)
--with-varseq=<n> Define the default format for variable
length sequential files.
The default may be overridden at run time by
setting the environment variable
COB_VARSEQ_FORMAT to 0, 1, 2, or 3.
For values of 0, 1 and 2, four bytes are
written preceding each record. The format of
these four bytes for values of 0, 1, 2 is
as follows :
n = 0 (default)
The first 2 bytes are the record length
in big-endian order. This is compatible
with mainframe. Bytes 3 and 4 are set
to binary 0.
n = 1
The 4 bytes are the record length in
big-endian order.
n = 2
The 4 bytes are the record length in
native machine order (int).
(This was previously the default)
For the value of 3, two bytes are written
preceding each record :
n = 3
The first 2 bytes are the record length
in big-endian order. The record follows
immediately after beginning at byte 3.
--enable-debug Add '-g' debug option to make
============
============
Development
============
If you wish to hack the GnuCOBOL source or build from version control,
see HACKING.