README: Installation instruction for bsplit-2.02

Last update: Wed Jul 29 08:28:27 1998

Table of contents

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.00
-rwxrwxr-x   2 beebe    staff       5050 Jul 16 19:39 /usr/local/man/man1/bsplit-2.00.1
-rwxrwxr-x   2 beebe    staff       5050 Jul 16 19:39 /usr/local/man/man1/bsplit.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.                                       ==
========================================================================
========================================================================