master_build.1 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  1. .\" $XConsortium: master_build.1 /main/3 1995/10/30 14:06:53 rswiston $
  2. .TH master_build 1 "" "" HP-UX
  3. .ds )H Hewlett-Packard Company OSSD-CV
  4. .ds ]W June 1993
  5. .SH NAME
  6. master_build \- OSSD-CV master build and source synchronization script.
  7. .SH SYNOPSIS
  8. .B master_build
  9. .RI [ \|options\| ]
  10. .SH DESCRIPTION
  11. .I master_build
  12. is a ksh script that controls building of build trees from a central
  13. location. It can also be used for source synchronization.
  14. If the
  15. .I -clone
  16. option is used, the
  17. .I -src
  18. option
  19. determines the source directory for source code synchronization. If the
  20. .I -build
  21. option is used, it is synchronized with the source directory associated
  22. with
  23. .IR -src .
  24. If the
  25. .I -c
  26. option is used,
  27. .I -build
  28. is used to determine the build directory. The
  29. .I -n
  30. option restricts the scope of any builds to just
  31. .IR make .
  32. The
  33. .I -noIgnore
  34. option will cause
  35. .I make
  36. to exit upon encountering an error. The default is to just stop
  37. building the current target upon error but continue building
  38. all of the rest of the targets (
  39. .I make
  40. .I -k
  41. ).
  42. The
  43. .I -l
  44. option causes a
  45. .I make
  46. of lint libraries.
  47. The
  48. .I -w
  49. option removes all targets before building.
  50. There are certain tools that are run inside
  51. .I master_build
  52. which are located in a standard location. The
  53. .I -t
  54. option allows a user to specify an alternate location.
  55. The
  56. .I -m
  57. option allows certain summary mail information to be sent to interested
  58. parties.
  59. .P
  60. Remote building via remsh can be triggered by the
  61. .I remote_build
  62. script.
  63. See
  64. .IR remote_build(1) .
  65. .P
  66. The
  67. .I cron_example
  68. file gives example cron entries for build administration.
  69. .SH LOGGING INFORMATION
  70. If the
  71. .I -build
  72. option is present, log files generated by
  73. .I master_build
  74. are placed in the /x/logs/build/mmdd/buildtree directory.
  75. If only the
  76. .I -src
  77. option was specified, log files are placed
  78. in the /x/logs/build/mmdd/sourcetree directory.
  79. If the
  80. .I -l
  81. option is specified it replaces the /x/logs/build portion of the
  82. above path. The following files may be present in a log directory:
  83. .TP 18
  84. .I allmake.HHMMSS
  85. This file contains output from make Makefile, make Makefiles, make
  86. clean, make includes and make depend.
  87. .TP
  88. .I make.HHMMSS
  89. This file contains output from make only.
  90. .TP
  91. .I lint.HHMMSS
  92. This file contains output from the
  93. .I -l
  94. option.
  95. .TP
  96. .I cloneerr.HHMMSS
  97. This file contains error messages generated by the
  98. .I -clone
  99. option.
  100. .TP
  101. .I cloneerr.HHMMSS
  102. This file contains a listing of the files that have been
  103. resynchronized by the
  104. .I -clone
  105. option.
  106. .TP
  107. .I cleanlinks.HHMMSS
  108. This file contains information on symbolic links to nowhere removed
  109. by the
  110. .I -cl
  111. option.
  112. .TP
  113. .I summary.HHMMSS
  114. This file contains output generated by the
  115. .I -m
  116. option.
  117. .P
  118. Log directories are trimmed to a certain number based on age by the
  119. .I cleanLogs
  120. script.
  121. See
  122. .IR cleanLog(1) .
  123. .SS Options
  124. .I master_build
  125. recognizes the following options:
  126. .RS
  127. .TP 15
  128. .I -src <source>
  129. The
  130. .I source
  131. directory is the directory that is used as the source for any
  132. cloning operations with the
  133. .I -clone
  134. option listed below.
  135. .TP
  136. .I -build <build>
  137. The
  138. .I build
  139. directory is the build tree that will either be built with either the
  140. .I -c
  141. or
  142. .I -l
  143. option and/or cloned.
  144. The
  145. .I build
  146. directory is only necessary if you are either doing
  147. builds or cloning a source tree into a build tree.
  148. The
  149. .I -clone
  150. option will use
  151. .I source
  152. as the source directory and
  153. .I build
  154. as the destination directory for
  155. .IR fnrclone .
  156. .TP
  157. .I -clone <n|s|c|sync>
  158. The
  159. .I -clone
  160. option will use
  161. .I source
  162. as the source directory and
  163. .I build
  164. as the destination directory for
  165. .IR fnrclone .
  166. If the
  167. .I -build
  168. option is missing,
  169. .I source
  170. will be both the source and destination directory for
  171. .IR fnrclone .
  172. The
  173. .I n
  174. parameter causes real files to be checked out into the destination
  175. directory with symbolically linked RCS directories. This is the same
  176. behavior as
  177. .I fnrclone
  178. .IR -n .
  179. The
  180. .I s
  181. parameter symbolically links files from the source to the destination
  182. and creates symbolically linked RCS directories. However, it will not
  183. check out new revisions of any source files from RCS but will merely
  184. synchronize source and destination. This is the same as the default
  185. behavior for
  186. .I fnrclone
  187. and this is the recommended option for use when cloning build trees
  188. from a source tree in the
  189. .I master_build
  190. script.
  191. The
  192. .I c
  193. and
  194. .I sync
  195. parameters behave like the
  196. .I s
  197. parameter but will check new files out of RCS. This is generally only
  198. done when cloning a source tree to itself (no
  199. .I -build
  200. option) and is meaningless when the RCS vaults are not visible as in the
  201. CDE source exchange. This is the same behavior as
  202. .I fnrclone
  203. .I -c
  204. and is the recommended operation to use when syncing a source tree to
  205. itself.
  206. See
  207. .I fnrclone(1)
  208. for more information.
  209. The
  210. .I -sync
  211. option is being obsoleted and may be removed in the future.
  212. Moving or removing files in
  213. .I -src
  214. can result in symbolic links to nowhere after cloning in
  215. .IR -build .
  216. The
  217. .I cleanLinks
  218. script can be run to remove these links. See the
  219. .I -cl
  220. option below and
  221. .IR cleanLinks(1) .
  222. .TP
  223. .I -cl
  224. Clean symbolic links to nowhere in either
  225. .I -src
  226. or
  227. .IR -build .
  228. As above with the
  229. .I -clone
  230. option, if no
  231. .I -build
  232. option is given,
  233. .I -src
  234. is used as the tree to be cleaned.
  235. Symbolic links to nowhere will occur in build trees when files are moved
  236. or removed from
  237. .I -src
  238. and
  239. .I -build
  240. is cloned from
  241. .IR -src .
  242. The
  243. .I cleanLinks
  244. script will remove all symbolic links to nowhere whose
  245. path does not end in RCS. See
  246. .IR cleanLinks(1) .
  247. .TP
  248. .I -c
  249. Do a complete build of the
  250. .I build
  251. directory.
  252. This option triggers
  253. .I make
  254. .I -k
  255. Makefile,
  256. .I make
  257. .I -k
  258. Makefiles,
  259. .I make
  260. .I -k
  261. includes,
  262. .I make
  263. .I -k
  264. depend,
  265. and
  266. .I make
  267. .IR -k .
  268. if the
  269. .I -noIgnore
  270. option is set, the
  271. .I -k
  272. option to
  273. .I make
  274. is ignored.
  275. .TP
  276. .I -n
  277. When used in conjunction with the
  278. .I -c
  279. option, only do a
  280. .IR make .
  281. Do not do
  282. .I make
  283. Makefile,
  284. .I make
  285. Makefiles,
  286. .I make
  287. includes, etc.
  288. .TP
  289. .I -w
  290. When used in conjunction with the
  291. .I -c
  292. option
  293. do a
  294. .I make
  295. clean. That is remove any clean targets such as .o's, .a's, executables,
  296. etc.
  297. .TP
  298. .I -l
  299. Do a
  300. .I make
  301. .I [-k]
  302. .IR lintlibs .
  303. This option creates lint libraries. The log file
  304. generated by this option is lint.HHMMSS.
  305. .TP
  306. .I -noIgnore
  307. This option removes the default
  308. .I -k
  309. option from all makes. This causes each particular make(
  310. .I make
  311. .IR Makefile ,
  312. .I make
  313. .IR Makefiles ,
  314. etc.)
  315. to stop on encountering the first error.
  316. .TP
  317. .I -log <logdir>
  318. Normally log files are placed in either the
  319. .I /x/logs/build/mmdd/source
  320. directory or the
  321. .I /x/logs/build/mmdd/build
  322. directory(see logging information above). This option allows you to
  323. to replace the
  324. .I /x/logs/build
  325. directory as the logging destination with
  326. .IR logdir .
  327. .TP
  328. .I -ba <path>
  329. Run
  330. .I make binstall
  331. and create an automatic install path. This path is of the form
  332. .I path/mm_dd
  333. where
  334. .I path
  335. is the supplied path and
  336. .I mm_dd
  337. is the date the build started (month_day).
  338. When using this option, you must also use the
  339. .I -build
  340. option and specify a build tree to run
  341. .I make binstall
  342. upon.
  343. The
  344. .I -cb
  345. option below allows you to specify how many
  346. .I mm_dd
  347. directories you want to maintain in
  348. .IR path.
  349. .TP
  350. .I -cb <number of directories>
  351. This option trims the number of binstall directories created by the
  352. .IR -ba
  353. option. It leaves the number of directories specified. It must be used
  354. with the
  355. .IR -ba
  356. option. It only trims directories of the type mm_dd(e.g 02_05).
  357. .TP
  358. .I -t <tooldir>
  359. Certain operations such as cloning, assume that tools such as fnrclone
  360. are located in the /x/cdesrc/admin/BuildTools directory.
  361. This option allows you to specify an alternate location for tools that
  362. .I master_build
  363. needs. Currently
  364. .I master_build
  365. accesses the following tools:
  366. .IR fnrclone ,
  367. and
  368. .IR sys_calls .
  369. .I fnrclone
  370. also currently has internal dependencies to /usr/local/bin.
  371. .I sys_calls
  372. gets correct versions of the
  373. .I date
  374. command for each architecture.
  375. .TP
  376. .I -m <mail_list>
  377. Sends information concerning bad options to
  378. .IR master_build ,
  379. and the start and stop time of builds to
  380. .IR mail_list .
  381. .TP
  382. .I -ld <ldoptions>
  383. This option passes
  384. .I ldoptions
  385. to the
  386. .I LDOPTS
  387. environment variable before
  388. .I make
  389. is started. This option is little used and may be obsolete.
  390. .TP
  391. .I -model <model> (Apollo only)
  392. This option passes apollo machine types to
  393. .IR master_build .
  394. It is generally not used.
  395. .TP
  396. .I -be <chrootdir> (HP only)
  397. This option is used for HP chroot build environment builds. It will not
  398. work for any other architecture.
  399. .SH SEE ALSO
  400. remote_build(1),
  401. cleanLinks(1),
  402. cleanLogs(1),
  403. ListTheTree(1),
  404. fnrclone(1),
  405. buildAdmin(5).
  406. .SH AUTHOR
  407. .I master_build
  408. was originally developed by Nathan Meyers, OSSD-CV, Hewlett-Packard.
  409. It was greatly expanded, modified,
  410. and renamed twice by Marc Ayotte, OSSD-CV, Hewlett-Packard.
  411. Other key modifiers have been Jim Andreas, Ron Voll, and Fred Handloser
  412. of OSSD-CV, Hewlett-Packard.