-
Notifications
You must be signed in to change notification settings - Fork 108
/
mvm
executable file
·56 lines (49 loc) · 1.82 KB
/
mvm
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
#!/usr/bin/env bash
set -e
# PharoVM with VM profiler and itimer heartbeat
case "`uname -m`" in # ensure we see x86 as machine type
i*86) ;; # we're good
*) if type i386 2>&1 >/dev/null; then
echo "Re-exec as x86"
exec i386 "$0" "$@"
fi ;;
esac
THIRDPARTYLIBS="libsdl2 openssl libssh2 libgit2"
INSTALLDIR=phcogspurlinux
# Some gcc versions create a broken VM using -O2
OPT="-g -O2 -DNDEBUG -DDEBUGVM=0 -DPharoVM"
if [ $# -ge 1 ]; then
INSTALLDIR="$1"; shift
fi
if ../../../../scripts/checkSCCSversion ; then exit 1; fi
echo -n "clean? "
read a
case $a in
n|no|N|NO) echo "ok but this isn't safe!!";;
*) test -f Makefile && make reallyclean
# for lib in ${THIRDPARTYLIBS}; do
# ../../third-party/mvm ${lib} clean
# done
esac
test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
for lib in ${THIRDPARTYLIBS}; do
../../third-party/mvm ${lib}
done
test -f config.h || ../../../../platforms/unix/config/configure --without-npsqueak \
--with-vmversion=5.0 \
--with-src=src/vm.32bit.cog.spur \
TARGET_ARCH="-m32" \
CFLAGS="$OPT -msse2 -DCOGMTVM=0 -DITIMER_HEARTBEAT=1" \
LDFLAGS="-Wl,-rpath,'\$\$ORIGIN' "
rm -f vm/sqUnixMain.o # nuke version info
rm -rf ../../../../products/$INSTALLDIR
# prefer make install prefix=`readlink -f \`pwd\`/../../../../products/$INSTALLDIR`
# but older linux readlinks lack the -f flag
make install-squeak install-plugins prefix=`(cd ../../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG ; test ${PIPESTATUS[0]} -eq 0
productDir=`find ../../../../products/$INSTALLDIR -name "5.0*"`
productDir=`(cd $productDir;pwd)`
for lib in ${THIRDPARTYLIBS}; do
../../third-party/mvm ${lib} install $productDir
done
../../editpharoinstall.sh ../../../../products/$INSTALLDIR "$@"