Multi.make 840 B

12345678910111213141516171819202122232425262728293031
  1. PACKAGE = "grassmods"
  2. include $(MODULE_TOPDIR)/include/Make/Vars.make
  3. include $(MODULE_TOPDIR)/include/Make/Rules.make
  4. include $(MODULE_TOPDIR)/include/Make/Html.make
  5. include $(MODULE_TOPDIR)/include/Make/Compile.make
  6. PROGFILES = $(patsubst %,$(BIN)/%$(EXE),$(PROGRAMS))
  7. HTMLFILES = $(patsubst %,$(HTMLDIR)/%.html,$(PROGRAMS))
  8. MANFILES = $(patsubst %,$(MANDIR)/%.$(MANSECT),$(PROGRAMS))
  9. multi: progs htmlmulti
  10. progs: $(PROGFILES)
  11. htmlmulti: $(HTMLFILES) $(MANFILES)
  12. $(BIN)/%$(EXE): $(DEPENDENCIES)
  13. $(call linker)
  14. define objs_rule
  15. $(BIN)/$(1)$(EXE): $$(patsubst %.o,$(OBJDIR)/%.o,$$($$(subst .,_,$(1)_OBJS)))
  16. $(HTMLDIR)/$(1).html: $(1).html $(1).tmp.html $(BIN)/$(1)$(EXE)
  17. $(1).tmp.html: $(BIN)/$(1)$(EXE)
  18. $$(call htmldesc,$$<,$$@)
  19. .INTERMEDIATE: $(1).tmp.html
  20. endef
  21. $(foreach prog,$(PROGRAMS),$(eval $(call objs_rule,$(prog))))