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