home *** CD-ROM | disk | FTP | other *** search
- This is version 2.5 of libg++, the GNU C++ class library.
- Release date October 1993 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++.texinfo.
- * 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.5 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.5).
-
- * If you're using gcc-2.0 or 2.1 you made 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.5) 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.
-
- * Installation (see libg++.texinfo more more details)
-
- * For VMS, cd to ./vms, and read AAAREADME.TXT
-
- * If you're running 386BSD, apply the patches in README.386bsd
- (by running 'patch -p <README.386bsd').
-
- * 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.5).
-
- * 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'. (Builds libg++.a and some other things.)
-
- * Optionally, type `make check' to make and run some tests/demos of libg++.
-
- * 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)
-
- 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++.texinfo file may be formatted as a paper document by
-
- * Get a copy of texinfo.tex.
- This file defines various tex macros used in libg++.texinfo
- One is in the gcc release.
- You can temporarily copy it into the current directory.
- * Run tex on libg++.texinfo
- 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 cases, gcc (or g++) uses the "collect2" linker driver.
- Gcc should by default do the right thing, but if you tell
- gcc to assum the GNU linker (with the --with-gnu-linker option),
- and then fail to correctly install GNU ld, you will lose.
-
- * Lots of other information is in the libg++.texinfo file. It really is
- very important to actually read the documentation before using
- library classes. Examination of the demo files in the test directory
- may also be useful. (Note however, that the demo files are merely
- designed to test examples of each class capability,
- and are not especially good examples of client functions that might
- use these classes.)
-
- * There is now a gnu libg++ mailing list (bug-lib-g++@prep.ai.mit.edu) and
- associated usenet gnu news group.
-
- * You will be performing a valuable service if you use libg++
- classes and report back any comments, and suggestions, or bugs,
- preferably to the bug-lib-g++ list. Your feedback is extremely
- helpful in efforts to make libg++ as useful and reliable as possible.
-
- * We continue to solicit
-
- * bug reports.
- * suggestions.
- * comments.
- * questions about installing and using libg++
- * other contributions to be incorporated into libg++.
- * sample programs using libg++.
-
- Often, the best place to send such things is bug-lib-g++@prep.ai.mit.edu,
- although direct mail is also welcome.
-
- * Good luck!
-
- Doug Lea designed and implemented most of the classes,
- and was the original maintainer and "owner" of libg++.
- He has handed over "ownership" to Cygnus Support.
-
- Doug Lea, Computer Science Dept., SUNY Oswego, Oswego, NY, 13126 (315)341-2367
- email: dl@g.oswego.edu or dl@cat.syr.edu
- UUCP :...cornell!devvax!oswego!dl or ...rutgers!sunybcs!oswego!dl
-
- Per Bothner, Cygnus Support, bothner@cygnus.com
- Cygnus Support, 1937 Landings Drive, Mountain View, CA 94043
-