about summary refs log tree commit diff
path: root/mk/install.mk
AgeCommit message (Collapse)AuthorLines
2017-02-06Delete the `mk` folderAlex Crichton-138/+0
This commit deletes the old build system located in the `mk` folder as it's now been obsoleted for two cycles and is replaced by rustbuild.
2016-09-08Allow setting --docdirorbea-1/+2
2016-02-25mk: Move disable-jemalloc logic into makefilesAlex Crichton-2/+2
The `--disable-jemalloc` configure option has a failure mode where it will create a distribution that is not compatible with other compilers. For example the nightly for Linux will assume that it will link to jemalloc by default as an allocator for executable crates. If, however, a standard library is used which was built via `./configure --disable-jemalloc` then this will fail because the jemalloc crate wasn't built. While this seems somewhat reasonable as a niche situation, the same mechanism is used for disabling jemalloc for platforms that just don't support it. For example if the rumprun target is compiled then the sibiling Linux target *also* doesn't have jemalloc. This is currently a problem for our cross-build nightlies which build many targets. If rumprun is also built, it will disable jemalloc for all targets, which isn't desired. This commit moves the platform-specific disabling of jemalloc as hardcoded logic into the makefiles that is scoped per-platform. This way when configuring multiple targets **without the `--disable-jemalloc` option specified** all targets will get jemalloc as they should.
2016-02-01Revert "mk: fix some undefined variable warnings"Alex Crichton-1/+1
This reverts commit d03712977d7c913044f2b863269c4491d7fa7c36.
2016-02-01mk: fix some undefined variable warningsTamir Duberstein-1/+1
Some of this is scary stuff. Probably time to lint against this. Found with `make --warn-undefined-variables`.
2015-12-07Fix typo in make varMarkus Unterwaditzer-7/+7
2015-10-15mk: Split out a standard library packageAlex Crichton-4/+14
This commit splits out the standard library from the current 'rustc' package into a new 'rust-std' package. This is the basis for the work on easily packaging compilers that can cross-compile to new targets.
2015-04-08configure: Remove obsolete --disable-verify optionBrian Anderson-8/+2
rust-installer never verifies.
2015-02-10Remove duplicated configuration for androidEunji Jeong-3/+2
2015-02-10Add one more depth on android test directory for multiple targetsEunji Jeong-1/+1
2015-02-10Make aarch64-linux-android check with real targetEunji Jeong-3/+6
2015-01-03Fix `make install` dependenciesAndrea Canciani-6/+2
After 8b3c67690c4747b9fadfef407e6261524fb03f8a the `make install` command fails if docs are not disabled through CFG_DISABLE_DOCS, because now the `install` target uses ../../tmp/dist/$(DOC_PKG_NAME)-$(CFG_BUILD)/install.sh In 714a2c678c5a5d1fdb9d6de3d515279120305441 the `prepare_install` target wwas changed to conditionally depend also on the doc archive, but did not modify `prepare_uninstall`. Instead of explicitly depending on dist/$(PKG_NAME)-$(CFG_BUILD).tar.gz, the `prepare_[un]install` targets now depend on `dist-tar-bins`, which packages the appropriate dist archives depending on the configuration.
2014-12-31fix "make install"David Creswick-0/+4
There seems to be a problem introduced by 8b3c67690c4747b9fadfef407e6261524fb03f8a that causes "make install" to fail when the build is not configured to skip doc building.
2014-12-29Install copyright information and package docsBrian Anderson-0/+6
This distributes docs in a separate package called rust-docs. The rust-packaging project will combine it with Rust and Cargo into a single installer in a variety of formats.
2014-12-11Use rust-installer for installationBrian Anderson-2/+2
This is just a refactoring of the current installer so that Rust and Cargo use the same codebase. cc #16456
2014-09-04Avoid building as root with `sudo make install`Kevin Ballard-4/+22
When running `sudo make install`, we only want to run the actual install as root, the building of the documentation and the distribution folder should happen as the non-root user. Related to #13728.
2014-07-24auto merge of #15922 : poiru/rust/remove-whitespace-mk-backslash, r=brsonbors-3/+3
The alignment of the line continuation backslashes is rather inconsistent. These commits solve that by removing the extra whitespace and adding a space where there previously was none. An alternative solution would be to fix the alignment.
2014-07-23mk: Add space before line continuation backslashBirunthan Mohanathas-3/+3
2014-07-22Revert "Made 'make install' include libs for additional targets"Brian Anderson-2/+2
This reverts commit 87334fb05ff2a665419241d877c13d6c4770a3f4. Conflicts: mk/install.mk
2014-07-10More robust install.sh: do runnability test in fresh subdirectory.Felix S. Klock II-4/+6
Fix #15558.
2014-04-08Made 'make install' include libs for additional targetsDmitry Promsky-2/+2
2014-03-30mk: Don't touch config.tmp or tmp/dist as root. Closes #13190Brian Anderson-2/+2
When running `make install` we are touching these files that can't then be removed later.
2014-03-28mk: Restore DESTDIRBrian Anderson-2/+2
2014-03-28install: Verify that installed compiler runsBrian Anderson-1/+8
Another sanity check. Can be disabled in `install.sh` via `--disable-verify` and `configure` with `--disable-verify-install`.
2014-03-27mk: Fix syntax error in installation targetBrian Anderson-1/+1
2014-03-26install: name the bundled manifest 'manifest.in'. CleanupBrian Anderson-0/+2
The installed manifest is a different file, so they should have different names. This should prevent various wierd conflicts in the future.
2014-03-25install: Support --libdir and --mandir correctlyBrian Anderson-2/+2
This adds a hack to rustc to make it find the library directory regardless of whether it is named lib/lib64/lib32.
2014-03-25Revert "Revert "mk: Run 'make install' through install.sh""Brian Anderson-60/+7
This reverts commit d62163188a21e5afc3d0f476eaf7856d91f715b2. Conflicts: mk/install.mk
2014-03-25mk: Fix 'make install'. Closes #13128Brian Anderson-1/+3
2014-03-19mk: Simplify how prepare.mk, install.mk, and dist.mk deal with stagesBrian Anderson-2/+1
The only stage that can be installed from is 2 everywhere but windows, 3 on windows. Closes #12799
2014-02-16Address review feedbackBrian Anderson-4/+4
2014-02-15mk: Base the install target on prepare.mkBrian Anderson-137/+24
2014-02-11Build compiler-rt and link it to all crates, similarly to morestack.Vadim Chugunov-0/+2
2014-01-29auto merge of #11903 : alexcrichton/rust/android-test-deps, r=huonwbors-10/+7
This changes android testing to upload *all* target crates rather than just a select subset. This should unblock #11867 which is introducing a libglob dependency in testing.
2014-01-29Fix android test depsAlex Crichton-10/+7
This changes android testing to upload *all* target crates rather than just a select subset. This should unblock #11867 which is introducing a libglob dependency in testing.
2014-01-28Add a missing backslash to a makefileAlex Crichton-8/+1
Closes #11874
2014-01-26Refactor the build system for easily adding cratesAlex Crichton-69/+62
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.
2014-01-10fix uninstall target with configurable rustlib directoryTed Horst-1/+1
2014-01-07Make CFG_LIBDIR configurable. Fixes #5223Jan Niklas Hasse-2/+2
2014-01-05Make rustc's own lib directory configurable and change the default to ↵Jan Niklas Hasse-1/+1
rustlib. Fixes #3319
2013-12-24make: Add all the make support for lib{native,green}Alex Crichton-0/+15
This should now begin distribution of lib{green,native} in rlib/dylib format as well as building them as part of the normal build process.
2013-12-06Link rustllvm statically, and distribute a static snapshotAlex Crichton-3/+0
In order to keep up to date with changes to the libraries that `llvm-config` spits out, the dependencies to the LLVM are a dynamically generated rust file. This file is now automatically updated whenever LLVM is updated to get kept up-to-date. At the same time, this cleans out some old cruft which isn't necessary in the makefiles in terms of dependencies. Closes #10745 Closes #10744
2013-12-01*Actually* fix `make install` with rlibsAlex Crichton-3/+0
Turns out that we only want to install the target rlibs, not the host rlibs. I had it backwards the first time, then mixed up the second time, but this time should get it right. There's no need for host rlib files because none of them are needed at runtime.
2013-11-30Fix make install to install rlib filesAlex Crichton-0/+6
It was only copying the host files, not the target rlib files.
2013-11-29Statically link librustrt to libstdAlex Crichton-6/+0
This commit alters the build process of the compiler to build a static librustrt.a instead of a dynamic version. This means that we can stop distributing librustrt as well as default linking against it in the compiler. This also means that if you attempt to build rust code without libstd, it will no longer work if there are any landing pads in play. The reason for this is that LLVM and rustc will emit calls to the various upcalls in librustrt used to manage exception handling. In theory we could split librustrt into librustrt and librustupcall. We would then distribute librustupcall and link to it for all programs using landing pads, but I would rather see just one librustrt artifact and simplify the build process. The major benefit of doing this is that building a static rust library for use in embedded situations all of a sudden just became a whole lot more feasible. Closes #3361
2013-11-29Add generation of static libraries to rustcAlex Crichton-0/+6
This commit implements the support necessary for generating both intermediate and result static rust libraries. This is an implementation of my thoughts in https://mail.mozilla.org/pipermail/rust-dev/2013-November/006686.html. When compiling a library, we still retain the "lib" option, although now there are "rlib", "staticlib", and "dylib" as options for crate_type (and these are stackable). The idea of "lib" is to generate the "compiler default" instead of having too choose (although all are interchangeable). For now I have left the "complier default" to be a dynamic library for size reasons. Of the rust libraries, lib{std,extra,rustuv} will bootstrap with an rlib/dylib pair, but lib{rustc,syntax,rustdoc,rustpkg} will only be built as a dynamic object. I chose this for size reasons, but also because you're probably not going to be embedding the rustc compiler anywhere any time soon. Other than the options outlined above, there are a few defaults/preferences that are now opinionated in the compiler: * If both a .dylib and .rlib are found for a rust library, the compiler will prefer the .rlib variant. This is overridable via the -Z prefer-dynamic option * If generating a "lib", the compiler will generate a dynamic library. This is overridable by explicitly saying what flavor you'd like (rlib, staticlib, dylib). * If no options are passed to the command line, and no crate_type is found in the destination crate, then an executable is generated With this change, you can successfully build a rust program with 0 dynamic dependencies on rust libraries. There is still a dynamic dependency on librustrt, but I plan on removing that in a subsequent commit. This change includes no tests just yet. Our current testing infrastructure/harnesses aren't very amenable to doing flavorful things with linking, so I'm planning on adding a new mode of testing which I believe belongs as a separate commit. Closes #552
2013-11-02auto merge of #10229 : brson/rust/warnings, r=thestingerbors-1/+1
In Rust we don't like capital letters.
2013-11-01Fix installation with DESTDIRBrian Anderson-9/+9
2013-11-01Use consistent capitalization in makefile errorsBrian Anderson-1/+1
In Rust we don't like capital letters.
2013-10-31Fix missing parenthesis in a previous substitution '$(PREFIX_ROOT)' to ↵Olivier Saut-4/+4
'$(CFG_MANDIR' on 1c4a348b072a