make.fun 888 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. TMP=tmp$$
  2. cat $* >$TMP
  3. ed - $TMP <<'--EOI--'
  4. g/^%/d
  5. g/^$/d
  6. g/^ /.-1,.j
  7. 1,$s/[ ]*|[ ]*/|/g
  8. g/NOTIMPLEMENTED/d
  9. 1,$s/\([^|]*\)|\([^|]*\)|\(.*\)$/\
  10. NAME \1\
  11. HEAD \1\
  12. PLST \2\
  13. DECL \2\
  14. BODY \3/
  15. $a
  16. END
  17. .
  18. g/^NAME/m$
  19. g/^PLST/s/[ ][ ]*\([^:]*\):\([^ ]*\)/,\2/g
  20. g/^PLST,/s//PLST /
  21. g/^PLST /s/^PLST \(.*\)$/(\1)/
  22. g/^HEAD/.,.+1j
  23. g/^HEAD /s/^HEAD \([^(]*\)\(.*\)$/cat >\1.c <<'--EOF--'\
  24. #include "em_private.h"\
  25. \
  26. \1\2/
  27. g/^DECL/s/[ ][ ]*\([^:]*\):\([^ ]*\)/\
  28. \1 \2;/g
  29. g/^DECL/d
  30. g/^BODY/s/^BODY \(.*\)$/{\
  31. \1;\
  32. }\
  33. --EOF--/
  34. 1,/^END/-1p
  35. 1,/^END/d
  36. g:^NAME:s:^NAME \(.*\)$:cc -c -O -I$1 -I$EMHOME/modules/h -I$EMHOME/h \1.c:
  37. 1i
  38. cat >make.sh <<'--EOF--'
  39. : script for making lib
  40. rm -f C_*.o
  41. .
  42. $a
  43. rm -f libem$1.a
  44. cc -c -O -I. -I$1 -I$EMHOME/modules/h -I$EMHOME/h $1/em.c
  45. mv em.o em$1.o
  46. ar rc libem$1.a C_*.o em$1.o insert.o failed.o internerr.o getid.o
  47. rm -f C_*.o
  48. --EOF--
  49. .
  50. 1,$p
  51. --EOI--
  52. rm -f $TMP