crashtest-r0ket/firmware/release-all

100 lines
1.7 KiB
Bash
Executable File

#!/bin/sh -e
# We currently don't use crypto, so this script is deprecated.
if [ -z ${MAKE} ]; then
which gmake >/dev/null && MAKE=gmake || MAKE=make
fi
TARG=../release
if [ ! -d ../firmware ] ; then
echo Running from wrong directory.
exit 1
fi
cd ../firmware
if [ -d $TARG ] ; then
echo Release dir already exists
echo please remove/move away
exit 1
fi
if [ ! -f SECRETS.release ] ; then
echo Please create a SECRETS.release file
echo containing the release keys.
echo
echo 'Do not commit them!'
exit 1
fi
cp SECRETS.release SECRETS
mkdir $TARG
mkdir $TARG/files
echo "###"
echo "### Building final"
echo "###"
export FINAL=y
$MAKE clean
./l0dable/mktable.pl
$MAKE APP=final
cp firmware.elf $TARG/final.elf
cp firmware.bin $TARG/final.bin
echo "###"
echo "### Gathering files"
echo "###"
cp ../tools/font/binary/*.f0n $TARG/files/
cp ../tools/image/lcd/*.lcd $TARG/files/
cp ../tools/image/lcd/i42.lcd $TARG/files/nick.lcd
echo "###"
echo "### Gathering loadables"
echo "###"
(cd l0dable && $MAKE)
mv l0dable/*.c0d $TARG/files/
mv l0dable/*.int $TARG/files/
mv l0dable/*.nik $TARG/files/
cp l0dable/files/* $TARG/files/
if grep -q 'define ENCRYPT_L0DABLE' SECRETS ; then
echo "###"
echo "### Building crypto"
echo "###"
(cd ../tools/crypto && $MAKE)
echo "###"
echo "### Crypting loadables"
echo "###"
skey=`./getkey.pl l0dable_sign`
ekey=`./getkey.pl l0dable_crypt`
if [ -z "$ekey" ] ; then
echo E-Key fail
exit 1
fi
if [ -z "$skey" ] ; then
echo S-Key fail
exit 1
fi
for a in $TARG/files/*.c0d $TARG/files/*.int $TARG/files/*.nik ; do
echo Crypting $a
../tools/crypto/xxtea -e -k $ekey $a
../tools/crypto/xxtea -s -k $skey $a
done
fi
echo "###"
echo "### Done. Yay!"
echo "###"
git checkout SECRETS