mkmany 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. PROGS=${TARG:%=$O.%}
  2. MANFILES=${TARG:%=%.man}
  3. LDFLAGS=
  4. YFLAGS=-d
  5. none:VQ:
  6. echo usage: mk all, install, installall, '$O'.cmd, cmd.install, or cmd.installall
  7. all:V: $PROGS
  8. $O.%: %.$O $OFILES $LIB
  9. $LD $LDFLAGS -o $target $prereq
  10. %.$O: $HFILES # don't combine with following %.$O rules
  11. %.$O: %.c
  12. $CC $CFLAGS $stem.c
  13. %.$O: %.s
  14. $AS $AFLAGS $stem.s
  15. y.tab.h y.tab.c: $YFILES
  16. $YACC $YFLAGS $prereq
  17. %.install:V: $BIN/%
  18. $BIN/%: $O.%
  19. cp $O.$stem $BIN/$stem
  20. %.installall:V:
  21. for (objtype in $CPUS)
  22. mk $stem.install
  23. install:V:
  24. for (i in $TARG)
  25. mk $MKFLAGS $i.install
  26. installall:V:
  27. for(objtype in $CPUS)
  28. mk $MKFLAGS install
  29. %.safeinstall:V:
  30. mk $O.$stem
  31. test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
  32. mk $stem.install
  33. %.safeinstallall:V:
  34. for(objtype in $CPUS)
  35. mk $MKFLAGS $stem.safeinstall
  36. safeinstall:V:
  37. for(i in $TARG)
  38. mk $MKFLAGS $i.safeinstall
  39. safeinstallall:V:
  40. for (objtype in $CPUS)
  41. mk safeinstall
  42. update:V:
  43. update $UPDATEFLAGS $UPDATE
  44. nuke:V:
  45. rm -f *.[$OS] y.tab.? y.debug y.output [$OS].* *.acid $TARG
  46. clean:V:
  47. rm -f *.[$OS] *.a[$OS] y.tab.? y.debug y.output [$OS].* $TARG $CLEANFILES
  48. %.clean:V:
  49. rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
  50. %.acid: %.$O $HFILES
  51. $CC $CFLAGS -a $stem.c >$target
  52. %.man: $MAN/$stem
  53. cp $stem.man $MAN/$stem
  54. man:V: $MANFILES