mbedtls/scripts/footprint.sh
2015-10-23 15:51:02 +02:00

53 lines
1.1 KiB
Bash
Executable file

#!/bin/sh
set -eu
CONFIG_H='include/mbedtls/config.h'
if [ -r $CONFIG_H ]; then :; else
echo "$CONFIG_H not found" >&2
exit 1
fi
if grep -i cmake Makefile >/dev/null; then
echo "Not compatible with CMake" >&2
exit 1
fi
doit()
{
NAME="$1"
FILE="$2"
echo "$NAME:"
cp $CONFIG_H ${CONFIG_H}.bak
cp "$FILE" include/mbedtls/config.h
{
scripts/config.pl unset MBEDTLS_NET_C || true
scripts/config.pl unset MBEDTLS_TIMING_C || true
scripts/config.pl unset MBEDTLS_FS_IO || true
} >/dev/null 2>&1
CC=arm-none-eabi-gcc AR=arm-none-eabi-ar LD=arm-none-eabi-ld \
CFLAGS='-Wa,--noexecstack -Os -march=armv7-m -mthumb' \
make clean lib >/dev/null
OUT="size-${NAME}.txt"
arm-none-eabi-size -t library/libmbed*.a > "$OUT"
head -n1 "$OUT"
tail -n1 "$OUT"
cp ${CONFIG_H}.bak $CONFIG_H
}
# creates the yotta config
yotta/create-module.sh >/dev/null
doit default include/mbedtls/config.h.bak
doit yotta yotta/module/mbedtls/config.h
doit thread configs/config-thread.h
doit ecc configs/config-suite-b.h
doit psk configs/config-ccm-psk-tls1_2.h