Fix boot under Bochs when Pintos is compiled with recent GCC.
[pintos-anon] / src / misc / bochs-2.2.6-build.sh
1 #! /bin/sh -e
2
3 if test -z "$SRCDIR" || test -z "$PINTOSDIR" || test -z "$DSTDIR"; then
4     echo "usage: env SRCDIR=<srcdir> PINTOSDIR=<srcdir> DSTDIR=<dstdir> sh $0"
5     echo "  where <srcdir> contains bochs-2.2.6.tar.gz"
6     echo "    and <pintosdir> is the root of the pintos source tree"
7     echo "    and <dstdir> is the installation prefix (e.g. /usr/local)"
8     exit 1
9 fi
10
11 cd /tmp
12 mkdir $$
13 cd $$
14 mkdir bochs-2.2.6
15 tar xzf $SRCDIR/bochs-2.2.6.tar.gz
16 cd bochs-2.2.6
17 cat $PINTOSDIR/src/misc/bochs-2.2.6-ms-extensions.patch | patch -p1
18 cat $PINTOSDIR/src/misc/bochs-2.2.6-big-endian.patch | patch -p1
19 cat $PINTOSDIR/src/misc/bochs-2.2.6-jitter.patch | patch -p1
20 cat $PINTOSDIR/src/misc/bochs-2.2.6-triple-fault.patch | patch -p1
21 cat $PINTOSDIR/src/misc/bochs-2.2.6-solaris-tty.patch | patch -p1
22 cat $PINTOSDIR/src/misc/bochs-2.2.6-page-fault-segv.patch | patch -p1
23 cat $PINTOSDIR/src/misc/bochs-2.2.6-paranoia.patch | patch -p1
24 cat $PINTOSDIR/src/misc/bochs-2.2.6-gdbstub-ENN.patch | patch -p1
25 cat $PINTOSDIR/src/misc/bochs-2.2.6-namespace.patch | patch -p1
26 if test "`uname -s`" = "SunOS"; then
27     cat $PINTOSDIR/src/misc/bochs-2.2.6-solaris-link.patch | patch -p1
28 fi
29 CFGOPTS="--with-x --with-x11 --with-term --with-nogui --prefix=$DSTDIR --enable-cpu-level=6"
30 mkdir plain &&
31         cd plain && 
32         ../configure $CFGOPTS --enable-gdb-stub && 
33         make && 
34         make install &&
35         cd ..
36 mkdir with-dbg &&
37         cd with-dbg &&
38         ../configure --enable-debugger $CFGOPTS &&
39         make &&
40         cp bochs $DSTDIR/bin/bochs-dbg &&
41         cd ..