crashtest-r0ket/firmware/applications/mkfirmware

74 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
APP=$1
shift
for f in $* ; do
grep -h '^void ' $f|sed 's/^void //;s/(.*//'|while read a ; do
echo "void $a(void);"
done
done
for f in $* ; do
grep -h '^void ' $f|sed 's/^void //;s/(.*//'|while read a ; do
echo "const struct MENU_DEF menu_$a = {\"$a\", &$a};"
done
done
echo "const struct MENU_DEF menu_nop = {\"---\", NULL};"
echo
for f in $* ; do
t=${f#*/}
t=${t%.c}
echo "static menuentry mentry_$t[] = {"
grep -h '^void ' $f|sed 's/^void //;s/(.*//'|while read a ; do
echo "&menu_$a,"
done
echo "NULL"
echo "};"
done
for f in $* ; do
t=${f#*/}
t=${t%.c}
echo "static const struct MENU m_$t = {\"$t\", mentry_$t};"
done
for f in $* ; do
t=${f#*/}
t=${t%.c}
echo "void run_$t(void) {"
echo "handleMenu(&m_$t);"
echo "};"
done
for f in $* ; do
t=${f#*/}
t=${t%.c}
echo "const struct MENU_DEF menu_$t = {\"$t\", &run_$t};"
done
echo "static menuentry mentry[] = {"
for f in $* ; do
t=${f#*/}
t=${t%.c}
echo "&menu_$t,"
done
echo "NULL"
echo "};"
echo "inline void tick_${APP}(void){"
for f in $* ; do
grep -h '^void tick_' $f|sed 's/^void //;s/(.*//'|while read a ; do
echo "$a();"
done
done
echo "return;"
echo "};"