$(SREQ3_T_$(target)_H_$(CFG_HOST_TRIPLE)))
FUZZ := $(HBIN3_H_$(CFG_HOST_TRIPLE))/fuzzer$(X)
CARGO := $(HBIN3_H_$(CFG_HOST_TRIPLE))/cargo$(X)
+RUSTDOC := $(HBIN3_H_$(CFG_HOST_TRIPLE))/rustdoc$(X)
-all: rustc $(GENERATED) $(DOCS) $(FUZZ) $(CARGO)
+all: rustc $(GENERATED) $(DOCS) $(FUZZ) $(CARGO) $(RUSTDOC)
endif
$(Q)mkdir -p $(PREFIX_ROOT)/share/man/man1
$(Q)$(call INSTALL,$(HB),$(PHB),rustc$(X))
$(Q)$(call INSTALL,$(HB),$(PHB),cargo$(X))
+ $(Q)$(call INSTALL,$(HB),$(PHB),rustdoc$(X))
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(CORELIB_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(STDLIB_GLOB))
CARGO_CRATE := $(S)src/cargo/cargo.rc
CARGO_INPUTS := $(wildcard $(S)src/cargo/*rs)
+# Rustdoc, the documentation tool
+RUSTDOC_CRATE := $(wildcard $(S)src/rustdoc/.rc)
+RUSTDOC_INPUTS := $(wildcard $(S)src/rustdoc/*.rs)
+
# FIXME: These are only built for the host arch. Eventually we'll
# have tools that need to built for other targets.
define TOOLS_STAGE_N
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
+$$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X): \
+ $$(RUSTDOC_CRATE) $$(RUSTDOC_INPUTS) \
+ $$(TSREQ$(1)_T_$(4)_H_$(3)) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_CORELIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_STDLIB) \
+ $$(TLIB$(1)_T_$(4)_H_$(3))/$$(CFG_LIBRUSTC)
+ @$$(call E, compile_and_link: $$@)
+ $$(STAGE$(1)_T_$(4)_H_$(3)) -o $$@ $$<
+
+$$(HBIN$(2)_H_$(4))/rustdoc$$(X): \
+ $$(TBIN$(1)_T_$(4)_H_$(3))/rustdoc$$(X) \
+ $$(HSREQ$(2)_$(4))
+ @$$(call E, cp: $$@)
+ $$(Q)cp $$< $$@
+
endef
$(foreach host,$(CFG_TARGET_TRIPLES), \