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
|
#!/bin/sh
if [ -e /etc/debian_version ]
then
DEBIAN_SYSTEM=t
fi
if [ x"${DEBIAN_SYSTEM}" != x ]
then
ARCH_OPTS="${ARCH_OPTS} -g -I/usr/include/gc"
fi
case `uname -m`/`uname -s` in
i[3456]86/*)
ARCH_OPTS="${ARCH_OPTS} -freg-struct-return"
;;
sun4*/*)
;;
IP*/IRIX*)
;;
alpha/*)
;;
*)
;;
esac
case `uname -s`/`uname -r` in
IRIX*/*) RANLIB=touch;;
SunOS/5.*) RANLIB=touch;;
*) RANLIB=ranlib;;
esac
if [ x"${DEBIAN_SYSTEM}" = x ]
then
# Don't assume we already have the Boehm GC available.
rm -rf gc
gunzip -c gc4.13alpha3.tar.gz | tar xf -
rm -f gc/Makefile.new
sed -f gc-Makefile.sed gc/Makefile >gc/Makefile.new
mv -f gc/Makefile.new gc/Makefile
rm -f gc/os_dep.new
sed -f gc-os_dep.sed gc/os_dep.c >gc/os_dep.new
mv -f gc/os_dep.new gc/os_dep.c
case `uname -m`/`uname -s` in
i[3456]86/Linux)
gcc -o stack-bottom stack-bottom.c
case `./stack-bottom` in
0)
rm -f gc/gcconfig.new
sed -f gc-gcconfig.sed gc/gcconfig.h >gc/gcconfig.new
mv -f gc/gcconfig.new gc/gcconfig.h;;
*);;
esac
rm -f stack-bottom;;
esac
cd gc
make test
cd ..
cp -f gc/gc.h include/gc.h
cp -f gc/gc.a include/libgc.a
$RANLIB include/libgc.a
rm -rf gc
fi
cd include
rm -f libstalin.a
# egcs can be used when it is available
#egcs -c -O2 -fomit-frame-pointer -freg-struct-return xlib-c.c
echo gcc -c -O2 -fomit-frame-pointer ${ARCH_OPTS} xlib-c.c
gcc -c -O2 -fomit-frame-pointer ${ARCH_OPTS} xlib-c.c
ar rc libstalin.a xlib-c.o
$RANLIB libstalin.a
rm xlib-c.o
cd ..
case `uname -m`/`uname -s` in
i[3456]86/*)
cp -f stalin-32.c stalin.c;;
sparc*/Linux)
cp -f stalin-32.c stalin.c;;
sun4*/*)
cp -f stalin-32.c stalin.c;;
IP*/IRIX*)
cp -f stalin-32.c stalin.c;;
alpha/*)
cp -f stalin-alpha.c stalin.c;;
*)
echo "Cannot (yet) run Stalin on this architecture"
exit 1;;
esac
exec make ARCH_OPTS="${ARCH_OPTS}"
|