
4.1.3 build
===========

Builds are done for all architectures (currently sun4, 4m and 4c)
on different build machines of each architecture. Most of the following
steps are done in parallel on all the build machines. Only the media
generation steps at the end are done on a single, central machine.
At the end is a guide for setting up the build machines. Most build
commands are placed in background and the output saved to a file.

Pre-Flight:
-----------
update  /usr/src/sys/RELEASE

Prepare /usr/src:
-----------------
<as root>
# umount /usr/src
# newfs /usr/src
# mount /usr/src
# chgrp staff /usr/src
# chmod g+w /usr/src
# mkdir /usr/src/SCCS_DIRECTORIES
# mount  /usr/src/SCCS_DIRECTORIES

<as user>
% cd /usr/src
% ln -s SCCS_DIRECTORIES/SCCS

Prepare SIDlist: (done only on the first build. Thereafter, the SID list
		  is updated manually for the files that change)
----------------
% sccs get /usr/src/SCCS_DIRECTORIES/sys/conf.common/RELEASE
% snapshot -v							58 minutes

Populate /usr/src:
------------------
<as user; put these in your .cshrc>
% umask 2
% limit stacksize 32M


% cd /usr/src
% sccs get /usr/src/SCCS_DIRECTORIES/sys/conf.common/RELEASE
% make POPULATED			(Sun4c - 90 minutes)
					(Sun4  - 120 minutes)

Environment:
------------
<as user; put these in your .cshrc>
% set OPENWINHOME=/usr/openwin
% setenv OPENWINHOME /usr/openwin 

% set XGLHOME=/xgl_file/`arch`
% setenv XGLHOME /xgl_file/`arch` 

Build /usr/src:
---------------
% su -c "make makeinstall"		(2 minutes)

% make					(Sun4c - 15.5 hours)
<builds bwos>				(Sun4  - 21.0 hours)

Install build into prototyping area:
------------------------------------
<as root>
# make proto				(Sun4c - 120 minutes)

Note: The following ">>" items are now done automatically by
the above "make proto". They are left as a note here
for historical reasons

>> # make international

>> # install -d /proto/UNDISTRIBUTED/patches
>> # cd /UNDISTRIBUTED
>> # find . -print | cpio -pdlm /proto/UNDISTRIBUTED/patches
>> # du -s /UNDISTRIBUTED/*
>> # du -s /proto/UNDISTRIBUTED/patches/*
 
>> # cd /usr/src/sundist
>> # make
>> # make cdrom
 
>> # make sunupgrade_target
 
# exportfs /proto
# exportfs /usr/src


{this following stuff is only run from the "central"
 build machine, currently the sun4c machine.}

# save_cd_depends <options>     (30 minutes)

# rm -rf /cdrom_tarfiles_gen/tar-files
# cp /usr/src/sys/conf.common/RELEASE RELEASE
# make -f cdimage.mk (machine names in script... check)		(20 minutes)
# make exabyte -f cdimage.mk (machine names in script... check) (30 minutes)

CDimage on a disk: (cdimage on a disk. Allows debugging the image
		    without having to burn a CDROM master)
------------------
# make disk -f cdimage.mk (prompts for disk)


==========================================================================
==========================================================================

Appendix: setting up the release/build machines

There will exist one build machine for every architecture to
be built. They will all share a common SCCS source base, exported
from a a fourth machine, referred to as the "disk farm". This
disk farm will also contain various files for building the Open Window
tarfiles, the XGL tarfiles, the upgrade files, and the patch files
for the patch area of the CDROM. Release dependent machine names
are located in the files release/save_cd_depends and sundist/cdimage.mk.
---------------------------------------------------------------------------

Here is the structure of the central build machine:

Filesystem            kbytes    used   avail capacity  Mounted on
/dev/sd0a              14983    4692    8793    35%    /
/dev/sd0g             138608  104315   20433    84%    /usr
swap                   57276     420   56856     1%    /tmp 

	A large swap area using tmpfs makes the build go faster.
---------------------------------------------------------------------------

/dev/sd0d             889470  308410  492113    39%    /usr/src
 
        All the source is built in this area. Set up as a large partition
	because the cdimage will be stored here under sundist/cdimage
	(on the central machine only).

---------------------------------------------------------------------------
eichler:/usr/src.412/SCCS_DIRECTORIES
                      471631  272354  152113    64%    /usr/src/SCCS_DIRECTORIES

        The SCCS sources themselves (the real McCoy).

---------------------------------------------------------------------------
/dev/sd0e             229808  135579   71249    66%    /proto
 
        The built source is installed here in a root/usr filesystem 
        image prior to being turned into tarfiles. 
 
---------------------------------------------------------------------------
/dev/sd0d               3823    3155     668    83%    /miniroot
 
        The bootable images of the MUNIX & Miniroot filesystems 
        are built here. 
 
---------------------------------------------------------------------------
/dev/sd1g             229808  133506   73322    65%    /tarfiles 
 
        The tarfiles are built and stored here until they are moved 
        to the disk farm in preparation for the CDROM creation. 
 
---------------------------------------------------------------------------
/dev/sd0h             146313      26  131656     0%    /sunupgrade_tmp

	Used for creating the upgrade file for the release

---------------------------------------------------------------------------
/dev/sd2h             613252  518449   94803    85%    /usr/cdrom_4.1.3
 
        Holding area for the various tarfiles, sundist images, etc.

---------------------------------------------------------------------------
/dev/sd2h             613252  191305  360622    35%    /cdrom_tarfiles_gen

	Here is where an intermediate image of the tarfiles is stored
	prior to being incorporated into the CD image itself.

---------------------------------------------------------------------------
eichler:/ow_xgl_undistrib_412/xgl_file
                      208477  139305   48324    74%    /xgl_file
eichler:/ow_xgl_undistrib_412/openwin_files
                      208477  139305   48324    74%    /openwin_files
eichler:/ow_xgl_undistrib_412/UNDISTRIBUTED
                      208477  139305   48324    74%    /UNDISTRIBUTED

	The OW, XGL, and patch files. OW & XGL go into the /tarfiles
	area along with those from /proto. The patches are put into
	the CDROM at the same time the tarfiles are moved into the
	CD image.

---------------------------------------------------------------------------
eichler:/411_sunupgrade/tarfiles
                      720096  379727  268359    59%    /411_cdrom
eichler:/411_sunupgrade/untarfiles
                      720096  379727  268359    59%    /411_cdrom_untar
eichler:/411_sunupgrade/proto_sunupgrade
                      720096  379727  268359    59%    /proto_sunupgrade

	Files used by sunupgrade to produce the upgrade portion
	of the build.

---------------------------------------------------------------------------
eichler:/OW3_XGL_cd/OpenWindows/sun4
                      205183   78859  105805    43%    /openwin_files-V3

	Some graphics executables use the OW3 libraries.

---------------------------------------------------------------------------
