The good news is that bmake, SSLeay, SSLr* and stelnet all work fine.
# cp bmake/mk/[d-s]*.mk /usr/share/mkNote that as of bmake-3, the macros are in a separate tar file. But we assume that you unpacked mk.tar.gz in bmake's src directory.
Note that FreeBSD's bsd.man.mk adds an extra /man to MANDIR, which is incompatible with our man.mk and most other uses of MANDIR.
$ $srcdir/configure --prefix=/usr/local $ make -f makefile.boot bootstrap # ./bmake -f Makefile installWhere srcdir is the path to where configure is, or '.'.
bmake -m ${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.local.inc
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 $ (cd conf && bmake) $ bmake depend $ bmake # bmake install
WARNING: If you skip the bmake obj step, don't be surprised when the build fails in subtle ways.
The easiest way to use object directories - especially if sharing via read-only NFS mount, is:
$ export MAKEOBJDIRPREFIX=/var/obj $ bmake objbmake will create object directories named $MAKEOBJDIRPREFIX`pwd`, ugly but trivial to setup. Note that MAKEOBJDIRPREFIX must be set in the environment since it is actioned before any Makefiles are read. More on MAKEOBJDIRPREFIX below.
If you want ./obj dirs that are symlinks to a location (per architecture) on the NFS server, the following works:
/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.
$ export MAKEOBJDIRPREFIX=/var/obj/sjg $ bmake obj $ bmakeThe above creates a parallel directory tree under $MAKEOBJDIRPREFIX allowing the src tree to be truely read-only. You must be using bmake version 3 or later, to have everything work correctly. A -current NetBSD make will also work.
$ export MAKEOBJDIR="\${.CURDIR:S,$SRCTOP,$OBJTOP,}"Where $SRCTOP identifies the top level src directory, and $OBJTOP is the top of the corresponding object tree. With that in the environment, the object directory for $SRCTOP/bin/bmake would be $OBJTOP/bin/bmake which is much neater than say $MAKEOBJDIRPREFIX$SRCTOP/bin/bmake. You can get even fancier, but that's the basic idea.
For other systems lib.mk will use the GNU libtool if you set USE_LIBTOOL=yes though this is a bit more limited.
If you do not want shared libraries built, either set NOPIC in Makefile.local.inc 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 on non-development systems.
# ln -s /usr/local/lib/libsslfd.so.0.3 /usr/lib/libsslfd.so.0Before the libraries are really usable. ELF systems do not really handle shared lib versioning the way that BSD and SunOS used to do, so we give it just the major version number to look for. Also, in order to link against a shared lib on an ELF 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 - .. ..Note that I usually export the src tree read-only so on the build system with /usr/local/src NFS mounted read-only:
$ mkdir /tmp/bmake $ cd /tmp/bmake $ /usr/local/src/sjg/bmake/configure --prefix=/usr/local $ make -f makefile.boot bootstrap # ./bmake -f Makefile -m /usr/local/src/sjg/bmake/mk installNow you can return to the main game.
With a clean tree you can just:
$ export MAKEOBJDIRPREFIX=/var/obj $ cd /usr/local/src/sjg $ bmake obj $ bmakeActually, 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.
# bmake install
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 $ ... $ ...