X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=Makefile.in;h=5683eb7ba06af964def14409de5347f4872ffe3c;hb=caa564bea3d5f5a24d0797c4769184c1ea0abaff;hp=f83ddf76eefa4454d0b5e4dae4b3b11b78165b7b;hpb=334af011f01ceda1086d335231ada3363190b8a9;p=rust.git diff --git a/Makefile.in b/Makefile.in index f83ddf76eef..5683eb7ba06 100644 --- a/Makefile.in +++ b/Makefile.in @@ -19,29 +19,33 @@ # # First, start with one of these build targets: # -# * all - The default. Builds a complete, bootstrapped compiler. +# * all - The default. Build a complete, bootstrapped compiler. # `rustc` will be in `${target-triple}/stage2/bin/`. Run it # directly from the build directory if you like. This also # comes with docs in `doc/`. # # * check - Run the complete test suite # +# * clean - Clean the build repertory. It is advised to run this +# command if you want to build Rust again, after an update +# of the git repository. +# # * install - Install Rust. Note that installation is not necessary # to use the compiler. # # * uninstall - Uninstall the binaries # -# For hot tips on working with The Rust Build System, just: +# For tips on working with The Rust Build System, just: # -# type `make hot-tips` +# run `make tips` # # Otherwise # -# type `make` +# run `make` # # # -# +# # # # The Rust Build System Tip Line # @@ -52,8 +56,9 @@ # * check-$(crate) - Test a crate, e.g. `check-std` # * check-ref - Run the language reference tests # * check-docs - Test the documentation examples -# -# TODO: Lots more +# * check-stage$(stage)-$(crate) - Test a crate in a specific stage +# * check-stage$(stage)-{rpass,rfail,cfail,rmake,...} - Run tests in src/test/ +# * check-stage1-T-$(target)-H-$(host) - Run cross-compiled-tests # # Then mix in some of these environment variables to harness the # ultimate power of The Rust Build System. @@ -63,7 +68,7 @@ # # * `TESTNAME=...` - Specify the name of tests to run # * `CHECK_IGNORED=1` - Run normally-ignored tests -# * `NO_BENCH=1` - Don't run crate benchmarks (disable `--bench` flag) +# * `PLEASE_BENCH=1` - Run crate benchmarks (enable `--bench` flag) # # * `CFG_ENABLE_VALGRIND=1` - Run tests under valgrind # * `VALGRIND_COMPILE=1` - Run the compiler itself under valgrind @@ -71,7 +76,7 @@ # # * `NO_REBUILD=1` - Don't rebootstrap when testing std # (and possibly other crates) -# * `NO_MKFILE_DEPS=1` - Don rebuild for modified .mk files +# * `NO_MKFILE_DEPS=1` - Don't rebuild for modified .mk files # # * `SAVE_TEMPS=1` - Use `--save-temps` flag on all `rustc` invocations # * `ASM_COMMENTS=1` - Use `-Z asm-comments` @@ -79,19 +84,30 @@ # * `TIME_LLVM_PASSES=1` - Use `-Z time-llvm-passes` # * `TRACE=1` - Use `-Z trace` # +# # Rust recipes for build system success +# +# // Modifying libstd? Use this comment to run unit tests just on your change +# make check-stage1-std NO_REBUILD=1 NO_BENCH=1 +# +# // Added a run-pass test? Use this to test running your test +# make check-stage1-rpass TESTNAME=my-shiny-new-test +# +# // Having trouble figuring out which test is failing? Turn off parallel tests +# make check-stage1-std RUST_TEST_TASKS=1 +# # This is hardly all there is to know of The Rust Build System's # mysteries. The tale continues on the wiki[1][2]. # -# [1]: https://github.com/mozilla/rust/wiki/Note-build-system -# [2]: https://github.com/mozilla/rust/wiki/Note-testsuite +# [1]: https://github.com/rust-lang/rust/wiki/Note-build-system +# [2]: https://github.com/rust-lang/rust/wiki/Note-testsuite # -# Unless you feel like getting your hands dirty, then: +# If you really feel like getting your hands dirty, then: # -# don't type `make nitty-gritty` +# run `make nitty-gritty` # -# +# # -# +# # # # The Rust Build System # @@ -140,12 +156,12 @@ # libraries are managed and versioned without polluting the common # areas of the filesystem. # -# General rust binaries may stil live in the host bin directory; they +# General rust binaries may still live in the host bin directory; they # will just link against the libraries in the target lib directory. # # Admittedly this is a little convoluted. # -# +# # ###################################################################### @@ -161,10 +177,10 @@ include config.mk # Just a few macros used everywhere include $(CFG_SRC_DIR)mk/util.mk -# All crates and their dependencies -include $(CFG_SRC_DIR)mk/crates.mk # Reconfiguring when the makefiles or submodules change include $(CFG_SRC_DIR)mk/reconfig.mk +# All crates and their dependencies +include $(CFG_SRC_DIR)mk/crates.mk # Various bits of setup, common macros, and top-level rules include $(CFG_SRC_DIR)mk/main.mk # C and assembly components that are not LLVM @@ -186,16 +202,6 @@ include $(CFG_SRC_DIR)mk/llvm.mk # Secondary makefiles, conditionalized for speed ###################################################################### -# Source and binary distribution artifacts -ifneq ($(strip $(findstring dist,$(MAKECMDGOALS)) \ - $(findstring check,$(MAKECMDGOALS)) \ - $(findstring test,$(MAKECMDGOALS)) \ - $(findstring tidy,$(MAKECMDGOALS)) \ - $(findstring clean,$(MAKECMDGOALS))),) - CFG_INFO := $(info cfg: including dist rules) - include $(CFG_SRC_DIR)mk/dist.mk -endif - # Binary snapshots ifneq ($(strip $(findstring snap,$(MAKECMDGOALS)) \ $(findstring clean,$(MAKECMDGOALS))),) @@ -210,6 +216,7 @@ ifneq ($(strip $(findstring check,$(MAKECMDGOALS)) \ $(findstring tidy,$(MAKECMDGOALS))),) CFG_INFO := $(info cfg: including test rules) include $(CFG_SRC_DIR)mk/tests.mk + include $(CFG_SRC_DIR)mk/grammar.mk endif # Performance and benchmarking @@ -218,18 +225,34 @@ ifneq ($(findstring perf,$(MAKECMDGOALS)),) include $(CFG_SRC_DIR)mk/perf.mk endif -# Cleaning -ifneq ($(findstring clean,$(MAKECMDGOALS)),) - CFG_INFO := $(info cfg: including clean rules) - include $(CFG_SRC_DIR)mk/clean.mk +# Copy all the distributables to another directory for binary install +ifneq ($(strip $(findstring prepare,$(MAKECMDGOALS)) \ + $(findstring dist,$(MAKECMDGOALS)) \ + $(findstring install,$(MAKECMDGOALS))),) + CFG_INFO := $(info cfg: including prepare rules) + include $(CFG_SRC_DIR)mk/prepare.mk +endif + +# Source and binary distribution artifacts +ifneq ($(strip $(findstring dist,$(MAKECMDGOALS)) \ + $(findstring install,$(MAKECMDGOALS)) \ + $(findstring clean,$(MAKECMDGOALS))),) + CFG_INFO := $(info cfg: including dist rules) + include $(CFG_SRC_DIR)mk/dist.mk endif -# Installation from the build directory +# (Unix) Installation from the build directory ifneq ($(findstring install,$(MAKECMDGOALS)),) CFG_INFO := $(info cfg: including install rules) include $(CFG_SRC_DIR)mk/install.mk endif +# Cleaning +ifneq ($(findstring clean,$(MAKECMDGOALS)),) + CFG_INFO := $(info cfg: including clean rules) + include $(CFG_SRC_DIR)mk/clean.mk +endif + # CTAGS building ifneq ($(strip $(findstring TAGS.emacs,$(MAKECMDGOALS)) \ $(findstring TAGS.vi,$(MAKECMDGOALS))),)