Commit Graph

157 Commits

Author SHA1 Message Date
Matthew Flatt
a45115398c makefile: remove incorrect cross-build dependency 2019-05-25 07:36:06 -06:00
Matthew Flatt
a56c984db0 avoid incorrect unix-style inference
Closes #2659 by both recognizing `lib64` as a default path and by
having `--enable-origtree` override inference and specified when
running `configure` through the root makefile.
2019-05-18 07:56:02 -04:00
Matthew Flatt
59d5300f77 makefile: fix configure dependencies
Reconfigure if "cfg-racket" changes without "configure" changing.
2019-05-10 21:21:54 -06:00
Matthew Flatt
0884918af6 makefile: add PACK_BUILT_OPTIONS for control over distro package form 2019-05-10 07:20:31 -06:00
Matthew Flatt
8ade5f94c6 makefile: configurable options for install of packages within a distro 2019-05-10 07:20:31 -06:00
Matthew Flatt
20672cd60a make Chez Scheme bootstrap work as a "cs-bootstrap" package 2019-04-25 10:09:26 -06:00
Matthew Flatt
25be788d61 makefile: support client builds with machine-independent bytecode 2019-04-22 18:41:07 -06:00
Matthew Flatt
e001f3b3cb include ChezScheme sources in a source distribution
Note that the source-distribution client must have a
"build/ChezScheme" checkout created, maybe by building as a 'cs
variant. A pruned version of that checkout is then included with other
sources. The resulting source distributon then works for building
either Racket variant.

Adapt the configure scripts and makefiles to use a "ChezScheme"
directory that is bundled with sources.
2019-04-22 16:56:17 -06:00
Matthew Flatt
8c8979369f cs: switch Chez Scheme download to racket/ChezScheme at GitHub 2019-04-20 08:32:36 -06:00
Matthew Flatt
3127b324c4 cs: more attempts to fix Chez Scheme submodule update
When `#:extra-repo-dir` is used in a site configuration, the
extra repos need to have a "master" branch to enable updates.
2019-03-23 10:40:59 -06:00
Matthew Flatt
ccf8c525fa makefile: add describe-clients target
The `describe-clients` target is a debugging aid for viewing
distro-build site configurations.
2019-03-21 10:12:24 -06:00
Matthew Flatt
1fb8e744dd makefile: build distro packages as machine-independent by default 2019-03-21 07:52:48 -06:00
Matthew Flatt
0be2178f0e cs: fix build of cross-compile racket 2019-03-21 07:52:48 -06:00
Matthew Flatt
d0a98cb42a cs: update for LZ4 compression 2019-03-21 07:52:48 -06:00
Matthew Flatt
43f90b4781 makefile: support server-package install options 2019-03-13 10:56:56 -06:00
Matthew Flatt
00a50ca772 no --recompile-only for "distro-build-client" step
The `--recompile-only` flag makes sense if machine-independent
bytecode can be deterministically generated from all Racket builds.
While the current compiler is close, there are obstacles such as the
lack of support for single-precision floating-point literals in Racket
CS. We settle for using `--recompile-only` in the main bundle phase,
which is the part that most needs to go fast.
2019-03-13 09:32:33 -06:00
Matthew Flatt
d0d391d76b raco setup: add --recompile-only
The `--recompile-only` flag is intended to help dectect build
problems, especially distribution builds where packages are
supposed to be in built form.
2019-03-13 09:32:33 -06:00
Matthew Flatt
875e3b290d raco setup: add --error-out and --error-in
The `--error-out` and `--error-in` flags are meant to work together to
chain a sequence of `raco setup` steps where one of them might fail,
but other steps should proceed. The last step in that sequence should
use only `--error-in`, so that it exits with failure if any of the
steps failed.

The `both` target of the toplevel makefile uses `--error-out` and
`--error-in` to let a Racket CS build proceed as long as the
traditional Racket build made it to the last `raco setup` step, which
means that it survives package-build errors.
2019-03-06 09:43:18 -07:00
Matthew Flatt
c63ee19c78 makefile: propoagate jobs config for post-unpack setup 2019-03-05 08:21:35 -07:00
Matthew Flatt
a00dd06793 further makefile and compiler/cm repairs for cross-build 2019-03-05 06:55:00 -07:00
Matthew Flatt
9981effa4b cs: revise cross-compilation protocol and fill in build steps
Makefile and configure refinements, including targets to let the
distro-build package drive a cross-build from scratch. A cross
build on Mac OS for Windows now works, for example.
2019-03-04 07:00:59 -07:00
Matthew Flatt
63fb08905b makefile: adjust in-place CGC/3m install to preserve CS install
Also, make an in-place CS install clean old versions in the same way
as a CGC/3m.
2019-01-31 15:04:27 -07:00
Matthew Flatt
c628414d6c avoid stderr output for cs build 2019-01-29 09:18:07 -07:00
Matthew Flatt
c61e59fda5 makefile: add a both target
Also, repair the `cs` target to not build packages before updating
them.
2019-01-20 10:34:30 -07:00
Matthew Flatt
32b97e2536 makefile: fix creation of racket/src/build 2019-01-14 18:45:17 -07:00
Matthew Flatt
7d002c1c36 makefile: fix name and description of post-process argument 2019-01-09 15:49:29 -07:00
Matthew Flatt
a75de08bc3 support distro-build installer post-process action 2019-01-09 15:22:44 -07:00
Matthew Flatt
edcd1833e7 cs: move build/cs to build/cs/c
Use "cs/c" to be parallel to the source tree, because making them
different is asking for trouble (e.g., using `configure` without
a separate "build" directory goes wrong).
2019-01-05 19:00:32 -07:00
Matthew Flatt
4b42225f0c raco setup: remove -M/--compile-any
This commit mostly reverts 9441f7075f, because it looks like relying
on `racket`-level configuration is the right idea after all.
2018-12-05 17:31:37 -07:00
Matthew Flatt
b94f84a909 expander: load modules on demand for recompile 2018-11-30 22:54:10 -07:00
Matthew Flatt
50cb877184 makefile: fix SERVER_COMPILE_MACHINE handling
More targets need to support the `SERVER_COMPILE_MACHINE` option.
2018-11-29 06:23:01 -07:00
Matthew Flatt
da62067d8f maefile: adjust SERVER_COMPILE_MACHINE convention
The old way wasn't delivering needed information to
`distro-build/drive-clients`.
2018-11-27 10:34:52 -07:00
Matthew Flatt
a001b5b231 raco setup: multi-machine cross-compile support
Enable `raco {setup|make}` to build two sets of compiled files: one
set that is suitable for the current machine, and another set that is
suitable for a different machine or for all machines (i.e.,
machine-independent bytecode).

In the long run, this new `raco setup` mode support cross compilation
where the build machine and target machine have different bytecode
formats --- unlike the current cross-compliation mode, which relies on
there being a single bytecode format in traditional Racket for all
platforms.

In the short run, the new mode enables the faster creation of
Racket-on-Chez distribution builds. The build server can send out
machine-independent bytecode to client machines while using
machine-specific bytecode for itself to drive the build process.

The new compilation mode relies on a somewhat delicate balance of the
`current-compile-target-machine` and `current-compiled-file-roots`
parameters (as reflected by the `-M` and `-R` command-line flags for
Racket) as well as cross-compilation mode (as enabled by the `-C`
command-line flag).
2018-11-26 19:49:33 -07:00
Matthew Flatt
7cdf9f1c0b raco setup: remove -M/--compile-any
This commit mostly reverts 9441f7075f, because it looks like relying
on `racket`-level configuration is the right idea after all.
2018-11-25 12:10:09 -07:00
Matthew Flatt
f4a08af16b makefile: add setup step after unpack-collects
When unpacking a "collects" tree that is compiled in
machine-independent mode, an extra `raco setup` is needed
before `raco pkg`.
2018-11-24 13:59:56 -07:00
Matthew Flatt
e87d03cdc0 makefile: propagate SETUP_MACHINE_FLAGS to distro-build 2018-11-24 11:38:58 -07:00
Matthew Flatt
9441f7075f raco setup: add -M/--compile-any
Add `-M`/`--compile-any` to `raco setup`, `raco pkg install`, etc., to
build machine-independent bytecode, which is useful in the process of
building distributions.
2018-11-24 11:19:09 -07:00
Matthew Flatt
cb9289bd0b makefile: change the executable used for the distro pkg step
The distro-build process creates an executable in a build area, then
uses it to set up a distribution in a "bundle" directory. That way,
any package-supplied native libraries will be found in the process of
installaning a package, in case installation needs native libraries.

Don't switch in the case of cross-compiling, though. For
cross-compilation, `PLAIN_RACKET` still has to be used, since it is
set up to be one that runs on the build platform, and the
`PLAIN_RACKET` installation simply has to have any needed native
libraries installed. That's why the makefile wasn't using the
exectuable in "bundle" before for package installation (but it can
create trouble for non-cross builds, especially on Windows).
2018-11-17 14:15:05 -07:00
Matthew Flatt
b5084977c0 cs Windows: fill in GUI mode for GRacket
Still need to create console on demand.
2018-10-28 13:14:14 -06:00
Matthew Flatt
3b9bc21304 cs: repairs to Windows build client 2018-10-26 11:04:45 -06:00
Matthew Flatt
8c3956a272 cs: update Windows build
Support non-"CS"-suffix mode, and avoid installing bytecode for
traditional Racket when builing a bootstrap traditional Racket.
2018-10-24 18:44:23 -07:00
Matthew Flatt
f8e6b22544 cs: fix makefile chaining for bootstrap Racket variant 2018-10-22 20:14:50 -06:00
Matthew Flatt
2fc0263496 makefile: avoid nested repos over HTTP 2018-10-22 12:33:30 -06:00
Matthew Flatt
227944c70c makefile support for redirecting Chez Scheme and submodule repos 2018-10-21 21:03:32 -06:00
Matthew Flatt
9498c521cf cs: make build without "cs" suffix use "compiled" directly
When building RacketCS as just "racket", put compiled files in
"compiled" instead of a platform-specific subdirectory.
2018-10-21 18:27:00 -06:00
Matthew Flatt
de98529c13 cs configure: support SDK options
For example, enable a 32-bit Mac OS build.
2018-10-21 05:59:00 -06:00
Matthew Flatt
3591a685fc reorganize configure to better support racketcs
Rearrange the configure scripts so that it will be possible to build
RacketCS from a source distribution and have it installed in the right
place. Also, when building Racket3m just to bootstrap RacketCS, don't
install Racket3m.
2018-10-20 20:19:36 -06:00
Matthew Flatt
0f18df2c1a makefile: set up for cs client build 2018-10-20 20:19:36 -06:00
Matthew Flatt
18f7b96828 makefile: add way to build RacketCS as racket 2018-10-19 11:19:44 -06:00
Matthew Flatt
c347bc0c99 cs: clone ChezScheme repo with --depth 1 2018-10-15 17:22:11 -06:00