]> git.lizzy.rs Git - rust.git/blobdiff - Makefile.in
librustc: Stop desugaring `for` expressions and translate them directly.
[rust.git] / Makefile.in
index f83ddf76eefa4454d0b5e4dae4b3b11b78165b7b..5683eb7ba06af964def14409de5347f4872ffe3c 100644 (file)
 #
 # 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`
 #
 # </help>
 #
-# <hottips>
+# <tips>
 #
 # # 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`
 #   * `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`
 #
-# </hottips>
+# </tips>
 #
-# <nittygritty>
+# <nitty-gritty>
 #
 # # The Rust Build System
 #
 # 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.
 #
-# </nittygritty>
+# </nitty-gritty>
 #
 
 ######################################################################
@@ -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))),)