mkfile 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. MKSHELL=$PLAN9/bin/rc
  2. new-%:V:
  3. t=$stem
  4. if(! ~ $t utf fmt bio regexp mk){
  5. echo bad target
  6. exit oops
  7. }
  8. if(! ~ $t mk)
  9. t=lib$t
  10. mkdir -p $t
  11. rm -f $t/*
  12. cd $t
  13. mk -f ../mkfile.$stem
  14. cd ..
  15. test-%:V:
  16. t=$stem
  17. path=($PLAN9/bin $path)
  18. mk new-$t
  19. switch($t){
  20. case bio; d=libbio; td=libbio
  21. case regexp; d=libregexp; td=libregexp
  22. case fmt; d=lib9/fmt; td=libfmt
  23. case utf; d=lib9/utf; td=libutf
  24. case mk; d=cmd/mk; td=mk
  25. }
  26. cd $td
  27. d=$PLAN9/src/$d
  28. for(i in `{ls -p $d/*.c})
  29. if(! test -f $i)
  30. echo XXX missing $i
  31. make
  32. for(i in `{ls *.c})
  33. if(! test -f `{echo $i | sed 's/.c$/.o/'})
  34. echo XXX not building $i
  35. cd ..
  36. test:V: test-utf test-fmt test-bio test-regexp test-mk
  37. mk test-clean
  38. test-clean:V:
  39. rm -rf libutf libfmt libbio libregexp mk
  40. lib%.tgz:V:
  41. mk new-$stem
  42. tar cf /dev/stdout lib$stem | gzip > $target
  43. libregexp9.tgz:V:
  44. mk new-regexp
  45. tar cf /dev/stdout libregexp | gzip >$target
  46. mk.tgz:V:
  47. mk new-mk
  48. tar cf /dev/stdout mk | gzip > $target
  49. mk-with-libs.tgz:V:
  50. mk new-utf
  51. mk new-fmt
  52. mk new-bio
  53. mk new-regexp
  54. mk new-mk
  55. rm -rf zot
  56. mkdir zot
  57. mv libutf libfmt libbio libregexp mk zot
  58. mv zot mk
  59. cp make/Makefile.all mk/Makefile
  60. tar cf /dev/stdout mk | gzip > $target
  61. rm -r mk
  62. tgz:V: libutf.tgz libfmt.tgz libregexp9.tgz libbio.tgz mk.tgz mk-with-libs.tgz
  63. # run from 'mk push' in ../dist, which sets 9fansweb
  64. push:V:
  65. cp *.tgz $9fansweb/plan9port/unix