about summary refs log tree commit diff
path: root/mk/tools.mk
AgeCommit message (Collapse)AuthorLines
2014-01-26Refactor the build system for easily adding cratesAlex Crichton-142/+0
Before this patch, if you wanted to add a crate to the build system you had to change about 100 lines across 8 separate makefiles. This is highly error prone and opaque to all but a few. This refactoring is targeted at consolidating this effort so adding a new crate adds one line in one file in a way that everyone can understand it.
2013-11-03Rename files to match current recommendations.Chris Morgan-2/+2
New standards have arisen in recent months, mostly for the use of rustpkg, but the main Rust codebase has not been altered to match these new specifications. This changeset rectifies most of these issues. - Renamed the crate source files `src/libX/X.rs` to `lib.rs`, for consistency with current styles; this affects extra, rustc, rustdoc, rustpkg, rustuv, std, syntax. - Renamed `X/X.rs` to `X/mod.rs,` as is now recommended style, for `std::num` and `std::terminfo`. - Shifted `src/libstd/str/ascii.rs` out of the otherwise unused `str` directory, to be consistent with its import path of `std::ascii`; libstd is flat at present so it's more appropriate thus. While this removes some `#[path = "..."]` directives, it does not remove all of them, and leaves certain other inconsistencies, such as `std::u8` et al. which are actually stored in `src/libstd/num/` (one subdirectory down). No quorum has been reached on this issue, so I felt it best to leave them all alone at present. #9208 deals with the possibility of making libstd more hierarchical (such as changing the crate to match the current filesystem structure, which would make the module path `std::num::u8`). There is one thing remaining in which this repository is not rustpkg-compliant: rustpkg would have `src/std/` et al. rather than `src/libstd/` et al. I have not endeavoured to change that at this point as it would guarantee prompt bitrot and confusion. A change of that magnitude needs to be discussed first.
2013-11-01Statically link sundown to librustdocAlex Crichton-1/+3
Closes #10103
2013-10-29support for GNU configure syntaxHeather-3/+3
2013-10-16remove the rusti commandDaniel Micay-43/+0
Closes #9818 Closes #9567 Closes #8924 Closes #8910 Closes #8392 Closes #7692 Closes #7499 Closes #7220
2013-10-10rust / build: Remove the `rust` toolTim Chevalier-46/+0
Sadly, there's a lack of resources for maintaining the `rust` tool, and we decided in the 2013-10-08 Rust team meeting that it's better to remove it altogether than to leave it in a broken state. This deletion is without prejudice. If a person or people appear who would like to maintain the tool, we will probably be happy to resurrect it! Closes #9775
2013-09-22Place *all* rustdoc output in doc/{crate}Alex Crichton-1/+2
2013-09-22rustdoc: Out with the old, in with the newAlex Crichton-45/+0
Removes old rustdoc, moves rustdoc_ng into its place instead (plus drops the _ng suffix). Also shreds all reference to rustdoc_ng from the Makefile rules.
2013-09-16Add the rustdoc_ng binary to the makefile rulesAlex Crichton-1/+9
Now rustdoc_ng will be built as both a binary and a library (using the same rules as all the other binaries that rust has). Furthermore, this will also start building rustdoc_ng unit tests (and running them).
2013-09-16Finish addition of rustdoc_ng to Makefiles.Felix S. Klock II-2/+26
2013-09-16Add rustdoc_ngCorey Richardson-0/+13
2013-08-17Deny warnings in stage1+ libsyntax/librustc/librustdoc/librusti/librustErick Tryzelaar-3/+3
2013-08-05Warn when using -o option on libraries. Closes #6554.Michael Sullivan-4/+4
2013-07-16Add dependence arc from running rustc to its libraries.Felix S. Klock II-16/+10
This commit fixes some oversights in the Makefile where rustc could be invoked without some of its dependencies yet in place. (I encountered the problem in practice; its not just theoretical.) As written in Makefile.in, $(STAGE$(1)_T_$(2)_H_$(3)) is the way one writes an invocation of rustc where $(1) is the stage number $(2) is the target triple $(3) is the host triple. (Other uses of the macro may plug in actual values or different parameters in for those three formal parameters.) When you have invocations of $(STAGE...), you need to make sure that its dependences are satisfied; otherwise, if someone is using `make -jN` for certain (large-ish) `N`, one can encounter situations where GNU make attempts to invoke `rustc` before it has actually copied some of its libraries into place, such as libmorestack.a, which causes a link failure when the rustc invocation attempts to link in those libraries. In this case, the main prerequisite to add is TSREQ$(1)_T_$(2)_H_$(3), which is described in Makefile.in as "Prerequisites for using the stageN compiler to build target artifacts" ---- In addition to adding the extra dependences on TSREQ..., I also replaced occurrences of the pattern: TSREQ$(1)_T_$(2)_H_$(3) $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_EXTRALIB_$(2)) with: SREQ$(1)_T_$(2)_H_$(3) which is equivalent to the above, as defined in Makefile.in ---- Finally, for the cases where TSREQ was missing in tests.mk, I went ahead and put in a dependence on SREQ rather than just TSREQ, since it was not clear to me how one could expect to compile those cases without stdlib and extralib. (It could well be that I should have gone ahead and done the same in other cases where I saw TSREQ was missing, and put SREQ in those cases as well. But this seemed like a good measure for now, without needing to tax my understanding of the overall makefile infrastructure much further.)
2013-07-09Fix #3225: Incorporate feedback from Graydon.Felix S. Klock II-49/+49
Namely, switched in many places to using GNU make provided functions for directory listing and text processing, rather than spawning a shell process to do that work. In the process of the revision, learned about Target-specific variables, which were very applicable to INSTALL_LIB (which, on a per-recipe basis, was always receiving the same actual arguments for its first two formal parameters in every invocation). http://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html (We might be able to make use of those in future refactorings.) ---- Also adds a cleanup pass to get-snapshot.py as well, since the same problem arises when we unpack libraries from the snapshot archive into a build directory with a prior snapshot's artifacts. (I put this step into the python script rather than the makefile because I wanted to delay the cleanup pass until after we have at least successfully downloaded the tarball. That way, if the download fails, you should not destroy the previous unarchived snapshot libraries and build products.) ---- Also reverted whitespace changes to minimize diff. I plan to put them back in in a dedicated commit elsewhere.
2013-07-07Fix #3225: Check for old Rust libraries when building and installing.Felix S. Klock II-42/+76
When building Rust libraries (e.g. librustc, libstd, etc), checks for and verbosely removes previous build products before invoking rustc. (Also, when Make variable VERBOSE is defined, it will list all of the libraries matching the object library's glob after the rustc invocation has completed.) When installing Rust libraries, checks for previous libraries in target install directory, but does not remove them. The thinking behind these two different modes of operation is that the installation target, unlike the build tree, is not under the control of this infrastructure and it is not up to this Makefile to decide if the previous libraries should be removed.
2013-07-04Bring compiletest/rustpkg/driver up to date on std vs coreAlex Crichton-1/+1
2013-06-27mk: Include all bins in the windows installBrian Anderson-1/+2
2013-06-25Rename all files with the 'rc' extensionAlex Crichton-7/+7
2013-06-15Remove the fuzzerBrian Anderson-39/+0
It is suffering from a bad case of megabitrot.
2013-05-22libstd: Rename libcore to libstd and libstd to libextra; update makefiles.Patrick Walton-7/+7
This only changes the directory names; it does not change the "real" metadata names.
2013-05-13Update make dependencies of librustAlex Crichton-0/+3
2013-03-02mk: cleanup - lib and executable suffix handlingYoung-il Choi-75/+75
2013-02-27mk: rewrite make filesYoung-il Choi-57/+57
2013-02-21mk: Split target triples into bulid triple + host triples + target triplesBrian Anderson-5/+5
For cross compiling to targets that don't want to build a compiler
2013-02-18Added rust convenience tool similar to go's go toolMarvin Löbel-0/+36
2013-02-15Rename cargo to rustpkg and start over freshZack Corr-16/+16
2012-12-10Reliciense makefiles and testsuite. Yup.Graydon Hoare-0/+10
2012-11-19Fix cargo and rustdoc inputsBrian Anderson-2/+2
2012-11-07Attempt to fix tools.mk under cross-compileBrian Anderson-57/+68
2012-11-07Fix install target for new librariesBrian Anderson-0/+12
2012-11-07Rename src/rustc to src/librustc. Use the driver crateBrian Anderson-6/+4
2012-11-04Librarify rusti, etc.Brian Anderson-7/+22
2012-11-04Merge remote-tracking branch 'brson/repl'Brian Anderson-0/+19
Conflicts: mk/install.mk src/rt/rustrt.def.in
2012-11-03library-ifying of tools - turning cargo, rustdoc, fuzzer, into libraries, as ↵Daniel Patterson-18/+61
per #3543
2012-10-30rusti: Remove linenoise module, add to rt, remove core::rlZack Corr-18/+18
2012-10-27rusti: Add linenoise, wrap into core::rl and add rusti REPL toolZack Corr-0/+19
Add Brian Leibig to AUTHORS.txt for REPL contributions
2012-03-15kill old serialization codeNiko Matsakis-20/+0
2012-03-09build: Fix some deps in tools.mkBrian Anderson-4/+4
2012-02-10put serializer into the build and encode full item pathsNiko Matsakis-0/+20
2012-01-15rustdoc: Add a crate fileBrian Anderson-1/+1
2011-12-20Add rustdoc to build.Graydon Hoare-0/+19
2011-12-06Establish 'core' library separate from 'std'.Graydon Hoare-0/+3
2011-12-01Build infra and minor build-enabling bugfixes for cargo.Graydon Hoare-0/+18
2011-11-29fix makefiles, add option to ignore changes in makefilesNiko Matsakis-3/+4
2011-11-29basic builds functionNiko Matsakis-21/+21
2011-11-02get the dependencies right so that all target archs are builtNiko Matsakis-2/+2
2011-11-02enable building with different target archNiko Matsakis-2/+2
2011-10-02Move compiletest to src/ and cleanup build rulesBrian Anderson-0/+50