#! /bin/sh set -e sz=48 tn=0 echo "#define TOOLSIZE $sz" egrep -v '^#' < tools.list | while read t do echo -n "#define TOOL_" echo -n $t | tr a-z A-Z | tr -c A-Z0-9_ _ echo " $tn" tn=$(($tn + 1)) echo "static void setup_$t(TOOL *);" echo "static void click_$t(const LX_EVENT_ButtonPress *);" echo "static unsigned char bits_$t[] = {" pnmnoraw < bits-$t.pbm | awk ' function ostr(s, sl) { sl = length(s); if (oll + sl > 72) { printf("\n"); oll = 0; } printf("%s",s); oll += sl; } function appendbit(bit) { b = (2 * b) + bit; bn ++; if (bn >= 8) { ostr(pre); ostr(b ""); pre = ","; b = 0; bn = 0; } } NR==1 { next; } NR==2 { if ((NF != 2) || ($1 != '$sz') || ($2 != '$sz')) { printf("%s size wrong\n","'$t'") > "/dev/stderr"; exit 1 } next; } { img = img gensub("[^01]","@","g",$0); } END { i = 1; b = 0; bn = 0; oll = 0; pre = ""; for (y=0;y<'$sz';y++) { for (x=0;x<'$sz';x++) { appendbit(substr(img,i++,1)); } while (bn > 0) { appendbit(0); } } }' # | fold -s -w 71 | sed -e 's/ /,/g' -e 's/$/,/' -e 's/,,*/,/g' echo "};" done echo "static TOOL tools[] = {" egrep -v '^#' < tools.list | sed -e 's/.*/{ "&", \&setup_&, \&click_&, \&bits_&[0] },/' echo "};"