README
5.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
Build/Release Procedures
========================
(updated 1/8/96)
This memo describes steps taken during the build/release process of Ultra64
software. It is intended to assist those "lucky" few who have the opportunity
of being the release meister.
0. Log into sonya as prbuild
rlogin sonya -l prbuild
1. Set important environment variables
For HW2:
prbuild-sonya: release
For HW1:
prbuild-sonya: release1
2. Go to top of build tree
prbuild-sonya: cd $PR
3. Clean everything up if you are totally paranoid
prbuild-sonya: make clobber (for total paranoid clean build)
OR
prbuild-sonya: make clean (for simple clean build)
4. Update the tree
prbuild-sonya: updatePR.sh (located in ~/bin)
This script simply updates the tree and directs output to $ROOT/update.log.
5. Increment the version in the $PR/build/spec file
The current format for HW2 version is 2.0X where X is an upper case
letter (ie. B). Similarly, the format for HW1 version is 1.0X where X is an
upper case letter (ie. F).
6. Edit the release notes in $PR/man/relnotes to include all last-minute info
7. Install headers, libraries, tools, and propagate "make install" to all of
the tree.
prbuild-sonya: makePR.sh (located in ~/bin)
This script simply runs the followings and directs output to $ROOT/make.log:
a) make headers (install headers used by following passes)
b) make exports (install libraries and tools used by following passes)
c) make rawidb
Build everything. You will notice 'make install' getting propagated to
all of the source tree. Ordinarily this causes /etc/install to install
the binary into its target directory under $ROOT. But the 'make rawidb'
rule sets a couple of double-secret environment variables (RAWIDB and
SRC) that don't actually install the files but add a record to a file
named by $RAWIDB. This raw Inst Data Base file is used in the next
step below. Note that RAWIDB is set to IDB in $PR/build/Makefile.
8. If you have already built images and building a new one, you need to
prbuild-sonya: touch $PR/build/idb
to have the correct dependency condition for rebuilding the isms
Merge the raw idb file with the checked in idb file ($PR/build/idb) to
create a final idb used to create the images:
prbuild-sonya: make ism
If the checked in idb file matches the generated raw idb file, this
phase should complete without errors. Otherwise, you will get the following
error:
ERROR: XX line(s) missing, YY line(s) extra
Missing lines are lines that appear in the checked in idb, but not in
the generated idb. These are usually due to targets that have been
removed from a Makefile. Look at $PR/build/missing to confirm this,
and then execute the following command to remove it from the checked in
idb file:
prbuild-sonya: idbdelete $PR/build/idb $PR/build/missing
Extra lines are lines that appear in the generated idb file, but are
not in the checked in file. They are usually due to targets that have
been added to a Makefile. Look at $PR/build/extra to confirm this.
Extra files need a little hand massaging to get into the checked in
idb. First, slightly reformat the idb lines in the extra file and save
them in an intermediate file extra.new:
prbuild-sonya: idbextra $PR/build/extra > $PR/build/extra.new
Now edit the "extra.new" file to 'tag' the idb line. The tags are (upper
case) identifiers that associate an idb line with a product subsystem.
The product spec file, found in $PR/build/spec, contains the mapping
from idb tag to product subsystem. Look at this file for a list of
all of the subsystems and what tags correspond to which subsystem.
It is usually easy to find an existing idb line that has the correct tag
and just use it. Some of the tags are: BASE, DEMO, DIAG, MAN_DEMO, MAN_BASE,
and MAN_DIAG.
Then, you need to append the extra.new file to the checked in idb file:
prbuild-sonya: cat $PR/build/extra.new >> $PR/build/idb
Finally, you must sort the checked in idb file. There is probably an
emacs way to do this, but a good thing to do from within vi is this:
:5,$!sort +4 -6 -u
:wq
Then repeat step 8 until it completes cleanly.
9. Finally, make the images.
prbuild-sonya: make images
If this step completes cleanly, you will then have familiar, inst-style
images in $PR/images.
9.5 Test, test, test. Use the "virgin_indy" script to clean up some
lab machines, then install the new release. Build the installed
apps in /usr/src/PR and check them all.
Install the release as an "update" to some machines, test that
too.
Test all the apps on some machines, some apps on all machines.
Test hardware 1.0, if necessary.
10. Once the images are verified, create a directory in gozar:/PRarchive.
Follow the naming convention in PRarchive to name the new directory.
(ie. use the current date as the directory name).
prbuild-sonya: rlogin gozar -l root
gozar 1# cd /PRarchive
gozar 2# mkdir [mmmddyy_hw[12]]
Copy over the images from sonya to the new directory.
Also, you need to copy the GameShop and dmedia images from the previous
release to the new release. Relink LATEST to point to this new directory.
11. Then, you need to make 3 tar tapes:
a) Tar off all FrameMaker files in $PR/doc/dev directory
b) Generate postscript files in the $PR/man directory
(ie., make ps-list) and tar off the entire $PR/man directory.
c) Tar off the newly archived images in gozar. This should include
- "ultra" images
- "GameShop" images
- "dmedia_eoe" images
12. The final step is to copy over the census file from $ROOT/census to the
archived directory on gozar.