|
|
1.1 ! root 1: #! /bin/sh ! 2: # Special cc preprocessor for using mkstr(1) to extract strings from the ! 3: # kermit5 source. Change the "CC=cc" line to "CC=./ckustr.sed" to use ! 4: # string extraction. NOTE: the file ckustr.c might need the StringFile ! 5: # declaration modified to suit local system requirements. When installing ! 6: # the kermit executable be sure to install kermit.sr and make it readable ! 7: # by the public (mode 444). ! 8: ! 9: STRINGS=kermit5.sr ! 10: ! 11: # Get filename and arguments. ! 12: initargs=$@ ! 13: while [ -n "$1" ] ! 14: do ! 15: if [ $1 = -o ] ! 16: then ! 17: exec cc $initargs ! 18: exit 1 ! 19: fi ! 20: if [ `expr substr $1 1 1` = - ] ! 21: then ! 22: if [ $1 != -c ] ! 23: then ! 24: args="$args $1" ! 25: fi ! 26: else ! 27: csrc=$1 ! 28: fi ! 29: shift ! 30: done ! 31: ! 32: # Only process compilations, and then only for certain files. ! 33: if [ $csrc = ckustr.c -o $csrc = ckwart.c ] ! 34: then ! 35: exec cc $initargs ! 36: exit 1 ! 37: fi ! 38: ! 39: # String extractions ! 40: echo Extracting strings from ${csrc}... ! 41: cc -E $args $csrc > xxmk.c ! 42: sed -e 's/ferror(/strferrorf(/' \ ! 43: -e 's/perror("/strperror("/' \ ! 44: -e 's/experror(/strexperrorf(/' \ ! 45: -e 's/sprintf(\([^,][^,]*\),[ ]*\("[^"]*"\)\([,)]\)/strsrerror(\2, \1\3/' \ ! 46: -e 's/fprintf(\([^,][^,]*\),[ ]*\("[^"]*"\)\([,)]\)/strfrerror(\2, \1\3/' \ ! 47: -e 's/printf("/strprerror("/' \ ! 48: xxmk.c > mk.c ! 49: mkstr - $STRINGS xx mk.c ! 50: sed -e 's/^# \([0-9]\)/#line \1/' xxmk.c | xstr -c - ! 51: echo Compiling... ! 52: cc -Dstrferrorf=ferror -Dstrexperrorf=experror $args -c x.c ! 53: mv x.o `basename $csrc .c`.o ! 54: rm -f x.c mk.c xxmk.c
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.