Commit Graph

243 Commits

Author SHA1 Message Date
Daniel Brooks 2049d1f05e only require git if the source looks like it was checked out from git, otherwise don't attempt to manage the submodules 2012-03-08 12:57:40 -08:00
Daniel Brooks 11b403d513 it'll fail if you don't have git, so mark that as required 2012-03-08 12:57:39 -08:00
Brian Anderson 8a32f8efe5 build: Add --enable-helgrind option 2012-03-02 14:08:02 -08:00
Graydon Hoare cccb0fbf72 Un-silence one too many greps. 2012-02-28 22:39:46 -08:00
Graydon Hoare 8c337026b5 configure: correct submodule code, only reconfigure LLVM when changed. 2012-02-28 22:39:45 -08:00
Graydon Hoare 341f414220 configure: quiet some greps. 2012-02-28 22:39:44 -08:00
Graydon Hoare 1c14d36e72 configure: chmod the right artifact and cp / mv with -f to overwrite. 2012-02-28 22:39:43 -08:00
Graydon Hoare 418c6bcec3 Only modify Makefile and config.mk if they change during configure. 2012-02-28 12:08:26 -08:00
Niko Matsakis bceea8339a change def's that are always local to use node_id, add --inline opt 2012-02-28 06:31:28 -08:00
Graydon Hoare 5fc2e9e9ab support a fast-make mode that avoids globbing into llvm and libuv 2012-02-10 12:07:11 -08:00
Graydon Hoare c485301d21 Update libuv. 2012-02-02 17:39:47 -08:00
Graydon Hoare 3a5c75eff9 Tidy up redundant code in configure relating to valopt and triples. 2012-01-30 16:29:13 -08:00
Graydon Hoare 0bf992969f Merge pull request #1669 from graydon/inno-setup
Add Inno Setup installer script rather than NSIS
2012-01-26 18:16:30 -08:00
Jyun-Yan You 5257a5c6c3 let clang build llvm 2012-01-26 11:44:16 -08:00
unknown fe57a7e582 Add Inno Setup installer script rather than NSIS 2012-01-25 16:02:53 -08:00
Jyun-Yan You c2bf9b7726 freebsd clang support 2012-01-24 11:48:36 -08:00
Brian Anderson 327c8bc733 build: Run tutorial tests 2012-01-20 19:56:06 -08:00
Graydon Hoare 0d7df062f4 Teach configure to search for multiple commands-with-similar-names. Add NaturalDocs (vs. naturaldocs). 2012-01-19 13:10:14 -08:00
Brian Anderson 17fef6caaf configure: Don't use pandoc < 1.8. Closes #1513 2012-01-18 14:32:37 -08:00
Graydon Hoare 193279daa2 Refactor the doc building rules a bit, sensitize them to the presence or absence of xetex and luatex (for now). 2012-01-18 14:14:42 -08:00
Graydon Hoare af4e18d980 Improve the node-doc-building logic. 2012-01-17 14:46:51 -08:00
Grahame Bowland 9be247b9b8 build the tutorial if node.js is available 2012-01-17 23:56:20 +08:00
Haitao Li ef0775fec8 build: Check and set perf --log-fd option
Linux perf tool version 3.2 introduced a new option "--log-fd" defaults
to 0, which leads to error "Failed opening logfd: Illegal argument" when
executing perf tests.

Set logfd to stderr to let perf test work.

Issue #1538
2012-01-17 10:48:46 +08:00
Brian Anderson 6860dcc958 Register snapshots 2012-01-15 13:50:37 -08:00
Brian Anderson 9e40e43e74 build: Build libraries in the bin directory on win32 2012-01-14 13:43:04 -08:00
Reuben Morais 04dd610053 Fix clang option in configure script 2012-01-14 02:41:12 -02:00
Brian Anderson dcac427795 Revert "build: Build libraries in the bin directory on win32"
This reverts commit 23e0d16b5f.
2012-01-12 20:06:45 -08:00
Brian Anderson 6becf517e3 Revert "Register snapshots"
This reverts commit 17d504e0a9.
2012-01-12 20:06:30 -08:00
Brian Anderson d95de0dd95 Merge remote-tracking branch 'brson/win32' 2012-01-12 19:25:27 -08:00
Graydon Hoare fefdb63c4c Begin shift over to using pandoc, markdown and llnextgen for reference manual. Fix man page URL while at it. 2012-01-12 19:10:30 -08:00
Brian Anderson 17d504e0a9 Register snapshots 2012-01-12 17:16:31 -08:00
Brian Anderson 23e0d16b5f build: Build libraries in the bin directory on win32 2012-01-12 13:59:05 -08:00
Brian Anderson f921e2e3d1 Revert "build: Build libraries in the bin directory on win32"
This reverts commit c00ec5f9c9.
2012-01-11 14:13:11 -08:00
Brian Anderson c00ec5f9c9 build: Build libraries in the bin directory on win32 2012-01-11 13:57:11 -08:00
Reuben Morais d593b74469 Allow Clang 3.1 2012-01-08 23:53:26 -02:00
Brian Anderson 90c07f38c1 configure: Disable git submodule management when there is no .git dir
Tarballs for distribution will not have a git repo.
2012-01-07 14:26:54 -08:00
Graydon Hoare c74d5ce046 Stop configure early if git or subconfigures fail. 2012-01-05 19:00:37 -08:00
User Jyyou a59c4b1b47 freebsd support 2012-01-01 20:18:55 -08:00
Stefan Plantikow 9c4b3c26f0 Changes to configure (Fix for #1291) 2011-12-14 01:46:08 +01:00
Austin Seipp 638b51488f Disable unused features in the LLVM build.
Issue #1274 - should make the build a wee bit faster.
2011-12-09 19:27:18 -08:00
Graydon Hoare 447414f007 Establish 'core' library separate from 'std'. 2011-12-06 12:13:04 -08:00
Brian Anderson f1eb7ce013 configure: LLVM 3.0 no longer supported 2011-12-04 15:01:41 -08:00
Niko Matsakis 9acc2bfcad add --host-triple 2011-12-02 19:05:49 -08:00
Niko Matsakis 50e2e07255 use 64-bit as host if on 64-bit CPU 2011-11-30 15:44:35 -08:00
Niko Matsakis 21ffc55e57 update io test to use tmp directory, and update configure to create it 2011-11-29 12:51:09 -08:00
Niko Matsakis c9061733c6 misc fixes 2011-11-29 12:51:07 -08:00
Niko Matsakis 9c12c7c7f5 basic builds function 2011-11-29 12:51:07 -08:00
Brian Anderson 8d7863fad0 configure: Add --disable-manage-submodules switch
This will keep configure/make from updating submodules, which becomes
very annoying when you are working on LLVM
2011-11-28 18:01:42 -08:00
Brian Anderson d2199e8716 Various fixes for x86_64 on linux
Configure LLVM correctly, use the right data layout, add the readlink
function back, fix C constants, etc.
2011-11-16 15:24:56 -08:00
Niko Matsakis 895822a61c more consistent naming convention 2011-11-16 15:16:41 -08:00
Niko Matsakis cda2e07c37 reverse sense of check 2011-11-16 15:16:41 -08:00
Niko Matsakis 1456a23f72 make CFG_OPTIMIZE_CXX an option 2011-11-16 15:16:41 -08:00
Niko Matsakis b55b8dc8bc add default for --debug-llvm option 2011-11-16 15:16:41 -08:00
Niko Matsakis d77968dd7c finish up the shim approach 2011-11-16 15:16:40 -08:00
Niko Matsakis 34a5074432 fix handling of target-triples: use a comma to separate hosts 2011-11-08 21:11:47 -08:00
Brian Anderson 81a93eff93 configure: Handle absolute source paths when configuring LLVM 2011-11-05 13:23:11 -07:00
Brian Anderson c0d220362f configure: Quote the git command 2011-11-05 13:23:11 -07:00
Brian Anderson 2e54a76737 Cleanup configure script 2011-11-05 13:23:11 -07:00
Brian Anderson 8e14d188de configure: Use i686 as the CPU type instead of i386
Seems to prevent the warning about linking bitcode with different triples.
2011-11-05 13:23:11 -07:00
Brian Anderson 4b6585c924 Parameterize the LLVM build over the target triples 2011-11-05 13:23:11 -07:00
Brian Anderson a4e1a438f6 Cleanup LLVM build rules after rebase onto x64 changes 2011-11-05 13:23:11 -07:00
Brian Anderson 225f50ea96 Begin remove old LLVM configuration code 2011-11-05 13:23:11 -07:00
Brian Anderson a0ff3db258 LLVM build cleanup 2011-11-05 13:23:11 -07:00
Brian Anderson e47f410536 Use LLVM directly from the build directory
This will cut out the few seconds it takes to run make install.
2011-11-05 13:23:10 -07:00
Brian Anderson 26bb6716ef Tie the LLVM build into ours 2011-11-05 13:23:10 -07:00
Brian Anderson bd67c70163 Call LLVM's configure script from ours 2011-11-05 13:23:10 -07:00
Brian Anderson 1a05274738 Add submodule management to configure script 2011-11-05 13:23:10 -07:00
Brian Anderson 7c3616057d configure: change --only-gcc to --enable-clang to make clang opt-in 2011-11-03 12:01:31 -07:00
Brian Anderson 1deaf97002 configure: cleanup 2011-11-02 16:26:22 -07:00
Brian Anderson 4151a3a67f configure: abort early on --help 2011-11-02 16:25:22 -07:00
Elly Jones 098cf43761 configure: support --target-triples and --only-gcc.
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-11-02 19:19:33 -04:00
Brian Anderson 0003a50e33 Change the error message when no LLVM is found 2011-11-02 16:10:40 -07:00
Elly Jones 234a4e58bd configure: add --llvm-root
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-11-02 16:10:40 -07:00
Elly Jones a26554d97b configure: add support for --prefix=<prefix>
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-11-02 16:10:40 -07:00
Niko Matsakis 2bfa72ea42 virtualize rustllvm construction per target triple 2011-11-02 14:14:20 -07:00
Niko Matsakis 54af489e6f virtualize the runtime per target triple. 2011-11-02 14:14:20 -07:00
Niko Matsakis 93781297bf enable building with different target arch 2011-11-02 14:13:22 -07:00
Niko Matsakis 20946e6970 start going back to an i386 build 2011-11-02 14:13:22 -07:00
Brian Anderson e0abcf3cd5 Document CFG_ONLY_GCC 2011-10-29 14:14:30 -07:00
Austin Seipp 83413b59a0 Prioritize GCC over Clang if CFG_ONLY_GCC is set.
On OS X I'd rather just be able to use GCC instead of the clang
builds I use/play with.
2011-10-29 14:11:23 -07:00
Brian Anderson 0c6200743c Add std docs to the build process 2011-10-27 14:59:22 -07:00
Brian Anderson 7ae757583a Begin documenting std and add doc generation using naturaldocs
Naturaldocs isn't really that great but it seems easier to get
something working than with doxygen, for which we would need to
convert rust code to something C++ish. We probably want to just
write a rustdoc utility at some point.
2011-10-25 18:01:52 -07:00
Austin Seipp 5ccf372755 Make sure $CFG_LLVM_CONFIG is set to $CFG_LLVM_ROOT/bin/llvm-config
On my machine I have two LLVM builds, one of regular HEAD and one
for Rust in ~/rust-llvm - by default CFG_LLVM_CONFIG is set to
/usr/local/bin/llvm-config which is wrong, because the probe for it
initially happens earlier in configure and succeeds (so putvar is called.)

This causes it to be emitted twice into the Makefile but the second
instance wins.
2011-10-23 01:07:40 -05:00
Brian Anderson d77996a30f Add LLVM 3.1svn to supported versions 2011-10-15 15:53:18 -07:00
Brian Anderson 6e654564db Lots of build system cleanup and documentation
This splits mk/stageN.mk into host.mk and target.mk and makes
the build rules somewhat simpler - there's no more building from stageN
into stageN+1; instead we always build from stageN(host) to
stageN(target) then promote from stageN(target) to stageN+1(host).

Add a big honkin explaination right at the top of Makefile.in
2011-10-02 00:57:53 -07:00
Brian Anderson 9563c17d78 Have 'make install' do something close to useful
We'll copy the files to the right location. Still need to rpath.

Issue #529
2011-09-30 22:47:40 -07:00
Brian Anderson 821dd6c02c Change the directory for target libs
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Brian Anderson 76e8dd248c Fix configure script to use valgrind again 2011-09-26 16:17:22 -07:00
Erick Tryzelaar 5f066e06b9 Update to libuv commit 3ca382.
This patch changes libuv's gyp build system to
make it's own makefiles. To generate them for rust,
run these commands. They requires python 2.x to
work:

$ mkdir -p src/rt/libuv/build
$ svn co http://gyp.googlecode.com/svn src/rt/libuv/build/gyp
$ ./etc/src/gyp_uv
2011-09-23 16:53:06 -07:00
Graydon Hoare 18c6cc6371 More steps to arch-specific target libs (#474) 2011-09-23 10:50:16 -07:00
Graydon Hoare 13215809a8 Expand our own config.guess-like logic in configure, rather than only asking LLVM. We have to decide some things before we get an LLVM to ask. 2011-09-21 11:24:59 -07:00
Graydon Hoare 68d50b5928 Add target_triple to session::options. Use host triple by default, accept --target on command line. 2011-09-21 08:46:44 -07:00
Graydon Hoare d5b2d62b20 Add build-system mechanisms for running benchmarks under 'perf'. 2011-09-13 15:06:41 -07:00
Graydon Hoare 7da64ae461 Munge libuv makefiles sufficiently to build out of tree. 2011-08-05 11:57:07 -07:00
Patrick Walton ad925955d8 build: Don't error out if clang is too old. Instead, build with GCC. 2011-08-05 09:25:27 -07:00
Brian Anderson 0fbb6782bb Add dedicated pretty-printer tests with new pp-exact directive
Add a new src/test/pretty directory to hold just source files for testing the
pretty-printer.

Add a new pp-exact directive. When this directive is followed by a file name
it specifies a file containing the output that the pretty-printer should
generate. When pp-exact is not followed by a filename it says that the file
should pretty-print as written.
2011-08-02 10:39:13 -07:00
Brian Anderson 2573fe7026 The Big Test Suite Overhaul
This replaces the make-based test runner with a set of Rust-based test
runners. I believe that all existing functionality has been
preserved. The primary objective is to dogfood the Rust test
framework.

A few main things happen here:

1) The run-pass/lib-* tests are all moved into src/test/stdtest. This
is a standalone test crate intended for all standard library tests. It
compiles to build/test/stdtest.stageN.

2) rustc now compiles into yet another build artifact, this one a test
runner that runs any tests contained directly in the rustc crate. This
allows much more fine-grained unit testing of the compiler. It
compiles to build/test/rustctest.stageN.

3) There is a new custom test runner crate at src/test/compiletest
that reproduces all the functionality for running the compile-fail,
run-fail, run-pass and bench tests while integrating with Rust's test
framework. It compiles to build/test/compiletest.stageN.

4) The build rules have been completely changed to use the new test
runners, while also being less redundant, following the example of the
recent stageN.mk rewrite.

It adds two new features to the cfail/rfail/rpass/bench tests:

1) Tests can specify multiple 'error-pattern' directives which must be
satisfied in order.

2) Tests can specify a 'compile-flags' directive which will make the
test runner provide additional command line arguments to rustc.

There are some downsides, the primary being that Rust has to be
functioning pretty well just to run _any_ tests, which I imagine will
be the source of some frustration when the entire test suite
breaks. Will also cause some headaches during porting.

Not having individual make rules, each rpass, etc test no longer
remembers between runs whether it completed successfully. As a result,
it's not possible to incrementally fix multiple tests by just running
'make check', fixing a test, and repeating without re-running all the
tests contained in the test runner. Instead you can filter just the
tests you want to run by using the TESTNAME environment variable.

This also dispenses with the ability to run stage0 tests, but they
tended to be broken more often than not anyway.
2011-07-24 15:34:34 -07:00
Graydon Hoare ad954fcecc Add an NSIS script for building a win32 installer. Closes #522. 2011-07-23 12:27:06 -07:00
Eric Holk 8f2254b8c2 Update configure script to make the task-perf output directory. 2011-07-22 18:45:34 -07:00
Rafael Ávila de Espíndola 88894b6f9c Add support for building with a static libstd for testing static crate support. 2011-07-20 16:02:36 -04:00
Brian Anderson a38ba01fa4 Move stdtest output files up a directory. Issue #428 2011-07-12 16:54:46 -07:00
Brian Anderson 2f7bc90514 Add a stdtest crate to hold the standard library tests
This will link to std and compile with the --test flag. Eventually the
run-pass/lib* tests will move here.

We could also put the std tests directly into the library and compile both a
library version and a test version, but I think this way will make for faster
builds.

Issue #428
2011-07-06 14:39:40 -07:00
Graydon Hoare 8fc51dfc65 Some work on reviving the mingw-cross build. Not working yet. 2011-06-27 11:53:28 -07:00
Brian Anderson 59c76a371f Move creation of stageN/lib directories to the configure script 2011-06-17 18:36:44 -07:00
Eric Holk d1857d30fc This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Graydon Hoare 0a8f9a394b Handle missing git in build env. 2011-06-13 14:45:49 -07:00
Eric Holk 193c1fac4c Enabling valgrind on OSX. It appears to work now. 2011-05-27 16:58:11 -07:00
Erick Tryzelaar 7341055b84 Make sure we're using clang >=3.0svn. 2011-05-20 12:32:44 -07:00
Erick Tryzelaar 134b61a317 Use CFG_LLVM_ROOT's llvm-config if it exists.
On some platform (OS X), llvm needs macros like
__STDC_LIMIT_MACROS defined in order to work, which is
normally defined in llvm-config. This patch modifies
the config to use CFG_LLVM_ROOT's llvm-config if it
exists, which fixes the compile failures.
2011-05-20 12:32:44 -07:00
Graydon Hoare 6a4a85f452 Re-export CFG_LLVM_ROOT to reconfiguring. 2011-05-18 12:00:33 -07:00
Graydon Hoare 6997adf763 Remove rustboot from the repository. 2011-05-13 18:38:28 -07:00
Graydon Hoare ae784df3ce Add support for 'T' transition snapshots, which are identical to S snapshots except they tell the makefile to stop at stage1. 2011-05-13 17:06:58 -07:00
Patrick Walton 11d22debef build: Search for clang++. Tinderboxes don't have it. 2011-05-09 10:16:56 -07:00
Patrick Walton 269550f673 build: Use clang to compile the runtime if available 2011-05-08 21:10:43 -07:00
Patrick Walton f8514d95d0 build: `uname -m` is a lie on 64-bit Darwin. Add a workaround. 2011-05-08 21:10:42 -07:00
Patrick Walton 518e2d249c build: Disable valgrind by default on the Mac. Our suppressions file doesn't even begin to cover the huge stream of errors that dyld generates. 2011-05-05 18:11:40 -07:00
Ralph Giles 0b2cfcaab9 Make ocamlc and optional dependency.
Since moving to a downloadable snapshot for stage0, it's been
possible to complete the build without compiling code written
in ocaml. However, the configure script still required it to
be present.

This commit changes detection failure to a non-fatal condition,
allowing the build to complete on systems without an ocaml
compiler.

An info message is also made conditional.
2011-05-05 11:02:16 -07:00
Patrick Walton 1299e74db3 build: Whitespace police in configure. Puts out burning tinderbox. 2011-05-04 19:14:19 -07:00
Patrick Walton 04f966f0bc build: Build intrinsics.bc 2011-05-04 18:29:08 -07:00
Graydon Hoare dbe5dc9768 Attempt to shift build to stage0-from-snapshots. 2011-05-03 11:34:44 -07:00
Graydon Hoare 73ba2dd4c7 Shift stages around; stage0/rustc depends on stage0/libstd.so. 2011-04-30 18:44:34 +00:00
Graydon Hoare cae703c0b1 Add support for --disable-optimize 2011-04-08 15:49:14 -07:00
Graydon Hoare 94731fa458 Add support for --enable-foo and --disable-foo flags to configure, that Makefile.in respects. 2011-03-30 04:45:09 +00:00
Graydon Hoare 10f336055c Auto-reconfigure on Makefile.in or configure change. 2011-03-25 10:29:45 -07:00
Graydon Hoare 9b617dab3c More bandaids for win32. 2011-03-23 16:30:26 -07:00
Patrick Walton 865a2812b6 build: Fix minor typo in "cp" output 2011-03-23 15:55:58 -07:00
Graydon Hoare e6969929db More miserable win32 configury fixes. Getting closer. 2011-03-23 14:35:28 -07:00
Graydon Hoare afa6960338 Silly typo. 2011-03-23 13:34:42 -07:00
Graydon Hoare f740747ea5 Guard texi2pdf on tex probe as well. OSX package systems are real permissive. 2011-03-23 13:33:15 -07:00
Graydon Hoare 9d925436f3 Someday I'll have a talk with the person who thought backslashes were wise in win32. 2011-03-23 13:28:41 -07:00
Graydon Hoare 7ac885ee8c Repair some fallout from pcwalton's last few build changes. 2011-03-21 23:06:42 -07:00
Patrick Walton 35951c92db Support CFG_LLVM_ROOT since CMake-built LLVM has no llvm-config 2011-03-21 18:08:57 -07:00
Graydon Hoare 7941b41b6a Include benchmark dirs in test build dirs. 2011-03-21 14:45:03 -07:00
Graydon Hoare d9dc070588 Fix typo. 2011-03-20 19:43:36 -07:00
Graydon Hoare 4691a75150 Begin porting rules for testsuite execution. 2011-03-20 01:12:26 -07:00
Graydon Hoare 65f6fcb23a Minor clarification. 2011-03-19 18:34:44 -07:00
Graydon Hoare 3e7ff65201 Truncate long lines in configure output. 2011-03-19 18:34:42 -07:00
Graydon Hoare 50c78313f2 Separate scan for commands used during configure. 2011-03-19 18:34:40 -07:00
Graydon Hoare b56f4540e9 Probe for python, git, makeinfo and texi2pdf, but not sed. 2011-03-19 18:34:38 -07:00
Graydon Hoare 5d5b63adb9 Probe for llvm libdir as well. 2011-03-19 18:34:37 -07:00
Graydon Hoare 7055c3928c Make the llvmext dir in builddir from configure. 2011-03-18 16:06:45 -07:00
Graydon Hoare 4c2245d842 Yet more painstaking configure/make logic. 2011-03-17 23:52:15 -07:00
Graydon Hoare 3ae9ca444c Move Makefile.in and configure to top level, BOOT_-qualify names, various tweaks. 2011-03-17 14:26:32 -07:00