Files
cdesktop/cde/admin/man/man1/master_build.1

413 lines
8.7 KiB
Groff

.\" $XConsortium: master_build.1 /main/3 1995/10/30 14:06:53 rswiston $
.TH master_build 1 "" "" HP-UX
.ds )H Hewlett-Packard Company OSSD-CV
.ds ]W June 1993
.SH NAME
master_build \- OSSD-CV master build and source synchronization script.
.SH SYNOPSIS
.B master_build
.RI [ \|options\| ]
.SH DESCRIPTION
.I master_build
is a ksh script that controls building of build trees from a central
location. It can also be used for source synchronization.
If the
.I -clone
option is used, the
.I -src
option
determines the source directory for source code synchronization. If the
.I -build
option is used, it is synchronized with the source directory associated
with
.IR -src .
If the
.I -c
option is used,
.I -build
is used to determine the build directory. The
.I -n
option restricts the scope of any builds to just
.IR make .
The
.I -noIgnore
option will cause
.I make
to exit upon encountering an error. The default is to just stop
building the current target upon error but continue building
all of the rest of the targets (
.I make
.I -k
).
The
.I -l
option causes a
.I make
of lint libraries.
The
.I -w
option removes all targets before building.
There are certain tools that are run inside
.I master_build
which are located in a standard location. The
.I -t
option allows a user to specify an alternate location.
The
.I -m
option allows certain summary mail information to be sent to interested
parties.
.P
Remote building via remsh can be triggered by the
.I remote_build
script.
See
.IR remote_build(1) .
.P
The
.I cron_example
file gives example cron entries for build administration.
.SH LOGGING INFORMATION
If the
.I -build
option is present, log files generated by
.I master_build
are placed in the /x/logs/build/mmdd/buildtree directory.
If only the
.I -src
option was specified, log files are placed
in the /x/logs/build/mmdd/sourcetree directory.
If the
.I -l
option is specified it replaces the /x/logs/build portion of the
above path. The following files may be present in a log directory:
.TP 18
.I allmake.HHMMSS
This file contains output from make Makefile, make Makefiles, make
clean, make includes and make depend.
.TP
.I make.HHMMSS
This file contains output from make only.
.TP
.I lint.HHMMSS
This file contains output from the
.I -l
option.
.TP
.I cloneerr.HHMMSS
This file contains error messages generated by the
.I -clone
option.
.TP
.I cloneerr.HHMMSS
This file contains a listing of the files that have been
resynchronized by the
.I -clone
option.
.TP
.I cleanlinks.HHMMSS
This file contains information on symbolic links to nowhere removed
by the
.I -cl
option.
.TP
.I summary.HHMMSS
This file contains output generated by the
.I -m
option.
.P
Log directories are trimmed to a certain number based on age by the
.I cleanLogs
script.
See
.IR cleanLog(1) .
.SS Options
.I master_build
recognizes the following options:
.RS
.TP 15
.I -src <source>
The
.I source
directory is the directory that is used as the source for any
cloning operations with the
.I -clone
option listed below.
.TP
.I -build <build>
The
.I build
directory is the build tree that will either be built with either the
.I -c
or
.I -l
option and/or cloned.
The
.I build
directory is only necessary if you are either doing
builds or cloning a source tree into a build tree.
The
.I -clone
option will use
.I source
as the source directory and
.I build
as the destination directory for
.IR fnrclone .
.TP
.I -clone <n|s|c|sync>
The
.I -clone
option will use
.I source
as the source directory and
.I build
as the destination directory for
.IR fnrclone .
If the
.I -build
option is missing,
.I source
will be both the source and destination directory for
.IR fnrclone .
The
.I n
parameter causes real files to be checked out into the destination
directory with symbolically linked RCS directories. This is the same
behavior as
.I fnrclone
.IR -n .
The
.I s
parameter symbolically links files from the source to the destination
and creates symbolically linked RCS directories. However, it will not
check out new revisions of any source files from RCS but will merely
synchronize source and destination. This is the same as the default
behavior for
.I fnrclone
and this is the recommended option for use when cloning build trees
from a source tree in the
.I master_build
script.
The
.I c
and
.I sync
parameters behave like the
.I s
parameter but will check new files out of RCS. This is generally only
done when cloning a source tree to itself (no
.I -build
option) and is meaningless when the RCS vaults are not visible as in the
CDE source exchange. This is the same behavior as
.I fnrclone
.I -c
and is the recommended operation to use when syncing a source tree to
itself.
See
.I fnrclone(1)
for more information.
The
.I -sync
option is being obsoleted and may be removed in the future.
Moving or removing files in
.I -src
can result in symbolic links to nowhere after cloning in
.IR -build .
The
.I cleanLinks
script can be run to remove these links. See the
.I -cl
option below and
.IR cleanLinks(1) .
.TP
.I -cl
Clean symbolic links to nowhere in either
.I -src
or
.IR -build .
As above with the
.I -clone
option, if no
.I -build
option is given,
.I -src
is used as the tree to be cleaned.
Symbolic links to nowhere will occur in build trees when files are moved
or removed from
.I -src
and
.I -build
is cloned from
.IR -src .
The
.I cleanLinks
script will remove all symbolic links to nowhere whose
path does not end in RCS. See
.IR cleanLinks(1) .
.TP
.I -c
Do a complete build of the
.I build
directory.
This option triggers
.I make
.I -k
Makefile,
.I make
.I -k
Makefiles,
.I make
.I -k
includes,
.I make
.I -k
depend,
and
.I make
.IR -k .
if the
.I -noIgnore
option is set, the
.I -k
option to
.I make
is ignored.
.TP
.I -n
When used in conjunction with the
.I -c
option, only do a
.IR make .
Do not do
.I make
Makefile,
.I make
Makefiles,
.I make
includes, etc.
.TP
.I -w
When used in conjunction with the
.I -c
option
do a
.I make
clean. That is remove any clean targets such as .o's, .a's, executables,
etc.
.TP
.I -l
Do a
.I make
.I [-k]
.IR lintlibs .
This option creates lint libraries. The log file
generated by this option is lint.HHMMSS.
.TP
.I -noIgnore
This option removes the default
.I -k
option from all makes. This causes each particular make(
.I make
.IR Makefile ,
.I make
.IR Makefiles ,
etc.)
to stop on encountering the first error.
.TP
.I -log <logdir>
Normally log files are placed in either the
.I /x/logs/build/mmdd/source
directory or the
.I /x/logs/build/mmdd/build
directory(see logging information above). This option allows you to
to replace the
.I /x/logs/build
directory as the logging destination with
.IR logdir .
.TP
.I -ba <path>
Run
.I make binstall
and create an automatic install path. This path is of the form
.I path/mm_dd
where
.I path
is the supplied path and
.I mm_dd
is the date the build started (month_day).
When using this option, you must also use the
.I -build
option and specify a build tree to run
.I make binstall
upon.
The
.I -cb
option below allows you to specify how many
.I mm_dd
directories you want to maintain in
.IR path.
.TP
.I -cb <number of directories>
This option trims the number of binstall directories created by the
.IR -ba
option. It leaves the number of directories specified. It must be used
with the
.IR -ba
option. It only trims directories of the type mm_dd(e.g 02_05).
.TP
.I -t <tooldir>
Certain operations such as cloning, assume that tools such as fnrclone
are located in the /x/cdesrc/admin/BuildTools directory.
This option allows you to specify an alternate location for tools that
.I master_build
needs. Currently
.I master_build
accesses the following tools:
.IR fnrclone ,
and
.IR sys_calls .
.I fnrclone
also currently has internal dependencies to /usr/local/bin.
.I sys_calls
gets correct versions of the
.I date
command for each architecture.
.TP
.I -m <mail_list>
Sends information concerning bad options to
.IR master_build ,
and the start and stop time of builds to
.IR mail_list .
.TP
.I -ld <ldoptions>
This option passes
.I ldoptions
to the
.I LDOPTS
environment variable before
.I make
is started. This option is little used and may be obsolete.
.TP
.I -model <model> (Apollo only)
This option passes apollo machine types to
.IR master_build .
It is generally not used.
.TP
.I -be <chrootdir> (HP only)
This option is used for HP chroot build environment builds. It will not
work for any other architecture.
.SH SEE ALSO
remote_build(1),
cleanLinks(1),
cleanLogs(1),
ListTheTree(1),
fnrclone(1),
buildAdmin(5).
.SH AUTHOR
.I master_build
was originally developed by Nathan Meyers, OSSD-CV, Hewlett-Packard.
It was greatly expanded, modified,
and renamed twice by Marc Ayotte, OSSD-CV, Hewlett-Packard.
Other key modifiers have been Jim Andreas, Ron Voll, and Fred Handloser
of OSSD-CV, Hewlett-Packard.