Commit Graph

174 Commits

Author SHA1 Message Date
Matthew Flatt
e496805f82 makefile: add win32-also-cs, etc. 2020-06-02 08:28:10 -06:00
Matthew Flatt
6feb9c1095 makefile: add SERVER_URL_SCHEME to support https 2020-05-03 16:09:55 -06:00
Matthew Flatt
17a5711dbb makefile: fix addition of --disable-lib
When potentially adding the `--disable-lib` flag, don't drop existing
extra configure flags. Specifically, the `--enable-crossany` flag
from distro-build could get lost, which breaks a soutrce distribution
with built packages.
2020-05-03 09:40:36 -06:00
Matthew Flatt
ba59d87ac4 makefile: add an advice-giving clean target
Implementing a thorough `clean` target for a repo-based is tedious and
error-prone. Instead, make the `clean` target suggest `git clean -d -x
-f .`, which is more effective in most situations (but seems too
dangerous to run automatically).
2020-03-21 15:09:58 -06:00
Matthew Flatt
fab04633f3 makefile: add DISABLE_STATIC_LIBS 2020-03-07 14:24:50 -07:00
Matthew Flatt
e63433c4fd makefile: change INSTALLER_OPTIONS_q to INSTALLER_OPTIONS
Trying to support multiple command-line arguments doesn't work so
easily with nmake, so avoid that.
2020-02-15 08:54:56 -08:00
Matthew Flatt
6738c4e9e2 makefile: add INSTALLER_OPTIONS_q for installer-building options
This change makes it easier for `distro-build` to define new options
that get communicated from "site.rkt" to `distro-build/installer`.
2020-02-14 08:02:49 -08:00
Matthew Flatt
7eb0b8534d improve makefile's bundle target
Use `--no-user` for the `raco setup` that is supposed to finish a
bundle. Otherwise, things installed in user scope for the same Racket
version (i.e., the one being bundled) can interfere with the bundling
process.
2020-02-06 12:40:05 -07:00
Brian Wignall
738d2b7a81 Fix typos (#3005) 2020-01-14 11:49:23 +01:00
Matthew Flatt
16cbb5be30 makefile: add pre-processing step for distribution creation 2020-01-01 07:13:53 -07:00
Matthew Flatt
8ef11a9b06 makefile: use --recurse-submodules for initial ChezScheme checkout
Related to #2945
2019-12-27 05:12:05 -06:00
Brian Wignall
9474b1a1e8 Fix spelling typos 2019-11-28 07:51:39 -07:00
Reuben Thomas
7e3a8c9a3b In-place build: cope with default setting of prefix
configure scripts look for and read a local configuration file given by the
environment variable CONFIG_SITE. This can set variables such as prefix.

Racket’s build system was assuming that prefix would be set to NONE unless a
--prefix command line argument was given. But it could be set by a
CONFIG_SITE configuration file instead.

Hence, for in-place build add an explicit --disable-useprefix option, to
cause any prefix setting to be ignored, and use that in the top-level
Makefile.

Regenerate the configure scripts to get the updated code.
2019-11-18 18:25:37 +01:00
Matthew Flatt
1442c1860a makefile: avoid redundant CPUS parsing for some targets 2019-11-12 14:29:06 -07:00
Matthew Flatt
2a530b4c88 makefile: avoid git submodule update in cs-as-is 2019-06-22 08:01:12 -06:00
Matthew Flatt
85a9bdaaee unbreak Windows non-CS build 2019-06-12 07:32:51 -06:00
Matthew Flatt
e51c44fa3d Use 3m to build CS on Windows
The extra time to build 3m via CGC seems worth it, especially when
building Chez Scheme's boot files.
2019-06-11 20:01:41 -06:00
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