201 lines
7.3 KiB
Plaintext
201 lines
7.3 KiB
Plaintext
The TinyCOBOL Project.
|
|
|
|
TinyCOBOL supports the IA32 (x86) architecture and the following platforms.
|
|
|
|
- FreeBSD using the GCC compiler.
|
|
- Linux using the GCC compiler.
|
|
- Win32 using the GCC MinGW (Mingw32) compiler.
|
|
- Win32 using the GCC Cygwin compiler and POSIX emulation layer.
|
|
- BeOS with a bit of luck!
|
|
|
|
See 'INSTALL.Win32' file notes for information on the Win32 platforms.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Release Notes: BeOS
|
|
|
|
Sleepycat's Berkeley DB 4.1.25 compiles perfectly on BeOS with 'configure --enable-compat185 --prefix=/boot/home/config'
|
|
|
|
do 'make', and 'make install'
|
|
|
|
Once you have Berkeley DB, continue to build TinyCOBOL
|
|
|
|
The configure script will attempt to properly configure such systems.
|
|
|
|
However due to the number of permutations the configure script may
|
|
fail to configure for Berkeley's DB library.
|
|
|
|
If the normal configure fails to properly detect Berkeley's lib DB on
|
|
your system, try the following option:
|
|
./configure --prefix=/boot/home/config --with-libdb=4
|
|
|
|
If the '--with-libdb=4' option fails to properly detect Berkeley's DB
|
|
on your system, then some temporary links may be used to circumvent
|
|
this problem.
|
|
ln -s libdb1.so.xx libdb.so
|
|
ln -s db1/db.h db.h
|
|
|
|
Also, copy the ncurses headers to /boot/home/config/include
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Requirements:
|
|
|
|
GCC tool set (GCC, AS, LD):
|
|
This compiler generates GAS compatible assembler code for the i386 Linux platform.
|
|
The final compilation and linkage can be done by GCC, or by htcobol
|
|
using the -x option.
|
|
|
|
Bison or Berkeley's YACC (byacc) version 1.9.3 is required to compile
|
|
the TC parser.
|
|
Berkeley's YACC version 1.9.3 (byacc) can be downloaded only from the
|
|
TC 'snapshot' web page.
|
|
Previous versions will not work, as the table size is inadequate to handle
|
|
the large COBOL grammar.
|
|
|
|
Library DB (version db-1.85.4 or later):
|
|
This library is used to access indexed files. It is available on iBiblio(1),
|
|
or at Sleepycat(2).
|
|
Note that version 1.85 and 2.0 may be named -ldb or -ldb1. Version 2.xx, 3.yy
|
|
(xx > 0) may be named -ldb or -ldb2.
|
|
|
|
Note that later versions of libdb, such as 3.0.55, have a compatibility to
|
|
version 1.85 option, when configured with '--enable-compat185' (DB 1.85
|
|
compatibility API).
|
|
|
|
Note that the configure script will try to determine and test for the
|
|
library db version using various library names (-ldb -ldb1 -ldb2). However
|
|
the test.code and test_suite directory Makefiles will require minor manual
|
|
modifications if library db is named as libdb1, libdb2 or libdb3 on your system.
|
|
This will be changed at a later date.
|
|
|
|
The current configure script will try to determine which version of library
|
|
db is been used, assuming the library is called libdb.so*, libdb.a.
|
|
It does so by checking for the existence of the headers and library, and then
|
|
performs the following tests:
|
|
- If header db_185.h is found, it does a test compile with libdb, to ensure
|
|
that the compatibility to version 1.85 option set.
|
|
- If header db_185.h is not found, it searches for header db.h.
|
|
- If header db.h is found, it does a test to ensure that the header belongs
|
|
to version 1.85 of libdb, and finally it does a test compile, to ensure
|
|
it is version 1.85 of libdb.
|
|
|
|
Note that database file formats are incompatible between version 1.85.4 and 2.xx
|
|
and later. Thus indexed files created by a COBOL program using version 1.85.4 of db,
|
|
will not be readable by any COBOL program using later versions of db.
|
|
|
|
|
|
1) iBiblio (formerly known as Metalab, Sunsite)
|
|
http://www.ibiblio.org/pub/linux/libs/db
|
|
db-1.85.4-bin-ELF.tar.gz - shared lib of db 1.85.4
|
|
db-1.85.4-src.tar.gz - full source tree for db 1.85.4
|
|
|
|
2) Sleepycat Software
|
|
http://www.sleepycat.com/
|
|
versions 2.xx and later (current 4.xx series)
|
|
|
|
ncurses:
|
|
The ncurses library is required. Used in screen I/O.
|
|
|
|
readline:
|
|
The realine library version 2 is optional. Set by WANT_READLINE build option.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
To build:
|
|
|
|
./configure
|
|
make
|
|
make install (su access required)
|
|
|
|
Note that the test programs found in test_suite and test.code directories,
|
|
can be compiled and run without installing htcobol.
|
|
|
|
configure options:
|
|
--enable and --with options recognized:
|
|
--with-compiler=[ARG] use compiler [gcc/kgcc/egcs default=gcc]
|
|
--with-yacc=[ARG] use YACC [yacc193 default=bison]
|
|
--enable-debug set C compiler debug option on [-g]
|
|
--enable-debug-all enable all debug options
|
|
--enable-debug-comp enable compiler and scanner debug options
|
|
--enable-debug-compiler enable compiler debug option
|
|
--enable-debug-scanner enable scanner debug option
|
|
--enable-debug-rts enable debug Run-Time option
|
|
--enable-debug-rts-move enable debug Run-Time Move routines option
|
|
--enable-debug-pp enable debug pre-processor option
|
|
--with-libdb=[ARG] use DB library version [2 3]
|
|
--with-readline use readline library
|
|
--with-dl use dynamic loader for RTS libraries
|
|
|
|
|
|
Note:
|
|
The '--enable-debug-comp' configure option will enable the compiler trace
|
|
information generated by the compiler, and used to debug the compiler itself.
|
|
It will not effect compiler debug option '-D', which adds debugging data to
|
|
the generated binary.
|
|
|
|
Unless you are a developer, or are planning to debug the compiler itself, or
|
|
like to look at substantial amounts of trace data, it is recommended that the
|
|
above configure option be omitted.
|
|
|
|
To clean:
|
|
Type make clean to clean lib and compiler.
|
|
|
|
Type make cleanall to clean lib, compiler, utils, test.code.
|
|
|
|
Type make distclean to clean lib and compiler and config.cache config.status
|
|
config.log Makefiles.
|
|
|
|
Some test programs can be found in test.code directory.
|
|
|
|
The utils directory contains some utility programs.
|
|
|
|
cobf2f (Option, not installed by default):
|
|
Converts to/from fixed and free-form COBOL formats.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
The TinyCOBOL pre-processor.
|
|
|
|
What it does.
|
|
- convert from fixed to free-form COBOL format.
|
|
- Process the COPY command.
|
|
- Process the REPLACE command (not functional in current version).
|
|
|
|
The pre-processor is now part of the main compiler.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Environmental variables:
|
|
|
|
The 'TCOB_OPTIONS_PATH' environment variable sets the directory where the compiler options
|
|
file 'htcobolrc' can be found.
|
|
|
|
The 'TCOBRT_CONFIG_DIR' environment variable sets the directory where the run-time options
|
|
file 'htrtconf' can be found.
|
|
|
|
The 'TCOB_LD_LIBRARY_PATH' and 'LD_LIBRARY_PATH' environment variables sets the Dynamically loaded
|
|
shared libraries search path (excluding Win32).
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
To install:
|
|
|
|
If necessary edit directories and filenames htconfig.h, Makefile in compiler directory,
|
|
and Makefile in lib directory to suit.
|
|
|
|
Edit the compiler resource file called htcobolrc found in the compiler directory.
|
|
|
|
The compiler resource file name can be set in htconfig.h.
|
|
This file contains installation specific default information.
|
|
|
|
As su, in the root directory type make install.
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
Reported problems:
|
|
|
|
Please email me at matt@verranm.fsnet.co.uk
|
|
|
|
send me your config.log and a screen print, with a description of your problems
|