.\" $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 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 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 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 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 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 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 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 Sends information concerning bad options to .IR master_build , and the start and stop time of builds to .IR mail_list . .TP .I -ld 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 (Apollo only) This option passes apollo machine types to .IR master_build . It is generally not used. .TP .I -be (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.