The unpac monorepo manager self-hosting as a monorepo using unpac
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Eliminate local for loops in install

Continue to use for when invoking recursive make calls, but use
$(foreach ..) to generate command sequences so that macros can be used
in them.

+33 -22
+33 -22
Makefile
··· 2821 2821 ocamlc$(EXE),"$(INSTALL_BINDIR)/ocamlc.byte$(EXE)") 2822 2822 endif 2823 2823 $(MAKE) -C stdlib install 2824 + 2825 + define INSTALL_ONE_NAT_TOOL 2826 + install:: 2824 2827 ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true" 2828 + $(INSTALL_PROG) "tools/$(1)$(EXE)" "$(INSTALL_BINDIR)/$(1).byte$(EXE)";\ 2829 + if test -f "tools/$(1)".opt$(EXE); then \ 2830 + $(INSTALL_PROG) "tools/$(1).opt$(EXE)" "$(INSTALL_BINDIR)" && \ 2831 + (cd "$(INSTALL_BINDIR)" && $(LN) "$(1).opt$(EXE)" "$(1)$(EXE)"); \ 2832 + else \ 2833 + (cd "$(INSTALL_BINDIR)" && $(LN) "$(1).byte$(EXE)" "$(1)$(EXE)"); \ 2834 + fi 2835 + else 2836 + if test -f "tools/$(1)".opt$(EXE); then \ 2837 + $(INSTALL_PROG) "tools/$(1).opt$(EXE)" "$(INSTALL_BINDIR)"; \ 2838 + (cd "$(INSTALL_BINDIR)" && $(LN) "$(1).opt$(EXE)" "$(1)$(EXE)"); \ 2839 + fi 2840 + endif 2841 + endef 2842 + 2843 + ifeq "$(INSTALL_BYTECODE_PROGRAMS)" "true" 2844 + install:: 2825 2845 $(INSTALL_PROG) lex/ocamllex$(EXE) \ 2826 2846 "$(INSTALL_BINDIR)/ocamllex.byte$(EXE)" 2827 - for i in $(TOOLS_TO_INSTALL_NAT); \ 2828 - do \ 2829 - $(INSTALL_PROG) "tools/$$i$(EXE)" "$(INSTALL_BINDIR)/$$i.byte$(EXE)";\ 2830 - if test -f "tools/$$i".opt$(EXE); then \ 2831 - $(INSTALL_PROG) "tools/$$i.opt$(EXE)" "$(INSTALL_BINDIR)" && \ 2832 - (cd "$(INSTALL_BINDIR)" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \ 2833 - else \ 2834 - (cd "$(INSTALL_BINDIR)" && $(LN) "$$i.byte$(EXE)" "$$i$(EXE)"); \ 2835 - fi; \ 2836 - done 2837 - else 2838 - for i in $(TOOLS_TO_INSTALL_NAT); \ 2839 - do \ 2840 - if test -f "tools/$$i".opt$(EXE); then \ 2841 - $(INSTALL_PROG) "tools/$$i.opt$(EXE)" "$(INSTALL_BINDIR)"; \ 2842 - (cd "$(INSTALL_BINDIR)" && $(LN) "$$i.opt$(EXE)" "$$i$(EXE)"); \ 2843 - fi; \ 2844 - done 2845 2847 endif 2846 - for i in $(TOOLS_TO_INSTALL_BYT); \ 2847 - do \ 2848 - $(INSTALL_PROG) "tools/$$i$(EXE)" "$(INSTALL_BINDIR)";\ 2849 - done 2848 + 2849 + $(foreach tool, $(TOOLS_TO_INSTALL_NAT), \ 2850 + $(eval $(call INSTALL_ONE_NAT_TOOL,$(tool)))) 2851 + 2852 + define INSTALL_ONE_BYT_TOOL 2853 + install:: 2854 + $(INSTALL_PROG) "tools/$(1)$(EXE)" "$(INSTALL_BINDIR)" 2855 + endef 2856 + 2857 + $(foreach tool, $(TOOLS_TO_INSTALL_BYT), \ 2858 + $(eval $(call INSTALL_ONE_BYT_TOOL,$(tool)))) 2859 + 2860 + install:: 2850 2861 $(INSTALL_PROG) $(ocamlyacc_PROGRAM)$(EXE) "$(INSTALL_BINDIR)" 2851 2862 $(INSTALL_DATA) \ 2852 2863 utils/*.cmi \