# cp bmake/mk/[d-s]*.mk /usr/share/mkI've not yet worked out why, but FreeBSD installs man pages into /usr/share/man/man/man*. Look in sys.mk for conflicts with man.mk
The easy solution is to simply install bmake.
$ BASE=`pwd` $ mkdir /tmp/bmake $ cd /tmp/bmake $ $BASE/bmake/configure $ gmake -f makefile.boot # gmake -f makefile.boot installIf you really want to, you can use the bmake thus produced to re-build bmake, though I never bother.
$ cd $BASE/bmake $ bmake obj $ bmake # bmake install
These Makefiles use my own macro files which are derrived from the bsd.*.mk macros, if you are not allowed to install bmake/mk/*.mk in /usr/share/mk or /usr/local/share/mk you can use:
bmake -I ${BASE}/bmake/mkFinally, if you do not have the BSD mandoc macros for [nt]roff, or you do not want the man pages formatted, set NOMAN=no in your environment or in Makefile.base
symlink
s named
src pointing off to no where. These should point to the
directories holding the appropriate distribution. For instance:
$ ls -l ssl/bin/rdist/src lrwxrwxr-x 1 sjg wheel 17 Jun 20 1996 ssl/bin/rdist/src@ -> ../../../../rdist-6.1.3 $Obviously you will need these links correct before you can expect to build things like SSLrdist. See other distributions for details on where to get the other distrbutions you might need.
Now just:
$ cd $BASE $ bmake obj $ bmake depend $ bmake # bmake install
I have an arrangement like:
/usr/local/obj -> src/obj.${MACHINE}and then I set
BSDSRCDIR=`cd /usr/local/src; /bin/pwd` BSDOBJDIR=/usr/local/objYou must set BSDSRCDIR with the same value that /bin/pwd produces as otherwise obj.mk will do the wrong thing.
If you do not want shared libraries built, either set NOPIC in Makefile.base or on the command line, or create .nopic in the src or obj directories concerned.
Alternatively if NOARCHIVE is set you can skip building the archive libraries and use just the shared libs. This can save considerable time.
# ln -s /usr/local/lib/libsslfd.so.0.3 /usr/lib/libsslfd.so.0Before the libraries are really usable. Solaris does not really handle shared lib versioning the way that BSD and SunOS do, so we give it just the major version number to look for. Also, in order to link against a shared lib on Solaris you need to create a link like:
# ln -s libsslfd.so.0.3 libsslfd.soOn HP-UX you need to ensure that shared libs are executable!
First unpack all the Quick.com.au packages in a single tree such as /usr/local/src/sjg.
$ mkdir -p /usr/local/src/sjg $ cd /usr/local/src/sjg $ gzcat /tmp/bmake.tar.gz | tar xvf - $ gzcat /tmp/SSLrsh.tar.gz | tar xvf - .. ..Now, if you are only building for a single architecture you can:
$ cd bmake $ ./configure $ make -f makefile.boot # make -f makefile.boot installOtherwise if you are shareing the src via NFS on different machines, you can:
$ mkdir /tmp/bmake $ cd /tmp/bmake $ /usr/local/src/sjg/bmake/configure # or whereever the src is $ gmake -f makefile.boot # gmake -f makefile.boot installThe above relies on a make that handles VPATH correctly. I use this method btw.
Unless you are on a BSD system you may have to create a /usr/share/mk/sys.mk (or /usr/local/share/mk if you prefer). bmake/mk/*.sys.mk are examples that I have used, pick one and copy it to sys.mk. Do NOT replace an existing /usr/share/mk/sys.mk
Anyway, now you can return to the main game.
$ cd /usr/local/src/sjg $ bmake obj $ bmake # bmake installActually, the first time bmake is invoked it will cause Makefile.base to be created and then tell you to restart make. Also, you will need to be root to install anything as the install macros use chown which is usually restricted to root.
In general it is safest to start with a clean tree. If you have unpacked previous versions of SSLrsh.tar you may have Makefiles or headers present that are not in the current release and will cause you problems. If in doubt just:
$ mv /usr/local/src/sjg /usr/local/src/sjg.old $ mkdir /usr/local/src/sjg $ ... $ ...