mkmany 1.5 KB

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