update
[nethome.git] / bin / build
1 #! /bin/bash
2
3 output=
4 opts=
5 if [ "$1" = "-v" ];then
6         opts="-v"
7         shift
8 else
9         output="/tmp/build-`date --iso`"
10         exec >>$output 2>&1
11 fi
12
13 PS1=x
14 . $HOME/.bashrc
15
16 set -x
17 echo "$0 `date --iso=seconds` start"
18 I=Build
19
20 # FIXME: Running tasks get broken.
21 find $HOME/.hammock-result -mindepth 1 -maxdepth 1 -type d | xargs rm -rf
22
23 function QUIT
24 {
25   if [ -e ~/t/QUIT ];then
26     rm -f ~/t/QUIT
27     exit
28   fi
29 }
30
31 function run
32 {
33   QUIT
34   #mockrun fedora-rawhide-x86_64 "cd $PWD; $*"
35   mockrun fedora-16-x86_64 "cd $PWD; $*"
36 }
37
38 function hammock
39 {
40   QUIT
41   (unset hammock; hammock "$@")
42 }
43
44 for i in gdb binutils;do
45   new=$i-cvs-master-new
46   cd $HOME/redhat
47   rm -rf $new
48   mkdir $new
49   cd $new
50   cvs -d :ext:jkratoch@sourceware.org:/cvs/src co $i
51   rc=$?
52   cd ..
53   if [ $rc -eq 0 -a "`echo $new/*`" = "$new/src" ];then
54     rm -rf $i-cvs-master
55     mv $new/src $i-cvs-master
56     rmdir $new
57   fi
58   cd $HOME/redhat/$i-cvs-master
59   cvs update -A
60   cd ..
61   rm -rf $i-cvs-clean
62   cp -a $i-cvs-master $i-cvs-clean
63   cd $i-cvs-clean
64   run errs12
65   ctags
66 done
67
68 cd $HOME/redhat/binutils-master
69 git pull
70
71 cd $HOME/redhat/binutils-clean
72 git pull
73 ctags
74 run make
75
76 cd $HOME/redhat/binutils-clean-m32
77 git pull
78 ctags
79 run make
80
81 cd $HOME/redhat/gdb-master
82 git fetch gdb
83 git fetch archer
84 git pull
85
86 #for i in 71 70;do
87 #       cd $HOME/redhat/gdb-master$i
88 #       git pull
89 #done
90 for i in "" 73 72 -nopython;do
91 #       cd $HOME/redhat/gdb-master$i
92 #       git pull
93
94         cd $HOME/redhat/gdb-clean$i
95         git pull
96         ctags
97         (cd gdb; ctags)
98         run make
99         rm -f gdb/gdb-clean
100         cp -p gdb/gdb gdb/gdb-clean
101
102         if [ "$i" != "${i#[0-9]}" ];then
103                 new=gdb-cvs-master$i-new
104                 cd $HOME/redhat
105                 rm -rf $new
106                 mkdir $new
107                 cd $new
108                 branch="gdb_$(echo $i|sed 's/^./&_/')-branch"
109                 cvs -d :ext:jkratoch@sourceware.org:/cvs/src co -r $branch gdb
110                 rc=$?
111                 cd ..
112                 if [ $rc -eq 0 -a "`echo $new/*`" = "$new/src" ];then
113                         rm -rf gdb-cvs-master$i
114                         mv $new/src gdb-cvs-master$i
115                         rmdir $new
116                 fi
117                 cd $HOME/redhat/gdb-cvs-master$i
118                 cvs update -r $branch
119                 cd ..
120                 rm -rf gdb-cvs-clean$i
121                 cp -a gdb-cvs-master$i gdb-cvs-clean$i
122                 cd gdb-cvs-clean$i
123                 run errs12
124                 ctags
125         fi
126 done
127
128 cd $HOME/redhat/gdb-clean-m32
129 git pull
130 ctags
131 (cd gdb; ctags)
132 run make
133 rm -f gdb/gdb-clean
134 cp -p gdb/gdb gdb/gdb-clean
135
136 cd $HOME/redhat/glibc
137 git pull
138 (cd $HOME/redhat/glibc; ctags)
139 rm -rf $HOME/redhat/glibc-build
140 mkdir $HOME/redhat/glibc-build
141 (cd $HOME/redhat/glibc-build
142  set -e
143  run ../glibc/configure --prefix=$HOME/redhat/glibc-root
144  run make
145  rm -rf $HOME/redhat/glibc-root
146  mkdir $HOME/redhat/glibc-root
147  run make install
148  )
149
150 for d in f16 f15 f14 rawhide;do
151         hammock -c fedoragdb -i $I-fedoragdb-$d -d $d
152 done
153 ### hammock -c fedoragdb -d rawhide --cd f12! -i $I-fedoragdb-f12-on-rawhide
154
155 ### hammock -c rhelgdb -i $I-rhelgdb-rhel6 -d rhel6
156
157 cd
158 for i in \
159         gdbcvs                                  \
160         binutilscvs                             \
161         archer-jankratochvil-watchpoint3        \
162         archer-jankratochvil-vla                \
163 ; do
164         hammock -c $i -i $I-$i-f16 -d f16
165         #hammock -c $i -i $I-$i-rawhide -d rawhide
166 done
167 #       archer-tromey-threaded-dwarf            \
168 #       archer-tromey-python                    \
169 #       archer-pmuldoon-next-over-throw2        \
170 #       archer-jankratochvil-ifunc              \
171
172 for d in f16 f15 f14 rawhide;do
173         hammock -c gdbcvs -i $I-gdbcvs-$d -d $d
174 done
175
176 hammock -c gdbcvs -i $I-gdbcvs-gdbindex-f16 -d f16 --gdbindex
177 hammock -c gdbcvs -i $I-gdbcvs-gdbserver-f16 -d f16 --gdbserver
178 hammock -c gdbcvs -i $I-gdbcvs-dwarf41-f16 -d f16 --dwarf=41
179 hammock -c gdbcvs -i $I-gdbcvs-dwarf40-f16 -d f16 --dwarf=40
180 #hammock -c gdbcvs -i $I-gdbcvs-dwarf4-gdbindex-f16 -d f16 --dwarf=4 --gdbindex
181
182 ### for d in f12;do
183 ###     hammock -c gdbcvs --branch gdb_7_1-branch -i $I-gdb71cvs-f12 -d f12
184 ### done
185
186 ### for d in rawhide rhel6;do
187 ### for i in \
188 ###     gdbcvs                                  \
189 ###     archer-jankratochvil-fedora13           \
190 ### ; do
191 ###     hammock -c $i -i $I-$i-$d -d $d
192 ### done
193 ### done
194
195 cd $HOME/redhat/linux-2.6
196 git fetch --all
197 git pull
198 ctags
199
200 cd $HOME/redhat/gccgit
201 git pull
202 ctags
203 (cd gcc;ctags)
204
205 for gcc in gcchead gcc46 gcc45 gcc44;do
206 (
207 set -e
208 cd $HOME/redhat/${gcc}
209 svn update
210 svn status
211 ctags
212 cd gcc; ctags
213 root=$HOME/redhat/${gcc}-root
214 rm -rf $HOME/redhat/${gcc}-build
215 mkdir $HOME/redhat/${gcc}-build
216 # -j1 for: /usr/bin/install: cannot create regular file `/home/jkratoch/redhat/${gcc}-root/lib/../lib64/./libiberty.an': File exists
217 # mockrun fedora-rawhide-x86_64 "cd $HOME/redhat/${gcc}-build; errs12 --origss -m ../${gcc}/configure --prefix=$root --disable-werror --enable-languages=c,c++,fortran; rm -rf $root; mkdir $root; errs3 -j1"
218 cd $HOME/redhat/${gcc}-build
219 # gcc44+gcc45: sinput.adb:776:19: deallocation from empty storage pool
220 # /usr/bin/ld: libbackend.a(graphite.o): undefined reference to symbol 'ppl_finalize' + /usr/bin/ld: note: 'ppl_finalize' is defined in DSO /usr/lib64/libppl_c.so.4 so try adding it to the linker command line
221 run errs12 ../${gcc}/configure --prefix=$root --enable-languages=c,c++,fortran,java$(test $gcc = gcchead -o $gcc = gcc46 && echo ,ada) $(test $gcc = gcc44 && echo --without-cloog) --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
222 rm -rf $root
223 mkdir $root
224 run errs3 -j1
225
226 cd
227 # hammock -c gdbcvs -i $I-gdbcvs${gcc}-f14 -d f14 -p $root/bin -a x86_64
228 )
229 done
230
231 #hammock -c gdbcvs -i $I-gdbcvs-valgrind-rawhide -d rawhide --valgrind
232
233 diffgdbdaymail
234
235 echo "$0 `date --iso=seconds` done"