To install this software you can use the 'install' target of the 'Makefile'.
By default, it will install the executables and scripts in /usr/bin, and the
manual pages in /usr/man/man1.  You can use DESTDIR, MANDIR, and BINDIR to
alter this if you wish (see the make files Makefile.tcc, Makefile.gcc, and
makefile.clang).  In these examples, PS1 is dollar for a user shell, and # for
a root shell.  In either case, PS2 is a greater than symbol.

For example, a simple, standard install into the default locations using
gcc is just:

     $make -fMakefile.gcc PIE=0 LTO=0
     $su root
     #make install
     $exit

The PIE=0 means to create a normal, traditional executable.  If you want a
position-independent executable, use PIE=1 instead.  The LTO=0 means do not
do link-time optimization.  If you do want link-time optimization, you can
specify LTO=1 instead.  

To use /usr/local/bin and /usr/local/share/man1 with tcc, you could do this
instead:

     $make -fMakefile.tcc
     $su root
     #make install \
     > DESTDIR=/usr/local \
     > BINDIR=/usr/local/bin \
     > MANDIR=/usr/local/share/man1
     $exit

The tcc compiler doesn't support PIE or LTO, so you don't need to specify those
parameters for a tcc compile.

You can even do a 'dry run', this time using clang, to see where the files will
go by using the -n parameter to make like this:

     $make -fMakefile.clang PIE=0 LTO=0
     $su root
     #make -n install [overrides]
     $exit

where '[overrides]' is a set of environment variable assignments for DESTDIR,
BINDIR, and MANDIR.

None of the scripts or executables need root power, but root power is needed
to install them to a system-wide location.  You can instead install locally
with something like this:

     $make -fMakefile.gcc PIE=0 LTO=0
     $mkdir ${HOME}/mybins
     $mkdir -p ${HOME}/mymans/man1
     $make install \
     > BINDIR=${HOME}/mybins \
     > MANDIR=/home/usrname/mymans/man1

Then put ${HOME}/mybins on your PATH in your .profile, .bash_profile, or
whatever your login shell requires.  For Bourne-style shells like bash and ksh,
you can set it like this:

export PATH="${PATH}:${HOME}/mybins"
if [ -n "${MANPATH:-}" ]
then
  export MANPATH="${MANPATH}:${HOME}/mymans"
else
  export MANPATH="${HOME}/mymans"
fi

If you want to support something besides 72 column lines, you can recompile
the ecma55 compiler specifying the desired width.  For instance, to support
a maximum of 132 column input instead of the default 72 columns of input,
enabling link-time optimization and generating a position-independent
executable, try this:

make -fMakefile.gcc ecma55 LTO=1 PIE=1 CPPFLAGS=-DINPUT_WIDTH=132

Note that NBS tests 202 & 203 would fail in this case, but the
Makefile.runtests knows this and skips them with appropriate diagnostic
SKIP messages.  To run the NBS tests with 132 columns input and 132 columns
output, with 64bit floating point and extensions on, you could do this:

make -fMakefile.runtests all DIRNO=1 INWIDE=1 ECMA55FLAGS='-w -4 -X'

Since this is a very custom build, the normal canrelease target of the
tcc, gcc, and clang make files won't work correctly and should not be used.
One could edit them to work, but it would break normal executables.  If you
want something custom like this, you'll need to make those changes locally
yourself.  Not all combinations of ECMA55FLAGS have testing support in
this case, but '-w', '-w -X', and '-w -4 -X' are supported. I believe people
wanting full 132 column support will generally want 64bit floating point
accuracy.
