mkfile 788 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. </$objtype/mkfile
  2. TARG=snoopy
  3. PROTOS=\
  4. ether\
  5. ip\
  6. ip6\
  7. dump\
  8. arp\
  9. rarp\
  10. udp\
  11. bootp\
  12. dhcp\
  13. hdlc\
  14. rtp\
  15. rtcp\
  16. tcp\
  17. il\
  18. icmp\
  19. icmp6\
  20. ninep\
  21. ospf\
  22. ppp\
  23. ppp_ccp\
  24. ppp_lcp\
  25. ppp_chap\
  26. ppp_ipcp\
  27. pppoe_sess\
  28. pppoe_disc\
  29. POBJS=${PROTOS:%=%.$O}
  30. OFILES= main.$O\
  31. y.tab.$O\
  32. protos.$O\
  33. $POBJS
  34. HFILES=dat.h\
  35. protos.h\
  36. y.tab.h\
  37. BIN=/$objtype/bin
  38. UPDATE=\
  39. mkfile\
  40. dat.h\
  41. main.c\
  42. ${POBJS:%.$O=%.c}\
  43. </sys/src/cmd/mkone
  44. protos.h: mkfile
  45. {
  46. for(i in $PROTOS){
  47. echo extern Proto $i';'
  48. }
  49. } > protos.h
  50. protos.c: mkfile
  51. {
  52. echo '#include <u.h>'
  53. echo '#include <libc.h>'
  54. echo '#include "dat.h"'
  55. echo '#include "protos.h"'
  56. echo 'Proto *protos[] ='
  57. echo '{'
  58. for(i in $PROTOS)
  59. echo ' &'$i','
  60. echo ' 0,'
  61. echo '};'
  62. } > protos.c
  63. y.tab.c: filter.y