home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BURKS 2
/
BURKS_AUG97.ISO
/
BURKS
/
SOFTWARE
/
LIBS
/
NIHCL1.ZIP
/
NIHCL-3.0
/
INSTALL
(
.txt
)
< prev
next >
Wrap
Text File
|
1990-05-25
|
15KB
|
529 lines
Installation NIH Class Library Revision 3.0 Installation
INTRODUCTION
This is the Installation Guide for the NIH Class Library
(previously known as the "OOPS" Class Library) Revision 3.0.
The NIH Class Library is intended to be portable to a UNIX
system compatible with either System V or 4.2/4.3BSD and which
supports the AT&T C++ translator Release 2.00, Release 2.1, or
other compatible C++ compiler. We have ported and tested this
library on the following systems:
Sun-3 with SunOS 3.5
Sun-3 with SunOS 4.0
Sun-4 with SunOS 4.0
Send comments to:
Keith Gorlen
Building 12A, Room 2033
Computer Systems Laboratory
Division of Computer Research and Technology
National Institutes of Health
Bethesda, MD 20892
phone: (301) 496-1111
Internet : kgorlen@alw.nih.gov
uucp: uunet!nih-csl!kgorlen
GUIDE TO THIS DISTRIBUTION KIT
The NIH Class Library distribution kit consists of a main
directory and the following subdirectories:
errfac Error Message Facility source files
lib Source files for the basic library
classes
test Test suite for the basic library classes
vector Source files for the Vector classes
vectest Test suite for the Vector classes
ex Example programs for the book
The main directory is refered to as NIHCL in the following
discussion, but may be placed anywhere.
Most subdirectories have files named MAKEFILE and Makefile.
The MAKEFILE is used by the installation procedure, and should
work with both the System V and BSD version of the make
utility. The fancier Makefile is used for development, and
May 25, 1990 Page 1
Installation NIH Class Library Revision 3.0 Installation
may not work under BSD.
SUMMARY OF STEPS IN INSTALLING THE NIH CLASS LIBRARY
1. Update C++ system library and include files
2. Edit NIHCL/Makefile
3. Edit NIHCL/lib/nihclconfig.h
4. Build and install error message facility*
5. Build NIHCL basic classes, Vector classes, and
test suite
6. Test basic classes and Vector classes
7. Build NIHCL basic classes, Vector classes, and
test suite with multiple inheritance support
8. Test basic classes and Vector classes with
multiple inheritance support
9. Install class libraries*
10. Build example programs
11. Test example programs
* root permission may be required
INSTALLING THE NIH CLASS LIBRARY
1. Update C++ system library and include files
No updates to R2.00 of the AT&T C++ Translator are required.
However, if you are using R2.1, be sure to make the changes
documented in the section COMPILING UNDER AT&T C++ TRANSLATOR
RELEASE 2.1 in the NIH Class Library Release Notes.
2. Edit NIHCL/Makefile
Edit NIHCL/Makefile to change make variables as needed for
your environment. Here are the settings shipped with the
distribution kit:
# C++ compiler
CC = CC
# C++ debug switch
CCDEBUG =
#CCDEBUG = -g
# C++ flags
# NOTE: Disable +p option when compiling with AT&T R2.1
#CCFLAGS = +p
#CCFLAGS =
# C++ include files
Page 2 May 25, 1990
Installation NIH Class Library Revision 3.0 Installation
I = /usr/include/CC
# If using BSD
SYS = BSD
# If using System V
#SYS = SYSV
# Compile with nested types
# (works with AT&T R2.1 and GNU C++)
NESTED_TYPES =
#NESTED_TYPES = -DNESTED_TYPES
# Disable AT&T R2.0/R2.1 bug work-around code
BUGDEFS =
#BUGDEFS = -DBUG_bC2728 -DBUG_38 -DBUG_39
-DBUG_OPTYPECONST
# Defining BUG_TOOBIG disables code that
# prevents C compiler "yacc stack overflows" error
#BUGDEFS = -DBUG_bC2728 -DBUG_38 -DBUG_39
-DBUG_OPTYPECONST -DBUG_TOOBIG
# Enable debug code
DEBUGDEFS =
#DEBUGDEFS = -DDEBUG_OBJIO -DDEBUG_PROCESS
# Flags for ln
#LNFLAGS =
LNFLAGS = -s
# If using "patch"
MAIN = _main.c_p
# If using "munch"
#MAIN = _main.c_m
# Target library for installation of Error Facility
LIB_ID = libC
# Target Directories for Installation
# directory for libnihcl.a
NIHCLLIBDIR = /usr/local/lib
# directory for NIHCL include files
NIHCLINCDIR = /usr/include/nihcl
# directory where ${LIB_ID}.a resides
CLIBDIR = /usr/local/lib/C++R2.0
# directory for errgen utility
ERRGENDIR = /usr/local/bin
# directory for errgen table file
ERRTABDIR = /usr/local/lib
# directory for errlib.h and errors.h
May 25, 1990 Page 3
Installation NIH Class Library Revision 3.0 Installation
ERRINCDIR = $I
3. Edit NIHCL/lib files
3.1 Edit nihclconfig.h
The NIH Class Library source is configured for your system by
setting flags in NIHCL/lib/nihclconfig.h which specify the
machine model and operating system (UNIX variant).
To configure the NIH Class Library for one of the not yet
implemented options, at least all of the parameters appearing
in nihclconfig.h will have to be defined for that option.
The NIH Class Library should configure itself automatically
for the following machines:
sun/mc68000
sun/sparc
Classes Process, HeapProc, StackProc, Scheduler, Semaphore,
and SharedQueue have some machine-specific dependencies and
will not work unless the SETJMP()/LONGJMP() functions are
properly defined. See the NIH Class Library Release Notes for
directions on porting the Process classes.
3.2 Edit Object.h
The file Object.h defines three versions of a preprocessor
macro named STRINGIZE, which forms some symbol names by
concatenating the class name argument with other strings. Each
version does this a different way. The version for use with
ANSI C preprocessors, conditionalized on the symbol __STDC__,
uses ## for concatenation. If you are not using an ANSI C
preprocessor, defining the symbol BS_NL in Object.h selects
the version that uses the sequence \<newline> as the
concatenation separator, which seems to work with most System
V UNIX systems. I