#!/bin/sh ZEXY_H=z_zexy.h ZEXY_C=z_zexy.c ZEXY_S=Make.source GREP=grep AWK=awk SED=sed ################################# ## functions function head_h() { echo "/* zexy-setup autogenerated header-file" echo " * generated by \"$0\"" echo " * !! DO NOT MANUALLY EDIT !!" echo " */" echo echo "#ifndef Z_ZEXY_H__" echo "#define Z_ZEXY_H__" } function foot_h() { echo "#endif /* Z_ZEXY_H__ */" echo "" } function head_c() { echo "/* zexy-setup autogenerated setup-file" echo " * generated by \"$0\"" echo " * !! DO NOT MANUALLY EDIT !!" echo " */" echo echo "#include \"$ZEXY_H\"" echo echo "void z_zexy_setup(void)" echo "{" } function foot_c() { echo "}" echo } function head_s() { echo "SOURCES = \\" } function foot_s() { echo " zexy.c" echo } function get_setupfunctions() { if [ -e "$1" ] then $GREP "^void .*_setup(void)" $i | $AWK '{print gensub("_setup.*", "_setup", "g", $2);}' fi } ################################## ## body head_h > $ZEXY_H head_c > $ZEXY_C head_s > $ZEXY_S for i in `ls *.c | grep -v zexy.c` do NAME="${i%.c}" SETUPNAMES=`get_setupfunctions $i` if [ "$SETUPNAMES" ] then echo " $i \\" >> $ZEXY_S for SETUPNAME in $SETUPNAMES do echo "void ${SETUPNAME}(void);" >> $ZEXY_H echo " ${SETUPNAME}();" >> $ZEXY_C done fi done foot_h >> $ZEXY_H foot_c >> $ZEXY_C foot_s >> $ZEXY_S