/build-external.sh
#!/bin/sh
set -e
set -x
ROOT=$PWD

mkdir -p libs

cd $ROOT/external/newlib
mkdir build
cd build
../configure --target=arm-none-eabi --enable-newlib-reent-small --disable-newlib-fvwrite-in-streamio --disable-newlib-fseek-optimization --disable-newlib-wide-orient --disable-newlib-unbuf-stream-opt --enable-lite-exit --enable-newlib-global-atexit --enable-newlib-nano-formatted-io --disable-nls --disable-newlib-multithread --disable-multilib --disable-newlib-supplied-syscalls CFLAGS_FOR_TARGET='-g -mthumb -march=armv7-m -DMALLOC_PROVIDED'
#--enable-target-optspace
make configure-target-newlib
# Remove conflicting builtin/rust stdlib symbols
sed -i.bak -e 's/lib_a-\(memcmp\|memcpy\|memmove\|memset\)\.\$(OBJEXT) //g' arm-none-eabi/newlib/libc/string/Makefile
sed -i.bak -e 's/lib_a-\(w_fmod\|wf_fmod\)\.\$(OBJEXT) //g' arm-none-eabi/newlib/libm/math/Makefile
sed -i.bak -e 's/lib_a-memcpy\.\$(OBJEXT) //g' arm-none-eabi/newlib/libc/machine/arm/Makefile
make -j4 all-target-newlib
cd arm-none-eabi/newlib
# copy libc/libc.a, which doesn't include libm.a symbols
cp libc/libc.a libm.a $ROOT/libs/

cd $ROOT/external/lua-5.3.5/src
make -j4 CC='arm-none-eabi-gcc -mthumb -march=armv7-m' liblua.a
cp liblua.a $ROOT/libs/