mkfile 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. </$objtype/mkfile
  2. TARG=`{ls *.[cy] | sed '/\.tab\.c$/d;s/..$//'}
  3. HFILES=/$objtype/include/u.h /sys/include/libc.h /sys/include/bio.h
  4. BIN=/$objtype/bin
  5. PROGS=${TARG:%=$O.%}
  6. LDFLAGS=
  7. YFLAGS=-d
  8. NOTSYS=sml|dup
  9. BUGGERED=gc|lmlvideo|dwb|unix|perl|celp|mosml|ovac|vfs|aviation|_vnc|postscript|nventi|cvsold|cvs
  10. OUTOFDATE=old|ssls
  11. NOMK=$NOTSYS|$BUGGERED|$OUTOFDATE
  12. cpuobjtype=`{sed -n 's/^O=//p' /$cputype/mkfile}
  13. DIRS=`{ls -l | sed '/^d/!d; s/.* //; /^('$NOMK')$/d'}
  14. none:VQ:
  15. echo usage: mk cmds, dirs, all, install, installall, '$O'.cmd, cmd.install, or cmd.installall
  16. cmds:V: $PROGS
  17. dirs:V:
  18. for(i in cc $DIRS) @{
  19. cd $i
  20. echo mk $i
  21. mk $MKFLAGS all
  22. }
  23. all:V: $PROGS dirs
  24. ^([$OS])\.(.*):R: \2.\1
  25. $stem1^l $LDFLAGS -o $target $stem2.$stem1
  26. .*\.[$OS]:R: $HFILES
  27. (.*)\.([$OS])'$':R: \1.c
  28. $stem2^c $CFLAGS $stem1.c
  29. &:n: $O.&
  30. mv $O.$stem $stem
  31. %.tab.h %.tab.c: %.y
  32. $YACC $YFLAGS -s $stem $prereq
  33. %.install:V: $BIN/%
  34. $cpuobjtype._cp: /bin/cp
  35. cp $prereq $target
  36. %.safeinstall: $O.% $cpuobjtype._cp
  37. test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
  38. $cpuobjtype._cp $O.$stem $BIN/$stem
  39. %.safeinstallall:
  40. for(objtype in $CPUS)
  41. mk $stem.safeinstall
  42. mk $stem.clean
  43. $BIN/%: $O.% $cpuobjtype._cp
  44. $cpuobjtype._cp $O.$stem $BIN/$stem
  45. %.directories:V:
  46. for(i in $DIRS) @{
  47. cd $i
  48. echo mk $i
  49. mk $MKFLAGS $stem
  50. }
  51. clean:V: cleanfiles clean.directories
  52. nuke:V: cleanfiles nuke.directories
  53. directories:V: install.directories
  54. cleanfiles:V:
  55. rm -f [$OS].out *.[$OS] y.tab.? y.debug y.output [$OS].$TARG [$OS].units.tab $TARG bc.c bc.tab.h units.tab.h units.c [$OS]._cp
  56. %.clean:V:
  57. rm -f [$OS].$stem $stem.[$OS]
  58. install:V:
  59. test -e $cpuobjtype._cp || cp /bin/cp $cpuobjtype._cp
  60. mk $MKFLAGS $TARG.install
  61. mk $MKFLAGS directories
  62. installall:V:
  63. for(objtype in $CPUS)
  64. mk $MKFLAGS install
  65. %.installall: %.c
  66. test -e $cpuobjtype._cp || cp /bin/cp $cpuobjtype._cp
  67. for (objtype in $CPUS) {
  68. rfork e
  69. mk $stem.install &
  70. }
  71. wait
  72. rm -f $stem.[$OS] y.tab.? $stem.tab.? y.debug y.output [$OS].$stem bc.c bc.tab.h units.c
  73. %.acid: %.$O $HFILES
  74. $CC $CFLAGS -a $stem.c >$target
  75. (bc|units).c:R: \1.tab.c
  76. mv $stem1.tab.c $stem1.c
  77. $BIN/init: $O.init
  78. cp $prereq /$objtype/init
  79. $O.cj: cj.$O
  80. $LD $LDFLAGS -o $O.cj cj.$O /$objtype/lib/libjpg.a
  81. %.update:V:
  82. update $stem.c /386/bin/$stem
  83. compilers:V:
  84. @{
  85. cd cc
  86. mk clean
  87. mk installall
  88. mk clean
  89. }
  90. for(i in ?c)
  91. if(! ~ $i cc rc) @{
  92. cd $i;
  93. mk clean
  94. mk installall
  95. mk clean
  96. }