mkmany 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. lex.yy.c: $LFILES
  18. $LEX $LFLAGS $prereq
  19. %.install:V: $BIN/%
  20. $BIN/%: $O.%
  21. cp $O.$stem $BIN/$stem
  22. %.installall:V:
  23. for (objtype in $CPUS)
  24. mk $stem.install
  25. install:V:
  26. for (i in $TARG)
  27. mk $MKFLAGS $i.install
  28. installall:V:
  29. for(objtype in $CPUS)
  30. mk $MKFLAGS install
  31. %.safeinstall:V:
  32. mk $O.$stem
  33. test -e $BIN/$stem && mv $BIN/$stem $BIN/_$stem
  34. mk $stem.install
  35. %.safeinstallall:V:
  36. for(objtype in $CPUS)
  37. mk $MKFLAGS $stem.safeinstall
  38. safeinstall:V:
  39. for(i in $TARG)
  40. mk $MKFLAGS $i.safeinstall
  41. safeinstallall:V:
  42. for (objtype in $CPUS)
  43. mk safeinstall
  44. update:V:
  45. update $UPDATEFLAGS $UPDATE
  46. # [$OS].??* avoids file names like 9.h
  47. nuke:V:
  48. rm -f *.[$OS] y.tab.? lex.yy.c y.debug y.output [$OS].??* *.acid $TARG
  49. clean:V:
  50. rm -f *.[$OS] *.a[$OS] y.tab.? lex.yy.c y.debug y.output [$OS].??* $TARG $CLEANFILES
  51. %.clean:V:
  52. rm -f $stem.[$OS] [$OS].$stem $stem.acid $stem
  53. %.acid: %.$O $HFILES
  54. $CC $CFLAGS -a $stem.c >$target
  55. %.man: $MAN/$stem
  56. cp $stem.man $MAN/$stem
  57. man:V: $MANFILES