gno/NOTES/devel/doing.builds

103 lines
3.8 KiB
Plaintext
Raw Normal View History

$Id: doing.builds,v 1.2 1999/01/27 06:27:59 gdr-ftp Exp $
This file describes how to build the GNO base distribution. It is critical
that things be done in the sequence given here, as there are dependencies.
The default target in each Makefile is 'build'; it causes the program or
library to be built in the /obj hierarchy. Each Makefile also has a
'release' target, which caused built or verbatim files to be copied into
the /dist hierarchy.. Both of these must be made before you proceed to the
next step.
All Makefiles also have an 'install' target, but that is only used for
installing into a live system. Caveat Emptor.
- The first thing is to ensure that your system header files match those
in the distribution. This is done by the following commands:
cd /src/gno
dmake headerInstall
- Next, the libraries have to be built in the following sequence. Each
of them should get a 'dmake build' followed by a 'dmake release':
/src/lib/orcalibs/Source/ORCALib
/src/lib/orcalibs/Source/SysFloat
/src/lib/orcalibs/Source/SysFPEFloat
/src/gno/lib/lsaneglue
/src/gno/lib/libc (build top level last, or there won't be rez fork)
/src/gno/lib/libcontrib
/src/gno/lib/libcrypt
/src/gno/lib/libcurses
/src/gno/lib/libedit (not yet building)
/src/gno/lib/libsim (not yet building)
/src/gno/lib/libtermcap
/src/gno/lib/libutil
/src/gno/lib/liby
/src/gno/lib/netdb
- Now you want to build each of the (finished) programs in the following
directory hierarchies. The sequence doesn't really matter. You need
to do both 'dmake build' and 'dmake release'.
/src/gno/bin
/src/gno/usr.bin
/src/gno/usr.orca.bin
/src/gno/usr.sbin
/src/gno/sbin
Note that not all checked in programs are necessarily finished, and
therefore suitable for the 'build' and 'release' targets. When in doubt,
check the file /src/gno/NOTES/status.bin.
(need to add text about the sys and kern directories)
- when the builds are closer to a sane state the /dist hierarchy
will be used to directly make a distribution. However for now,
we make use of another hierarchy, /gno into which we copy the
/dist hierarchy. The /gno hierarchy is then topped up with files
from a v2.0.4 distribution.
- so, once the 'release' target has been made in all the relevent source
directories, the following must occur:
- start with all of the following volumes empty. They may either be
physical volumes, or empty directories specified via the namespace
facility:
/gno
/gno-hfs (MUST be an HFS volume)
/gno.boot
Both /gno-hfs and /gno.boot may be no larger than 800k (ie: the
results will fit onto an 800k floppy)
- make sure the three volumes above are online. Since I use a
floppy for /gno-hfs, I keep forgetting that ...
- copy the entire contents of /dist to /gno
- run the /src/gno/build.tools/fudgeinstall script
- run the /src/gno/build.tools/mkboot script
- run the /src/gno/build.tools/mkdisk1 script
- go to the /gno directory. Using gshk, archive all the
directories you find there (such as gno.01, gno.02, etc).
You should create the files gno.01.shk, gno.02.shk, and so
forth.
*** Don't include the upper directory name in the archive. ***
When creating gno.16.shk, leave out the /install directory.
- go to the /gno-hfs partition. Archive up all contents of that
partition to create the gnohfs.shk archive. The gnohfs.shk
file should be placed with the gno.??.shk files from the
previous step.
*** Don't include the upper directory name in the archive. ***
- go to the /gno.boot partition and use gshk to archive all
all the files in that partition. Name the resulting archive
file gnoboot.shk, and place it with the other archive files.
*** Don't include the upper directory name in the archive. ***
- run the /src/gno/build.tools/mkdisk2 script