# BRL-CAD for 1990s Unix

Source trees exported straight from BRL-CAD's original CVS repository
(`github.com/BRL-CAD/vcs-history`, `brlcad_cvs/`) at their **release tags**.

Use these rather than the git repo: `github.com/BRL-CAD/brlcad` lost most of
the pre-7.0 tags in conversion (`rel-1-20`, `rel-1-24`, `rel-2-3`, `rel-3-0`,
`rel-3-5`, `rel-4-0`, `rel-4-4`, `rel-4-5`, `rel-5-4`, `rel-6-0-2` are all in
CVS but not in git). Reconstructing 4.4 by commit date instead of by tag gets
31 of 1593 files wrong, `Cakefile.defs` and `doc/install.doc` among them.

Everything here predates the 2004 autoconf rewrite (7.0), which dropped HP-UX
entirely. These use Muuss' `cake` build system, included in `cake/`.

## Which one

| Tarball | Tag | Platforms in `Cakefile.defs` |
|---|---|---|
| `brlcad-3.5.tar.lz` | `rel-3-5`, 1989 | VAX BSD, Sun-3, SGI 3030/4D, Gould, Alliant, Cray |
| `brlcad-4.0.tar.lz` | `rel-4-0`, Oct 1991 | + IRIX 4.0, Sun-4, RS/6000 AIX, A/UX, iPSC/860 |
| `brlcad-4.4.tar.lz` | `rel-4-4`, Jan 1995 | **+ HP-UX 9.0 (HPPA), SunOS 4.1.x, Solaris 5.3/5.4, IRIX 5.2, IRIX 6**, Alpha OSF/1, Convex, UNICOS, Linux, BSDI, NetBSD |
| `brlcad-4.5.tar.lz` | `rel-4-5`, 1997 | same, + Tcl/Tk MGED (`libdm`, `libtclcad`, `tclscripts`) |
| `brlcad-5.4.tar.lz` | `rel-5-4`, 2001 | same, + IRIX64 6.2/6.4/6.5 |
| `brlcad-6.0.2.tar.lz` | `rel-6-0-2`, 2002 | last `cake` release; bundles Tcl/Tk 8.3, libpng, zlib |

**Start with 4.4 for HP-UX 9.x, SunOS 4, and IRIX 5** — newest release whose
platform table names those exact OS versions, and small enough to be sane on
period hardware. 4.5 is the same platform set with the Tcl/Tk MGED added.

Plain `ustar`, uid/gid 0, longest path 79 chars — any v7-era `tar` reads them.
`.lz` is `lzip`, which period hosts lack — decompress on a modern host first.

## Build

    lzip -d brlcad-4.4.tar.lz       # on a modern host, then copy the .tar over
    mkdir /usr/brlcad
    tar xof brlcad-4.4.tar
    cd brlcad-4.4
    cp sh/*.sh .                    # required, see below
    sh newbindir.sh /usr/brlcad     # only if installing somewhere else
    PATH=/usr/brlcad/bin:$PATH; export PATH
    sh machinetype.sh -v            # must print your platform, not an error
    sh setup.sh                     # builds and installs cake first
    sh gen.sh all
    sh gen.sh install

`cp sh/*.sh .` is required because the release tapes carried those scripts at
the top level (see `TOP_FILES` in `gen.sh`) while CVS keeps them in `sh/`.
Both `setup.sh` and `gen.sh` abort without them.

`/usr/brlcad/bin` must be in `PATH` before `setup.sh` runs — both scripts
refuse to continue otherwise.

If `machinetype.sh` misidentifies the host, edit its `case` block *and* the
matching `#if defined(...)` in `Cakefile.defs` — the two must agree or
`setup.sh` aborts. HP-UX keys on `hppa`, Solaris on `sparc` + `uname -r`,
IRIX 5 on `__CAKE__irix5` (MTYPE `6d`).

RCS keywords are expanded, as on the original tapes, so `$Header:` lines carry
the path of the CVS checkout used to export them. Cosmetic; comments only.

## Binaries

`brlcad-4.4-solaris-sparc.pkg.lz` — genuine ARL binary distribution. SVR4
package datastream, `ARCH=sun4`, `VERSION=4.4,REV=2000.03.17`, built on
blaze.arl.mil. 309 SPARC ELF binaries (mged, rt, remrt, nirt, pix/fb tools),
installs to `/usr/brlcad`. Solaris 2.x / SunOS 5 only.

    lzip -d brlcad-4.4-solaris-sparc.pkg.lz   # on a modern host
    pkgadd -d ./brlcad-4.4-solaris-sparc.pkg

This is the only ARL binary distribution left unencrypted; the rest are
decrypted in `../bin/`.
