home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 7
/
FreshFishVol7.bin
/
bbs
/
gnu
/
libg++-2.6-fsf.lha
/
libg++-2.6
/
libg++
/
README
< prev
next >
Wrap
Text File
|
1994-07-14
|
10KB
|
244 lines
This is version 2.6 of libg++, the GNU C++ class library.
Release date July 1994 by Cygnus Support
* Please skim through this once BEFORE attempting to make and install libg++.
* Contents
* g++ source files (with their include files) are in the ./src directory
* Some simple tests and demo programs are in ./tests
* documentation is in ./libg++.texi.
* A perfect hash function generator is in ./gperf.
* Some miscellaneous files of possible interest are in ./etc
(These files are not officially a part of the libg++ distribution,
and are subject to arbitrary changes, deletions, etc. from release
to release.)
* Copyright restrictions
The GNU Library General Public License (which is in the file
../COPYING.LIB) covers all libraries (specificly libg++.a) and
include files that get installed (by 'make install').
Other parts of the libg++ *distribution* that are not part the libg++
*library* per se have the GNU General Public License (which is in the
file ../COPYING).
Individual files should bear the appropriate Copyright (let us know
if you think there is a mistake). But specificly, if your application
only uses files that are installed by the normal build+install
procedure, then it is bound by the restrictions of the GNU Library
General Public License, but not those of the GNU General Public License.
* Pre-installation
* This version of libg++ works best with gcc-2.6 or newer.
It assume that gcc is responsible for fixing standard C include
files (such as stdio.h) so that they are suitable for C++
(Using the new fixproto script that is part of gcc-2.6).
* If you're using gcc-2.0 or 2.1 you may need to move aside any
installed g++-include header files installed from previous versions
of libg++, since they might conflict with the new ones.
This is not necessary if your version of gcc supports the
-nostdinc++ flag.
In general, install a version of gcc (which now includes g++)
with at least as high a version number as this version of libg++.
You can compile libg++ using a gcc that you haven't installed.
The most convenient way to do that is to make a symlink named
gcc in the top-level directory (i.e. libg++-2.6) that points to
the directory containing the new gcc. (You should end up with
libg++/../gcc/xgcc being a valid filename for the uninstalled gcc.)
* With only trivial modifications (like changing file extensions,
etc.) everything (perhaps except for some demos in ./etc)
should compile and run with any 2.0 C++ compiler. Please tell me
if this is not so.
Exactly what changes you make depends on what part of libg++ you want.
If you don't want to use the libg++ version of iostreams,
edit 'IO_DIR=../libio' to 'IO_DIR=no-stream' in ../libio/config.shared.
You then need to 'make' with CC and CXX set appropriately.
You also need to set 'NOSTDINC=' on the make command line.
* Installation (see libg++.texi more more details)
* For VMS, cd to ./vms, and read AAAREADME.TXT
[NOTE: The VMS support is obsolete. We need a volunteer to fix it.]
* Make sure your sed is *not* GNU sed version 1.12.
Most other versions (including GNU sed 1.13) should be OK.
* Go to the directory *above* libg++ (i.e.. libg++-2.6).
* Run './configure' to configure the tree and create Makefiles.
Typical example:
./configure [SYSTEM] --prefix=/usr/gnu
The prefix says that installation should be into
/usr/gnu/lib, /usr/gnu/bin, etc as appropriate.
The SYSTEM indicates what machine configuration you're
running on. If you don't specify it, the system can usually
guess a default.
IMPORTANT: The configure options (including SYSTEM and
--prefix) must match those used to configure gcc, otherwise
g++ may fail to find libg++.
See etc/cfg-paper.texi for more details. (This paper is
in texinfo format; see the section below on Installing
the Documentation on how to make it more readable.)
* Type `make all "CC=gcc -O"'. (Builds libg++.a and some other things.)
(The "CC=gcc -O' is optional. It forces use of gcc to compile
C programs.)
* Optionally, type `make check' to make and run some tests/demos of libg++.
* Before installing, if you have an old version that was installed
into the same directory(s), you should probably remove it.
(There is currently no clean mechanism to do that.
You should at least remove $(prefix)/lib/g++-include/*.h,
where $(prefix) is by default /usr/local.)
* Type `make install' to install
libg++.a (from .)
include files (from src and ../libio)
prototype files (from src/gen)
etags (from etc)
g++dep (from etc)
some other stuff
You may also want to install etc/c++-mode.el in your
emacs/lisp directory, probably in byte-compiled form.
* Install the documentation
If you are a systems administrator installing libg++ for others,
please make the documentation available to users!
The libg++.texi file may be formatted as a paper document by
* Get a copy of texinfo.tex.
This file defines various tex macros used in libg++.texi
One is in the gcc release.
You can temporarily copy it into the current directory.
* Run tex on libg++.texi
and do whatever you normally do from there to print it.
It may be made into an emacs info file:
* use the 'makeinfo' program (from the texinfo distribution).
* Copy these files into your emacs info directory
(normally somewhere like /usr/gnu/emacs/info).
* If you have not done so before, edit the emacs/info/dir file
to add a libg++ node, by inserting a line like
* Libg++: (libg++). The GNU C++ Library
to the bottom of the file.
* (Optional) Install, from ./etc
etags (version of etags that understands c++)
g++dep (a version of mkdep that understands c++)
c++-mode.el (a c++-mode for GNU emacs)
* Notes on compiling and running libg++/tests
tCurses is not automatically run through `checktests'.
You must run it manually:
tCurses attempts to place one of each curses library primitive (boxes,
strings, numbers...) on your screen, and asks for some input, to test
curses input routines. Since there is no way to describe the output
in a system- and terminal- independent way, you will have to be the
judge of whether it works acceptably.
tCurses (and the curses-based classes generally) may fail on the
Sequent and perhaps other systems with unusual or old curses library
implementations if you do not end input with a <linefeed> instead of
the normal <carriage-return>.
It is a very good idea to also cd to the test directory and run tests
manually, to see what they do.
Compiling and running the tests consumes a fair amount of time and
disk space!
Some reported diffs may be perfectly reasonable, owing to things like
floating point precision differences: The expected.out file was created
on a Sun4/110.
Some tRational and tFix results depend on floating point precision
and may generate slightly different output on different machines.
tRandom seeds some random-numbers in a way that also relies on
floating-point representations -- Your output should be numerically
similar, but probably not identical.
* Changes since previous versions(s).
See the file NEWS.
* Known bugs and problems
* The file etc/HINTS is an emacs RMAIL file that contains recent
bug-lib-g++ list mail and related messages that may be useful.
* If "make install" fails with the error message:
Static constructor test failed - see libg++.README
this indicates an error in installing gcc.
C++ needs special linker support beyond that needed for C, to make
sure that static objects get initialized and destroyed properly.
Some linkers (including the GNU linker as well as linkers for
the Elf object file format) already provide the needed support.
In other ca