diff --git a/configure b/configure index 683c7fd05639..3673a20738c9 100755 --- a/configure +++ b/configure @@ -526,7 +526,8 @@ VAL_OPTIONS="" opt valgrind 0 "run tests with valgrind (memcheck by default)" opt helgrind 0 "run tests with helgrind instead of memcheck" opt valgrind-rpass 1 "run rpass-valgrind tests with valgrind" -opt docs 1 "build documentation" +opt docs 1 "build standard library documentation" +opt compiler-docs 0 "build compiler documentation" opt optimize 1 "build optimized rust code" opt optimize-cxx 1 "build optimized C++ code" opt optimize-llvm 1 "build optimized LLVM" diff --git a/mk/crates.mk b/mk/crates.mk index 13e4d8cdeb82..7494a9c5f989 100644 --- a/mk/crates.mk +++ b/mk/crates.mk @@ -122,17 +122,29 @@ ONLY_RLIB_rustc_bitflags := 1 # You should not need to edit below this line ################################################################################ +# On channels where the only usable crate is std, only build documentation for +# std. This keeps distributions small and doesn't clutter up the API docs with +# confusing internal details from the crates behind the facade. + +ifeq ($(CFG_RELEASE_CHANNEL),stable) +DOC_CRATES := std +else +ifeq ($(CFG_RELEASE_CHANNEL),beta) +DOC_CRATES := std +else DOC_CRATES := $(filter-out rustc, \ - $(filter-out rustc_trans, \ - $(filter-out rustc_typeck, \ - $(filter-out rustc_borrowck, \ - $(filter-out rustc_resolve, \ - $(filter-out rustc_driver, \ - $(filter-out rustc_privacy, \ - $(filter-out rustc_lint, \ - $(filter-out log, \ - $(filter-out getopts, \ - $(filter-out syntax, $(CRATES)))))))))))) + $(filter-out rustc_trans, \ + $(filter-out rustc_typeck, \ + $(filter-out rustc_borrowck, \ + $(filter-out rustc_resolve, \ + $(filter-out rustc_driver, \ + $(filter-out rustc_privacy, \ + $(filter-out rustc_lint, \ + $(filter-out log, \ + $(filter-out getopts, \ + $(filter-out syntax, $(CRATES)))))))))))) +endif +endif COMPILER_DOC_CRATES := rustc rustc_trans rustc_borrowck rustc_resolve \ rustc_typeck rustc_driver syntax rustc_privacy \ rustc_lint diff --git a/mk/docs.mk b/mk/docs.mk index f7ab86d3a29b..d297055ba9ac 100644 --- a/mk/docs.mk +++ b/mk/docs.mk @@ -259,7 +259,10 @@ doc/$(1)/index.html: $$(LIB_DOC_DEP_$(1)) doc/$(1)/ endef $(foreach crate,$(DOC_CRATES),$(eval $(call DEF_LIB_DOC,$(crate),DOC_TARGETS))) -$(foreach crate,$(COMPILER_DOC_CRATES),$(eval $(call DEF_LIB_DOC,$(crate),COMPILER_DOC_TARGETS))) + +ifdef CFG_COMPILER_DOCS + $(foreach crate,$(COMPILER_DOC_CRATES),$(eval $(call DEF_LIB_DOC,$(crate),COMPILER_DOC_TARGETS))) +endif ifdef CFG_DISABLE_DOCS $(info cfg: disabling doc build (CFG_DISABLE_DOCS))