#!/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 "};"