ack/modules/src/em_code/make.fun
1987-08-06 10:48:14 +00:00

52 lines
888 B
Standard ML
Executable file

TMP=tmp$$
cat $* >$TMP
ed - $TMP <<'--EOI--'
g/^%/d
g/^$/d
g/^ /.-1,.j
1,$s/[ ]*|[ ]*/|/g
g/NOTIMPLEMENTED/d
1,$s/\([^|]*\)|\([^|]*\)|\(.*\)$/\
NAME \1\
HEAD \1\
PLST \2\
DECL \2\
BODY \3/
$a
END
.
g/^NAME/m$
g/^PLST/s/[ ][ ]*\([^:]*\):\([^ ]*\)/,\2/g
g/^PLST,/s//PLST /
g/^PLST /s/^PLST \(.*\)$/(\1)/
g/^HEAD/.,.+1j
g/^HEAD /s/^HEAD \([^(]*\)\(.*\)$/cat >\1.c <<'--EOF--'\
#include "em_private.h"\
\
\1\2/
g/^DECL/s/[ ][ ]*\([^:]*\):\([^ ]*\)/\
\1 \2;/g
g/^DECL/d
g/^BODY/s/^BODY \(.*\)$/{\
\1;\
}\
--EOF--/
1,/^END/-1p
1,/^END/d
g:^NAME:s:^NAME \(.*\)$:cc -c -O -I$1 -I$EMHOME/modules/h -I$EMHOME/h \1.c:
1i
cat >make.sh <<'--EOF--'
: script for making lib
rm -f C_*.o
.
$a
rm -f libem$1.a
cc -c -O -I. -I$1 -I$EMHOME/modules/h -I$EMHOME/h $1/em.c
mv em.o em$1.o
ar rc libem$1.a C_*.o em$1.o insert.o failed.o internerr.o getid.o
rm -f C_*.o
--EOF--
.
1,$p
--EOI--
rm -f $TMP