Add scripts to build, test and measure baremetal configuration
diff --git a/scripts/generate_codesize_stats.sh b/scripts/generate_codesize_stats.sh
new file mode 100755
index 0000000..33d1c7b
--- /dev/null
+++ b/scripts/generate_codesize_stats.sh
@@ -0,0 +1,123 @@
+#!/bin/sh
+# generate_codesize_stats.sh
+#
+# This file is part of mbed TLS (https://tls.mbed.org)
+#
+# Copyright (c) 2019, ARM Limited, All Rights Reserved
+#
+# Purpose
+#
+# Generate static memory usage statistics for an Mbed TLS build.
+#
+
+set -eu
+
+if [ -d include/mbedtls ]; then :; else
+    echo "$0: must be run from root" >&2
+    exit 1
+fi
+
+if grep -i cmake Makefile >/dev/null; then
+    echo "$0: not compatible with cmake" >&2
+    exit 1
+fi
+
+BUILD_DIR="./library"
+
+LIBFILES=$( ls $BUILD_DIR/*.a )
+OBJFILES=$( ls $BUILD_DIR/*.o )
+
+SUMMARY_ONLY=0
+LIMIT=9999
+
+print_usage() {
+    echo "\nExtract static memory usage statistics for an Mbed TLS build.\n"
+    echo "Usage: $0 [options]"
+    echo "  --files\tGenerate per-file code-size statistics."
+    echo "  --syms\tGenerate per-symbol code-size statistics."
+    echo "  -l|--limit num\tPrint only the largest 'num' symbols of the given type. (Default: $LIMIT) "
+    echo "  -h|--help\tPrint this help."
+    echo "  -d|--dir=BUILD_DIR\tThe build directory containing the 'library' folder (default: ${BUILD_DIR})"
+}
+
+get_options() {
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            -d|--dir)
+                shift; BUILD_DIR=$1
+                ;;
+            -h|--help)
+                print_usage
+                exit 0
+                ;;
+            --files)
+                FILE_STATS=1
+                ;;
+            --syms)
+                SYM_STATS=1
+                ;;
+            -l|--limit)
+                shift; LIMIT=$1
+                ;;
+            -n|--name)
+                shift; name=$1
+                ;;
+            -i|--info)
+                shift; info=$1
+                ;;
+            *)
+                echo "Unknown argument: $1"
+                print_usage
+                exit 1
+                ;;
+        esac
+        shift
+    done
+}
+
+FILE_STATS=0
+SYM_STATS=0
+name="unnamed"
+info="noinfo"
+get_options "$@"
+
+date=$( date +%Y-%m-%d-%H-%M-%S )
+
+report_syms() {
+    file=$(basename $1)
+    type=$2
+    stat=$(nm --line-numbers --radix=d --size-sort --reverse $1 |
+                  grep " [$3] "  |
+                  sort --reverse |
+                  head -n $LIMIT |
+                  awk -v type="$type" -v info="$info" -v name="$name" -v date="$date" -v file="$file" \
+                      '{ printf( "%10s %42s %12s %20s %8s %6d %s\n", date, name, info, file, type, $1, $3 ); }')
+    if [ -n "$stat" ]; then
+        echo "$stat"
+    fi
+}
+
+# Report static memory usage (RAM and ROM)
+if [ $FILE_STATS -eq 1 ]; then
+    for file_full in $LIBFILES; do
+        file=$(basename $file_full)
+        size --radix=10 $file_full   |
+            sort -s -n -k 1,1        |
+            tail -n +2               |
+            sed -n '/^[ ]*0/!p'      |
+            awk -v info="$info" -v name="$name" -v date="$date" '{ printf( "%10s %42s %12s %20s %6d %6d %6d\n", date, name, info, $6, $1, $2, $3 ); }' |
+            awk -v info="$info" -v name="$name" -v date="$date" -v file="$file" '{print $0; sum_text += $5; sum_data += $6; sum_bss += $7}
+                             END { printf( "%10s %42s %12s %20s %6d %6d %6d\n\n", date, name, info, file, sum_text, sum_data, sum_bss ); }'
+    done
+fi
+
+if [ $SYM_STATS -eq 1 ]; then
+    SYMTYPES="CODE-tT DATA-dD RODATA-rR BSS-bB"
+    for symtype in $SYMTYPES; do
+        type=${symtype%*-*}
+        specifier=${symtype#*-*}
+        for file_full in $OBJFILES; do
+            report_syms "$file_full" $type $specifier
+        done
+    done
+fi