1 #!/bin/bash |
|
2 |
|
3 set -x |
|
4 set -e |
|
5 |
|
6 options="$*" |
|
7 option="$1" |
|
8 |
|
9 tmp=/tmp/test_builds.$$ |
|
10 rm -f -r ${tmp} |
|
11 mkdir -p ${tmp} |
|
12 |
|
13 errMessages=${tmp}/error_messages.txt |
|
14 |
|
15 ####### |
|
16 # Error function |
|
17 error() # message |
|
18 { |
|
19 echo "ERROR: $1" | tee -a ${errMessages} |
|
20 } |
|
21 # Check errors |
|
22 checkErrors() |
|
23 { |
|
24 if [ -s ${errMessages} ] ; then |
|
25 cat ${errMessages} |
|
26 exit 1 |
|
27 fi |
|
28 } |
|
29 ####### |
|
30 |
|
31 os="`uname -s`" |
|
32 arch="`uname -p`" |
|
33 make=make |
|
34 |
|
35 if [ "${os}" = "SunOS" ] ; then |
|
36 make=gmake |
|
37 export J7="/opt/java/jdk1.7.0" |
|
38 elif [ "${os}" = "Darwin" ] ; then |
|
39 export J7="/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home" |
|
40 elif [ "${os}" = "Linux" -a "${arch}" = "x86_64" ] ; then |
|
41 export J7="/usr/lib/jvm/java-7-openjdk-amd64/" |
|
42 else |
|
43 echo "What os/arch is this: ${os}/${arch}" |
|
44 exit 1 |
|
45 fi |
|
46 |
|
47 # Must have a jdk7 |
|
48 if [ ! -d ${J7} ] ; then |
|
49 echo "No JDK7 found at: ${J7}" |
|
50 exit 1 |
|
51 fi |
|
52 |
|
53 # What sources we use |
|
54 fromroot="http://hg.openjdk.java.net/build-infra/jdk8" |
|
55 |
|
56 # Where we do it |
|
57 root="testbuilds" |
|
58 mkdir -p ${root} |
|
59 |
|
60 # Three areas, last three are cloned from first to insure sameness |
|
61 t0=${root}/t0 |
|
62 t1=${root}/t1 |
|
63 t2=${root}/t2 |
|
64 t3=${root}/t3 |
|
65 repolist="${t0} ${t1} ${t2} ${t3}" |
|
66 |
|
67 # Optional complete clobber |
|
68 if [ "${option}" = "clobber" ] ; then |
|
69 for i in ${repolist} ; do |
|
70 rm -f -r ${i} |
|
71 done |
|
72 fi |
|
73 |
|
74 # Get top repos |
|
75 if [ ! -d ${t0}/.hg ] ; then |
|
76 rm -f -r ${t0} |
|
77 hg clone ${fromroot} ${t0} |
|
78 fi |
|
79 for i in ${t1} ${t2} ${t3} ; do |
|
80 if [ ! -d ${i}/.hg ] ; then |
|
81 hg clone ${t0} ${i} |
|
82 fi |
|
83 done |
|
84 |
|
85 # Get repos updated |
|
86 for i in ${repolist} ; do |
|
87 ( \ |
|
88 set -e \ |
|
89 && cd ${i} \ |
|
90 && sh ./get_source.sh \ |
|
91 || error "Cannot get source" \ |
|
92 ) 2>&1 | tee ${i}.get_source.txt |
|
93 checkErrors |
|
94 done |
|
95 |
|
96 # Optional clean |
|
97 if [ "${option}" = "clean" ] ; then |
|
98 for i in ${repolist} ; do |
|
99 rm -f -r ${i}/build |
|
100 rm -f -r ${i}/*/build |
|
101 rm -f -r ${i}/*/dist |
|
102 done |
|
103 fi |
|
104 |
|
105 # Check changes on working set files |
|
106 for i in ${repolist} ; do |
|
107 ( \ |
|
108 set -e \ |
|
109 && cd ${i} \ |
|
110 && sh ./make/scripts/hgforest.sh status \ |
|
111 || error "Cannot check status" \ |
|
112 ) 2>&1 | tee ${i}.hg.status.txt |
|
113 checkErrors |
|
114 done |
|
115 |
|
116 # Configure for build-infra building |
|
117 for i in ${t1} ${t2} ; do |
|
118 ( \ |
|
119 set -e \ |
|
120 && cd ${i}/common/makefiles \ |
|
121 && sh ../autoconf/configure --with-boot-jdk=${J7} \ |
|
122 || error "Cannot configure" \ |
|
123 ) 2>&1 | tee ${i}.config.txt |
|
124 checkErrors |
|
125 done |
|
126 |
|
127 # Do build-infra builds |
|
128 for i in ${t1} ${t2} ; do |
|
129 ( \ |
|
130 set -e \ |
|
131 && cd ${i}/common/makefiles \ |
|
132 && ${make} \ |
|
133 FULL_VERSION:=1.8.0-internal-b00 \ |
|
134 JRE_RELEASE_VERSION:=1.8.0-internal-b00 \ |
|
135 USER_RELEASE_SUFFIX:=compare \ |
|
136 RELEASE:=1.8.0-internal \ |
|
137 VERBOSE= \ |
|
138 LIBARCH= \ |
|
139 all images \ |
|
140 || error "Cannot build" \ |
|
141 ) 2>&1 | tee ${i}.build.txt |
|
142 checkErrors |
|
143 done |
|
144 |
|
145 # Compare build-infra builds |
|
146 ( \ |
|
147 sh ${t0}/common/bin/compareimage.sh \ |
|
148 ${t1}/build/*/images/j2sdk-image \ |
|
149 ${t2}/build/*/images/j2sdk-image \ |
|
150 || error "Cannot compare" \ |
|
151 ) 2>&1 | tee ${root}/build-infra-comparison.txt |
|
152 checkErrors |
|
153 |
|
154 # Do old build |
|
155 unset JAVA_HOME |
|
156 export ALT_BOOTDIR="${J7}" |
|
157 ( \ |
|
158 cd ${t3} \ |
|
159 && ${make} FULL_VERSION='"1.8.0-internal" sanity \ |
|
160 || error "Cannot sanity" \ |
|
161 ) 2>&1 | tee ${t3}.sanity.txt |
|
162 checkErrors |
|
163 ( \ |
|
164 cd ${t3} \ |
|
165 && ${make} \ |
|
166 FULL_VERSION='"1.8.0-internal" \ |
|
167 JRE_RELEASE_VERSION:=1.8.0-internal-b00 \ |
|
168 USER_RELEASE_SUFFIX:=compare \ |
|
169 RELEASE:=1.8.0-internal \ |
|
170 || error "Cannot build old way" \ |
|
171 ) 2>&1 | tee ${t3}.build.txt |
|
172 checkErrors |
|
173 |
|
174 # Compare old build to build-infra build |
|
175 ( \ |
|
176 sh ${t0}/common/bin/compareimage.sh \ |
|
177 ${t3}/build/*/j2sdk-image \ |
|
178 ${t1}/build/*/images/j2sdk-image \ |
|
179 || error "Cannot compare" \ |
|
180 ) 2>&1 | tee ${root}/build-comparison.txt |
|
181 checkErrors |
|
182 |
|
183 exit 0 |
|