Brian Anderson
3a6f3cf275
Move compiletest to src/ and cleanup build rules
2011-10-02 17:28:59 -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
f525f6e94c
Register new snapshots
2011-09-30 18:03:54 -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
b0560965c4
Refix the fuzzer make rule
2011-09-30 16:18:19 -07:00
Brian Anderson
f634eb2bfd
Make config of static stdlib more consistent with rest of makefile
...
I haven't tested if it actually works. Static stdlib is probably becoming
bitrotted.
2011-09-30 16:18:19 -07:00
Brian Anderson
38c67a4c8d
Abstract the build directories further in the makefiles
...
This defines variables for host bin and lib directories as well as all target
bin and lib directories then uses them everywhere.
2011-09-30 16:18:19 -07:00
Brian Anderson
ed106dd6ea
Fix some make variables in tests.mk
2011-09-30 16:18:19 -07:00
Brian Anderson
9f9666af6e
Tweak makefiles, change the way the fuzzer is built
...
Since librustc and the fuzzer depend on rustllvm, build them
like rustc, linking to libraries in lib instead of lib/rustc/$(target)
2011-09-29 22:58:34 -07:00
Brian Anderson
86ed9053da
Fix make all build rule
2011-09-29 22:58:34 -07:00
Brian Anderson
6306c81826
Fix a variety of things in the makefiles
...
Make tests and perf work again. Correctly get the host triple in rustc. Add
some FIXMEs about transitional code that needs to be removed.
2011-09-29 22:58:33 -07:00
Brian Anderson
7dbce103fb
Remove the redundant definition of STAGE in makefiles
2011-09-29 22:58:33 -07:00
Brian Anderson
ab8338fb5a
Make rustc's host triple agree with the build system's
2011-09-29 22:58:33 -07:00
Brian Anderson
0148daa058
Reorganize structure of build directory
...
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.
stageN/
bin - rustc lives here
lib - libraries that rustc needs
lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Brian Anderson
15e34deba3
Eliminate glue.o. Closes #990
2011-09-28 15:35:21 -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
d5b2d62b20
Add build-system mechanisms for running benchmarks under 'perf'.
2011-09-13 15:06:41 -07:00
Marijn Haverbeke
49e59e4ba7
Remove makefile CFG_USE_SNAP_LIBS_FOR_STAGE1 hack
...
It didn't work as intended, due to my lack of Makefile-fu
2011-08-29 14:31:32 +02:00
Marijn Haverbeke
c9c5ee252a
Implement non-internal ivecs
...
Vectors are now similar to our old, pre-internal vectors, except that
they are uniquely owned, not refcounted.
Their name should probably change too, then. I've renamed them to vec
in the runtime, will do so throughout the compiler later.
2011-08-29 09:07:53 +02:00
Marijn Haverbeke
9db4d9c6fd
Add CFG_USE_SNAP_LIBS_FOR_STAGE1 hack to makefiles
2011-08-29 09:01:27 +02:00
Brian Anderson
e3d3aaadaa
Don't run the stage0 compiler under valgrind when CFG_VALGRIND_COMPILE
...
There's nothing to be done for stage0 at this point.
2011-08-26 13:20:22 -07:00
Graydon Hoare
7da64ae461
Munge libuv makefiles sufficiently to build out of tree.
2011-08-05 11:57:07 -07:00
Marijn Haverbeke
863d121043
Revert 66c1ca857b
2011-07-27 15:44:21 +02:00
Marijn Haverbeke
f45524d0d4
This time, I'm almost sure it'll work
...
(Tinderbox workaround kludge)
2011-07-27 15:19:31 +02:00
Graydon Hoare
ad954fcecc
Add an NSIS script for building a win32 installer. Closes #522 .
2011-07-23 12:27:06 -07:00
Brian Anderson
6fc33163dc
Change the CFG_STDLIB_DEFAULT macro into a call that picks the correct stage
...
stageN/rustc depends on either stageN/libstd.so or stage(N-1)/lib/libstd.rlib
so CFG_STDLIB_DEFAULT needs to try harder to get the dependencies right.
2011-07-22 10:18:28 -07:00
Michael Sullivan
b01ecb10c3
Instantiate the stage0/lib/stdlib rules from stage0.mk instead of stageN.mk.
2011-07-21 12:15:36 -07:00
Rafael Ávila de Espíndola
ea371a3d37
Cleanup the library path now that we copy from stageN/lib to stageN+1/
2011-07-21 15:12:10 -04: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
2cb3a798ab
Build the fuzzer on Windows
2011-07-20 10:11:35 -07:00
Graydon Hoare
46b0aa5c5c
Enable fuzzer build *when not on windows*. We'll get to windows when we can.
2011-07-18 15:57:12 -07:00
Graydon Hoare
fafb42e6b1
Merge the stage1,2,3.mk files into a common definition in stageN.mk, more rearrangement of host/target libs.
2011-07-15 16:16:51 -07:00
Brian Anderson
d9cc4cb81b
Revert "Add fuzzer as part of 'all' standard build target so people know when it breaks."
...
Try to put out windows tinderbox. The librustc build rules don't seem to work
there yet.
This reverts commit ce6a77e24e
.
2011-07-14 19:42:12 -07:00
Graydon Hoare
ce6a77e24e
Add fuzzer as part of 'all' standard build target so people know when it breaks.
2011-07-14 17:27:37 -07:00
Graydon Hoare
39151f2ad8
Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.
2011-07-13 15:44:09 -07:00
Rafael Ávila de Espíndola
d151e18633
Move llvm out of stageN/lib so that the host building stage 1+ can
...
have a newer and incompatible llvm with the bots.
2011-07-11 16:31:47 -04:00
Brian Anderson
106d0f3b72
Complete the transition of glue.o to the lib directory
2011-07-07 17:19:24 -07:00
Brian Anderson
5fb9cad38d
Partially restore the fuzzer crate's build rules
...
Right now the stage1/fuzzer crate will build but it's not linked to librustc
because stage1/librustc won't link.
2011-07-01 10:43:21 -07:00
Graydon Hoare
df8161d44c
Correct make rules a bit.
2011-06-30 13:41:28 -07:00
Graydon Hoare
c796a8f24d
Re-enable tidy (it was broken) and fix various non-tidy things.
2011-06-29 15:14:55 -07:00
Graydon Hoare
0dc2aa3d09
Bit more work on mingw cross. Pending on other changes now (test combination, build artifact locations)
2011-06-28 11:18:34 -07:00
Graydon Hoare
8fc51dfc65
Some work on reviving the mingw-cross build. Not working yet.
2011-06-27 11:53:28 -07:00
Graydon Hoare
79ba31504b
Fixes to speed and clean up makefiles.
2011-06-25 19:23:32 +00:00
Rafael Ávila de Espíndola
164230dcb6
Finish the transition to having the std library in stageN/lib.
2011-06-20 13:38:11 -04:00
Brian Anderson
2752284f4b
Add TIME_LLVM_PASSES flag to the Makefile
2011-06-18 20:23:05 -07:00
Brian Anderson
bd93e1abcd
Register new snapshots. Update location of stage0's libstd
2011-06-17 18:19:37 -07:00
Rafael Ávila de Espíndola
fc31c90b5c
Break long lines.
2011-06-17 15:49:23 -04:00
Rafael Ávila de Espíndola
342dbd7abe
Put std in stageN/lib. This avoids windows trying to load stageN/std.ll when
...
stageN/runstc.exe is run.
2011-06-17 15:34:59 -04:00
Rafael Ávila de Espíndola
1dbc0442cd
Automatically add a -L to the directory the binary is in.
2011-06-17 13:36:08 -04:00
Rafael Ávila de Espíndola
32895ad990
Switch to using the rustc driver in the bootstrap process.
2011-06-16 14:43:35 -04:00
Graydon Hoare
0a8f9a394b
Handle missing git in build env.
2011-06-13 14:45:49 -07:00
Rafael Ávila de Espíndola
2c16be424b
Use main.o directly now that stage0 is ok with it.
2011-06-08 13:33:35 -04:00
Rafael Ávila de Espíndola
b1d6f12a05
Don't put a copy of main (the C one) in each binary we produce. This is a step
...
in getting a driver that works on all linux systems.
Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
2011-06-07 16:56:27 -04:00
Graydon Hoare
49742b86be
Add a 'make reformat' rule.
2011-06-01 12:01:55 -07:00
Tim Chevalier
60399ed198
Tell Makefile to look an extra level deep for dependencies
2011-05-19 11:40:16 -07:00
Rafael Ávila de Espíndola
96516e9ca2
One exit_task_glue to rule them all.
2011-05-18 15:43:48 -04:00
Graydon Hoare
6a4a85f452
Re-export CFG_LLVM_ROOT to reconfiguring.
2011-05-18 12:00:33 -07:00
Graydon Hoare
9ac29480ce
Be a bit noisier about being in a transition.
2011-05-16 15:14:58 -07:00
Brian Anderson
072305af13
Remove CFG_OCAMLC_OPT
2011-05-14 16:08:22 -04:00
Brian Anderson
cad8c734bd
Add a flag to run the compiler under valgrind
2011-05-14 00:15:40 -04: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
Brian Anderson
9a12ad62f6
Add targets for building rustc as a library
2011-05-10 21:31:14 -04:00
Brian Anderson
a5ea56c6f0
Introduce the fuzzer crate and make rules
2011-05-10 21:31:14 -04:00
Patrick Walton
404db4d9a1
build: Add a DEBUG flag that turns on -g
2011-05-10 17:50:39 -07:00
Graydon Hoare
1e03f00404
Use #env to bake a git revision string into rustc's --version output.
2011-05-06 11:21:51 -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
04f966f0bc
build: Build intrinsics.bc
2011-05-04 18:29:08 -07:00
Graydon Hoare
4f52ab52c1
Remove everything to do with rustboot from makefiles.
2011-05-03 15:56:00 -07:00
Graydon Hoare
d987b49a4b
More hacking on the snapshot system.
2011-05-02 23:37:52 -07:00
Graydon Hoare
5d1c8dbfa9
Add stage1, stage2 to Makefile.in default target, so tinderboxes notice breakage.
2011-05-02 17:56:33 -07:00
Graydon Hoare
40624e35d7
Start splitting up Makefile.in
2011-05-01 20:20:25 +00:00
Graydon Hoare
73ba2dd4c7
Shift stages around; stage0/rustc depends on stage0/libstd.so.
2011-04-30 18:44:34 +00:00
Patrick Walton
9aeb67987c
rustc: Temporarily add a switch and a corresponding makefile variable to disable typestate
2011-04-29 12:16:14 -07:00
Patrick Walton
648c4ae2ba
build: Add a TIME_PASSES=1 variable
2011-04-29 11:55:32 -07:00
Patrick Walton
c52fb52fbc
rustc: Remove the wrong-compiler warning; we're self-hosting now.
2011-04-29 10:23:53 -07:00
Marijn Haverbeke
6b11f6c46f
Change rustc to use GetOpts rather than ad-hoc command-line parsing
...
NOTE: all 'long' parameters now use a double dash, so --shared, rather
than gcc-style -shared.
2011-04-26 20:32:14 +02:00
Patrick Walton
3f77e7df6d
rustc: Add a SAVE_TEMPS option to the Makefile for use when debugging stage1 and test cases
2011-04-25 14:20:28 -07:00
Graydon Hoare
0cffc58225
Fix LD_LIBRARY_PATH on STAGE0, STAGE1 defs; define STAGE2.
2011-04-24 00:29:19 -07:00
Graydon Hoare
9eec7e3b15
Expansion of rules to cover stage1, stage2 in more cases. Fix typo in makefile.
2011-04-24 06:06:29 +00:00
Rafael Ávila de Espíndola
fac8cc3b06
Use -c in the Makefiles.
2011-04-22 15:15:52 -04:00
Graydon Hoare
186717fae0
Fix link commands for stage1 and stage2.
2011-04-21 06:07:10 +00:00
Graydon Hoare
c470cd2d66
Fix stage1 Makefile rules.
2011-04-20 15:24:04 +00:00
Graydon Hoare
d2bd07dcb0
Remove effect system from src.
2011-04-19 13:35:49 -07:00
Rafael Ávila de Espíndola
9657e5d2d3
Revert 9ab42038bb
while I find what is
...
wrong on Windows.
2011-04-18 15:37:04 -04:00
Rafael Ávila de Espíndola
9ab42038bb
Change the makefiles to use -c.
2011-04-18 15:00:17 -04:00
Rafael Ávila de Espíndola
099e094765
Produce PIC code and use -S in the Makefile.
2011-04-15 19:29:13 -04:00
Rafael Ávila de Espíndola
01b1d4110d
Remove code that is already in llvm for some time.
2011-04-13 14:55:44 -04:00
Rafael Ávila de Espíndola
1fa7fe758f
Update Makefile.in, not Makefile :-(
2011-04-13 14:05:02 -04:00
Rafael Ávila de Espíndola
4bd8dcccbc
Try to fix the windows build.
2011-04-11 15:05:18 -04:00
Rafael Ávila de Espíndola
e733311a95
Make sure RustWrapper.cpp is linked in.
2011-04-11 14:52:11 -04:00
Graydon Hoare
19ebc0f376
Actually disable optimize in --disable-optimize case, duh.
2011-04-08 17:28:14 -07:00
Graydon Hoare
cae703c0b1
Add support for --disable-optimize
2011-04-08 15:49:14 -07:00
Rafael Ávila de Espíndola
2cbe2bcb5e
Link with -lm now that it is not included with --whole-archive when
...
building rustllvm.
2011-04-08 14:51:47 -04:00
Rafael Ávila de Espíndola
f8e22cdff3
Gold is more strict about --whole-archive and will report duplicated
...
symbols because of an Object.o in a .a and one outside. A similar
problem happens for the non-shared part of libpthread.
This patch moves the -whole-archive/-no-whole-archive to include just the
llvm libs.
2011-04-08 14:25:18 -04:00
Patrick Walton
ed14ea1d3f
build: Use -O0 on Darwin. Seems that Darwin's GCC optimizations break rustrt.
2011-04-07 18:14:13 -07:00
Marijn Haverbeke
973023030e
add -O2 when compiling rt, fix warnings triggered by optimizer
2011-04-08 00:41:52 +02:00
Rafael Ávila de Espíndola
b4422cca21
Add a -O option and change the Makefile to use it.
2011-04-07 15:42:06 -04:00