2016-04-13 21:45:21 -04:00
|
|
|
#!/bin/bash
|
2016-03-29 12:54:05 -04:00
|
|
|
|
|
|
|
|
kraken="kraken"
|
2016-04-19 06:04:22 -04:00
|
|
|
bootstrap_commits=(cf46fb13afe66ba475db9725e9269c9c1cd3bbc3)
|
2016-03-29 12:54:05 -04:00
|
|
|
|
2016-03-30 16:13:10 -04:00
|
|
|
if [[ $1 == "clean" ]]
|
2016-03-29 12:54:05 -04:00
|
|
|
then
|
2016-03-30 16:13:10 -04:00
|
|
|
rm ${kraken}
|
|
|
|
|
rm ${kraken}_bac
|
|
|
|
|
rm ${kraken}_deprecated
|
2016-04-19 06:04:22 -04:00
|
|
|
rm -rf bootstrap_kalypso
|
2016-03-29 12:54:05 -04:00
|
|
|
else
|
2016-03-30 16:13:10 -04:00
|
|
|
if [[ $1 == "backup" ]]
|
2016-03-29 12:54:05 -04:00
|
|
|
then
|
2016-03-30 16:13:10 -04:00
|
|
|
rm ${kraken}
|
|
|
|
|
fi
|
|
|
|
|
if [[ $1 == "rebuild" ]]
|
|
|
|
|
then
|
|
|
|
|
rm ${kraken}
|
|
|
|
|
rm ${kraken}_bac
|
|
|
|
|
rm ${kraken}_deprecated
|
2016-04-19 06:04:22 -04:00
|
|
|
rm ${kraken}_bootstrap
|
2016-03-30 16:13:10 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [ -s "$kraken" ]
|
|
|
|
|
then
|
|
|
|
|
#echo "$kraken exists, calling"
|
|
|
|
|
./${kraken} ${kraken}.krak ${kraken}
|
|
|
|
|
else
|
|
|
|
|
echo "gotta make $kraken, testing for compilers to do so"
|
|
|
|
|
if ! [ -s "${kraken}_bac" ]
|
2016-03-29 12:54:05 -04:00
|
|
|
then
|
2016-03-30 16:13:10 -04:00
|
|
|
if ! [ -s "${kraken}_deprecated" ]
|
|
|
|
|
then
|
2016-04-19 06:04:22 -04:00
|
|
|
echo "no ${kraken}_deprecated, bootstrapping using Cephelpod and a chain of old Kalypsos"
|
|
|
|
|
git clone . bootstrap_kalypso
|
|
|
|
|
pushd bootstrap_kalypso
|
2016-04-19 12:49:08 -04:00
|
|
|
git checkout ${bootstrap_commits[0]}
|
2016-03-30 16:13:10 -04:00
|
|
|
cp -r stdlib deprecated_compiler
|
|
|
|
|
cp krakenGrammer.kgm deprecated_compiler
|
|
|
|
|
cp kraken.krak deprecated_compiler
|
|
|
|
|
pushd deprecated_compiler
|
|
|
|
|
mkdir build
|
|
|
|
|
pushd build
|
|
|
|
|
cmake ..
|
|
|
|
|
make
|
|
|
|
|
popd
|
|
|
|
|
mkdir build_kraken
|
|
|
|
|
mv kraken.krak build_kraken
|
|
|
|
|
pushd build_kraken
|
|
|
|
|
../build/kraken kraken.krak
|
|
|
|
|
popd
|
|
|
|
|
popd
|
2016-04-19 06:04:22 -04:00
|
|
|
cp deprecated_compiler/build_kraken/kraken/kraken ../${kraken}_bootstrap
|
|
|
|
|
popd
|
|
|
|
|
# Now make
|
|
|
|
|
./${kraken}_bootstrap kraken.krak ${kraken}_deprecated
|
2016-03-30 16:13:10 -04:00
|
|
|
else
|
|
|
|
|
echo "${kraken}_deprecated exists, calling"
|
|
|
|
|
fi
|
|
|
|
|
./${kraken}_deprecated kraken.krak ${kraken}_bac
|
2016-03-29 12:54:05 -04:00
|
|
|
else
|
2016-03-30 16:13:10 -04:00
|
|
|
echo "${kraken}_bac exists, calling"
|
2016-03-29 12:54:05 -04:00
|
|
|
fi
|
2016-03-30 16:13:10 -04:00
|
|
|
./${kraken}_bac kraken.krak ${kraken}
|
2016-03-29 12:54:05 -04:00
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
#./${kraken} $@
|
|
|
|
|
|
|
|
|
|
|