README: Installation instruction for bsplit-2.02
Last update: Wed Jul 29 08:28:27 1998
Table of contents
* Jump start
* Introduction
* Installation
* UNIX Systems
* IBM PC DOS
* Microsoft Windows
* Test suite
* Sample build output for UNIX
Jump start
As with most GNUware, you can build, test, and install this program on
most UNIX systems by these simple steps
csh et amici:
setenv CC ...your favorite C or C++ compiler...
./configure && make all check install
sh et amici:
CC=...your favorite C or C++ compiler...
export CC
./configure && make all check install
Or in one line, if you have env (most modern UNIX systems do):
env CC=... ./configure && make all check install
If you don't set the CC environment variable, then gcc (or cc, if gcc
is not available) will be assumed.
If you wish to undo a make install, just do make uninstall; this will
remove any files in system directories put there by make install.
See below for further details, and for instructions for non-UNIX
systems.
Introduction
Please report all problems, suggestions, and comments to the author
and maintainer:
Nelson H. F. Beebe
Center for Scientific Computing
University of Utah
Department of Mathematics, 110 LCB
155 S 1400 E RM 233
Salt Lake City, UT 84112-0090
USA
Tel: +1 801 581 5254
FAX: +1 801 581 4148
Email: beebe@math.utah.edu , beebe@acm.org , beebe@computer.org
(Internet)
WWW URL: http://www.math.utah.edu/~beebe/
Installation
bsplit 2.00 has been updated to use the GNU autoconf automatic
configuration system for UNIX installations.
GNU autoconf is run at the maintainer's site to produce the configure
script from configure.in .
The configure script is run at each installer's UNIX site to produce
Makefile from Makefile.in , and config.h from config.hin. The
configure script is a large (2100+ lines) Bourne shell program that
investigates various aspects of the local C implementation, and
records its conclusions in config.h.
For convenience and safety, the distribution includes a subdirectory
named save that contains read-only copies of the files Makefile,
config.h, and configure created by autoconf and make configure. This
will allow recovery from a lost or damaged configure file.
Should you do a make maintainer-clean [ not recommended, except at the
maintainer's site], the configure script will be deleted, and you will
need recent versions of both GNU m4 and autoconf correctly installed
to reconstruct things, which can be done this way:
make -f save/Makefile reconfigure
Suitable hand-crafted config.h files are provided for non-UNIX
systems, and in the unlikely event of a failure of the configure
script on a UNIX system, config.h can be manually produced from a copy
of config.hin with a few seconds of editing work. If you do this,
remember to save a copy of your config.h under a different name,
because running configure will destroy it. If you have GNU autoconf
installed (the installation is very simple and source code is
available from ftp://prep.ai.mit.edu/pub/gnu/autoconf- x.y .tar.gz ),
you might try augmenting configure.in instead, then run autoconf,
autoheader, and configure.
Thus, on UNIX, installation normally consists of just two steps
(assuming a csh -compatible shell):
setenv CC ...your favorite C or C++ compiler...
./configure && make all check install
If you like, add OPT='your favorite optimization flags' to the make
command; by default, no optimization flags are set.
The GNU standard installation directories /usr/local/bin for binaries,
and /usr/local/man/man1 for manual pages are assumed. The prefix
/usr/local can be overridden by providing an alternate definition on
the command line:
make prefix=/some/other/path install
After installation, you can do
make distclean
to restore the directories to their distribution state. You should
also do this between builds for different architectures from the same
source tree; neglecting to do so will almost certainly lead to
failure, because the config.cache file created by configure will lead
to an incorrect config.h for the next build.
UNIX Systems
The code can be compiled with either C (K&R or ISO/ANSI Standard C) or
C++ compilers. With some C++ compilers, it may be necessary to supply
additional switches for force the compiler to stay in C++ mode, rather
than reverting to C mode (e.g., on DEC Alpha OSF/1, you must do setenv
CC "cxx -x cxx" ).
On UNIX systems, the only changes that you are likely to need in the
Makefile are the settings of CC and CFLAGS, and possibly, DEFINES, and
if you wish to do make install, the settings of bindir, MANDIR, and
MANEXT.
If you are installing bsplit on a new system, you should definitely
run make check before installing it on your system. Sample output of
make check from a UNIX system is given below.
This program has been successfully built and tested with C and C++
compilers on these systems for the 2.00 release (117 builds):
Machine and model O/S Compilers
DEC Alpha 2100-5/250 OSF/1 3.2 /bin/c89, /bin/cc, /bin/cxx -x cxx,
/usr/bin/c89, /usr/bin/cc, /usr/ccs/bin/c89, /usr/ccs/bin/cc,
/usr/local/bin/g++, /usr/local/bin/gcc, /usr/local/bin/lcc -A -A,
/usr/ucb/cc
DECstation 5000/200 ULTRIX 4.3 /bin/cc, /usr/bin/cc,
/usr/local/bin/g++, /usr/local/bin/gcc, /usr/local/bin/lcc -A -A
HP 9000/735 HP-UX 10.01 /bin/CC, /bin/c89, /bin/cc, /usr/bin/CC,
/usr/bin/c89, /usr/bin/cc, /usr/ccs/bin/cc, /usr/local/bin/g++,
/usr/local/bin/gcc
IBM PowerPC 43P AIX 4.1 /bin/c89, /bin/cc, /bin/xlC, /usr/bin/c89,
/usr/bin/cc, /usr/local/bin/g++, /usr/local/bin/gcc
IBM PowerPC 43P AIX 4.2 /bin/c89, /bin/cc, /bin/xlC, /usr/bin/c89,
/usr/bin/cc, /usr/local/bin/g++, /usr/local/bin/gcc
IBM RS/6000-370 AIX 3.2.5 /bin/c89, /bin/cc, /usr/bin/c89,
/usr/bin/cc, /usr/local/bin/gcc
Intel Pentium II MMX (300MHz) Linux 2.0.33 /usr/bin/cc, /usr/bin/g++,
/usr/bin/gcc
Intel Pentium MMX (200MHz) Linux 2.0.30 /usr/bin/cc, /usr/bin/g++,
/usr/bin/gcc
NeXT Turbostation Mach 3.3 /bin/cc, /usr/local/bin/g++,
/usr/local/bin/gcc, /usr/local/bin/lcc -A -A
SGI Challenge L IRIX 5.3 /bin/CC, /bin/cc, /usr/bin/CC, /usr/bin/DCC,
/usr/bin/NCC, /usr/bin/cc, /usr/bin/ncc, /usr/local/bin/g++,
/usr/local/bin/gcc, /usr/local/bin/lcc -A -A
SGI O2 R10000-SC IRIX 6.3 /bin/CC, /bin/c89, /bin/cc, /usr/bin/CC,
/usr/bin/DCC, /usr/bin/NCC, /usr/bin/c89, /usr/bin/cc,
/usr/local/bin/g++, /usr/local/bin/gcc, /bin/cc -n32,
/usr/bin/cc -n32, /bin/DCC -32, /bin/NCC -32, /bin/cc -32,
/usr/bin/DCC -32, /usr/bin/NCC -32, /usr/bin/cc -32
SGI Origin/200-4 IRIX 6.4 /bin/CC, /bin/c89, /bin/cc, /usr/bin/CC,
/usr/bin/DCC, /usr/bin/NCC, /usr/bin/c89, /usr/bin/cc,
/usr/local/bin/g++, /usr/local/bin/gcc, /bin/cc -n32,
/usr/bin/cc -n32, /bin/DCC -32, /bin/NCC -32, /bin/cc -32,
/usr/bin/DCC -32, /usr/bin/NCC -32, /usr/bin/cc -32, /bin/cc -64,
/usr/bin/cc -64
Sun SPARC 20/512 Solaris 2.6 /opt/SUNWspro/bin/CC,
/opt/SUNWspro/bin/c89, /opt/SUNWspro/bin/cc, /usr/local/bin/g++,
/usr/local/bin/gcc, /usr/local/bin/lcc -A -A, /usr/ucb/cc
Sun SPARC 4/380 SunOS 4.1.3 /bin/cc, /usr/bin/cc, /usr/lang/CC,
/usr/lang/acc, /usr/local/bin/g++, /usr/local/bin/gcc,
/usr/local/bin/lcc -A -A, /usr/ucb/cc
IBM PC DOS
The ibmpc/dos/README file contains details of the builds and tests of
bsplit under several IBM PC DOS C and C++ compilers, and instructions
for building and testing bsplit with other compilers.
Since bsplit uses no floating-point arithmetic, and PC DOS has no
shared libraries, I expect that the executables will run on any
version of DOS greater than 4.0. They may also run on earlier
versions. At the time of writing, MS-DOS 6.22 is current, and the
bsplit executables work fine on it.
The executable programs for this operating system that are distributed
with the 2.02 release are still version 2.00. There are no code
changes in 2.02 that affect the operation of the program, and the
builds on this system are all done manually, so preparation of a new
release requires more human labor than I'm prepared to expend unless
absolutely necessary.
Microsoft Windows
With minor changes to version 2.00 to make version 2.01, bsplit has
been successfully built on Microsoft Windows 98 under both the AT&T
U/Win (see http://www.gtlinc.com/Products/Uwin/Uwin.html for
information; personal, unsupported, non-commercial, licenses of this
software are free, subject to acceptance of a license agreement) and
Cygnus GNU-Win32 (see http://www.cygnus.com/misc/gnu-win32 ) UNIX-like
environments.
Licensing restrictions in U/Win prevent distribution of the executable
program in the ibmpc subdirectory tree; however, it is trivial to
recreate it on a U/Win system with the usual
./configure && make all check install
provided that a C compiler is available.
Under Cygnus GNU-Win32, where /bin/sh does not exist, the build was
accomplished by
export CONFIG_SHELL=/cygbin/bash.exe
bash < configure && make all check install SHELL=$CONFIG_SHELL
The install step failed because the expanded command
cp bsplit /usr/local/bin
did not copy bsplit.exe like it does under U/Win.
These blemishes will no doubt get repaired in newer releases of
GNU-Win32.
Test suite
The bsplit distribution includes a simple validation test. It is run
by
make check
There should be no output from that test, other than a banner line
announcing that expectation.
Please do run the validation suite at your site before installing the
program. Compilers are complex software systems that also have bugs,
so the fact that the program runs correctly somewhere else does not
mean that it will do so on a different system.
Sample build output for UNIX
Here is a log of a successful build on Sun Solaris 2.6 using the
native C++ compiler, CC:
env CC=CC ./configure && make all check install
creating cache ./config.cache
checking whether make sets ${MAKE}... yes
checking for gcc... CC
checking whether the C compiler (CC ) works... yes
checking whether the C compiler (CC ) is a cross-compiler... no
checking whether we are using GNU C... no
checking for working const... no
checking for col... col -x -b
checking for rcp... rcp -p
checking for cp... (cached) rcp -p
checking for cat... cat
checking for chmod... chmod
checking for cmp... cmp
checking for deroff... deroff
checking for distill... distill
checking for dw... dw
checking for geqn... geqn
checking for gzip... gzip
checking for ispell... ispell
checking for ln... ln
checking for ls... ls
checking for man2html... man2html
checking for mkdir... mkdir
checking for mv... mv
checking for groff... groff
checking for rm... rm
checking for sed... sed
checking for sort... sort
checking for spell... spell
checking for gnutar... no
checking for gtar... no
checking for tar... tar
checking for gtbl... gtbl
checking for touch... touch
checking for true... true
checking for unzip... unzip
checking for zip... zip
checking for zoo... zoo
checking for Standard C/C++ function declarations... yes
checking how to run the C preprocessor... CC -E
checking for ctype.h... yes
checking for stdio.h... yes
checking for string.h... yes
checking for stdlib.h... yes
updating cache ./config.cache
creating ./config.status
creating Makefile
creating config.h
CC -O -c bsplit.c -o bsplit.o
CC bsplit.o -o bsplit
There should be no output from this validation test:
Validation test completed
rm -f /usr/local/bin/bsplit
rm -f /usr/local/bin/bsplit-2.00
rcp -p bsplit /usr/local/bin/bsplit
ln /usr/local/bin/bsplit /usr/local/bin/bsplit-2.00
chmod 775 /usr/local/bin/bsplit /usr/local/bin/bsplit-2.00
rm -f /usr/local/man/man1/bsplit.1 /usr/local/man/man1/bsplit-2.00.1
rm -f /usr/local/man/cat1/bsplit.1 /usr/local/man/cat1/bsplit-2.00.1
rcp -p bsplit.man /usr/local/man/man1/bsplit.1
chmod 775 /usr/local/man/man1/bsplit.1
ln /usr/local/man/man1/bsplit.1 /usr/local/man/man1/bsplit-2.00.1
Installed files...
-rwxrwxr-x 2 beebe staff 10860 Jul 17 06:19 /usr/local/bin/bsplit
-rwxrwxr-x 2 beebe staff 10860 Jul 17 06:19 /usr/local/bin/bsplit-2.0
0
-rwxrwxr-x 2 beebe staff 5050 Jul 16 19:39 /usr/local/man/man1/bspli
t-2.00.1
-rwxrwxr-x 2 beebe staff 5050 Jul 16 19:39 /usr/local/man/man1/bspli
t.1
========================================================================
========================================================================
== Finally, you may wish to install the HTML form of the bsplit ==
== documentation. Try "make -n install-html" to see if that is ==
== appropriate for your system. ==
========================================================================
========================================================================