Commit Graph

101 Commits

Author SHA1 Message Date
Matthew Flatt
59ef254318 switch to a new, Racket-implemented expander & module system
This commit merges changes that were developed in the "racket7" repo.
See that repo (which is no longer modified) for a more fine-grained
change history.

The commit includes experimental support for running Racket on Chez
Scheme, but that "CS" variant is not built by default.
2018-02-26 13:19:53 -07:00
Sam Tobin-Hochstadt
161fcf0adb
Support make base CPUS=n. (#1905) 2017-12-06 09:36:10 -05:00
Matthew Flatt
d469265a6e Makefile: support both cross-platform and non-cross installers
In non-cross mode, `-C` needs to go after `-G` and `-X` when setting
up a "bundle" directory to turn into an installer, because that mode
needs to use foreign libraries (such as SQLite) at build time, and it
can use the instances that are being set up for the installer.

Meanwhile, improve the advice for setting `PLAIN_RACKET` to use `-C`
for a cross-platform build mode, even though things tend to work
anyway without it.
2017-04-26 15:59:04 -06:00
Matthew Flatt
c0f158b38c Makefile: add a client-testing entry for use by distro-build
Also, add a "distro.rkt" test to "tests/racket/test" to hold
basic checks to run in a client build.
2017-04-25 11:12:01 -06:00
Matthew Flatt
c917434a86 improve cross-platform support
Detangle the target and host DLL and library directories by
making `get-lib-search-dirs` and `get-dll-dir` report the
host system's directories, and add `get-cross-lib-search-dirs`
and `get-cross-dll-dir`.

A new `-C`/`--cross` flag causes `racket` to save a host config and
collection directory and make them available via `(find-system-path
'host-{config,collects}-dir)`, while plus `(system-type 'cross)`
reports whether `-C` mode is in effect. Besides making the host paths
available, this change allows a same-platform build to run in
corss-platform mode.

The immediate problem to solve was the creation of Windows installers
on Windows, where recent changes to support 'gui-bin-dir configuration
need a clear distinction between the host Racket and the target Racket
being built, even if they're the same platform. (The "GRacket.exe"
executable didn't work, for example.)

The changes in this commit are more than needed for the immediate
problem, but they naturally build on the necessary `-C` flag, and they
support cross-platform package setup where native libraries are needed
during setup.
2017-04-25 08:31:26 -06:00
Matthew Flatt
a49bd5dc00 fix config spec for installer build
This typo likely doesn't affect anything right now, but it
might one day.
2017-03-24 15:40:56 -06:00
Matthew Flatt
710320e3dc "Mac OS X" -> "Mac OS"
Although "macOS" is the correct name for Apple's current desktop OS,
we've decided to go with "Mac OS" to cover all of Apple's Unix-like
desktop OS versions. The label "Mac OS" is more readable, clear in
context (i.e., unlikely to be confused with the Mac OSes that
proceeded Mac OS X), and as likely to match Apple's future OS names
as anything.
2016-12-23 12:18:36 -07:00
Leif Andersen
b0f266fad1 Moved xrepl to be part of bootloader directly. 2016-07-26 10:14:38 -04:00
Leif Andersen
bd1ceb21d6 Add racketrc file to the etc/ folder. 2016-07-26 10:14:38 -04:00
Matthew Flatt
dafb6d722e Makefile: move SRC_CATALOG definition to ealier
Accommodate nmake.exe, which needs the definition before
the use in `win32-in-place`.
2016-01-08 19:31:46 -07:00
Matthew Flatt
d4f3dfb3d0 make SRC_CATALOG work with win32-in-place 2016-01-08 10:01:22 -07:00
Matthew Flatt
7bae604711 fix default source catalog for make 2016-01-08 09:53:44 -07:00
Matthew Flatt
666c5f1557 Windows code-signing and ".tgz" options for distro-build 2016-01-07 17:25:26 -07:00
Matthew Flatt
91d825ba61 Windows cross-build: fix over-agressive pruning of DLLs
The `setup/winstrip` step was run too late. As an extra measure,
make make `setup/winstrip` more precise about the files it
will discard.

Merge to v6.3
2015-10-21 18:13:39 -06:00
Matthew Flatt
8620f95763 Windows distribution: remove compiler-specific libraries
Building creates compiler-specific files in "lib/msvc"
or "lib/gcc". For consistency, strip those directories
when creating a distribution.

The newly added ".def" file provides information that
would otherwise be lost by removing the MSVC ".lib"
file from the distribution.

Removing the compiler-specific ".obj" files means that
used to be included for linking extensions. My guess
is that the files are now completely unused.
2015-10-20 20:22:16 -06:00
Matthew Flatt
079183eb6a fix cross-build for Windows to use setup/winvers-change
Merge to v6.3
2015-10-19 17:48:53 -06:00
Matthew Flatt
9aba66b608 makefile target for creating a native executable for cross compiling 2015-08-30 08:14:04 -06:00
Matthew Flatt
ad4dcdeac0 cross-compilation support in the top-level makefile 2015-08-29 20:54:27 -06:00
Matthew Flatt
0304fedf92 Makefile: make SRC_CATALOG work for in-place and unix-style
Configure an in-place or unix-style build to use the given
SRC_CATALOG before the default catalogs.
2015-05-03 21:41:46 -07:00
Matthew Flatt
51d38152d4 fix win32-as-is makefile target 2015-02-17 09:29:07 -07:00
Matthew Flatt
513cee5e20 makefile: add an as-is target
The `as-is` target is like the default target, but it skips package
update and installation, so it's suitable for rebuilding after local
changes that might include changes to the core.
2015-01-03 07:11:08 -07:00
Matthew Flatt
e2f1ede981 makefile: change the default target to imply raco pkg update -a
As a result of this change, `make` will access the network (unless an
alternative catalog is specified). A `make base` is always local,
though.
2015-01-02 21:13:55 -07:00
Matthew Flatt
fc1d19c6fb make: fix for PKGS="" 2014-12-13 09:16:51 -07:00
Matthew Flatt
9beca2bdee make: fix bootstrap for native libraries
Restore (but in a hopefully better way) a step that installs native
libraries before trying a full `raco setup`, since the libraries
may be needed for the setup proces --- especially on Windows.
2014-12-13 09:16:51 -07:00
Matthew Flatt
dbfe4df223 make: add job options to final raco setup
Closes PR 14876
2014-12-12 07:59:17 -07:00
Matthew Flatt
99c6f529e5 add makefile step to adjust for movements within "pkgs"
The step doesn't currently adapt to additionals or removals
from "pkgs", so further support may be needed in the future.
2014-12-08 06:36:17 -07:00
Matthew Flatt
d6b4523336 pkg/dirs-catalog added
This utility that is needed by `make` turns out to be useful in other
scripts.
2014-12-07 11:19:29 -07:00
Matthew Flatt
e2bad60213 make: always raco setup in default target
Use `--no-setup` when installing packages to avoid a
definitely-reundant setup.
2014-12-05 16:57:36 -07:00
Matthew Flatt
846be68ec1 makefile: remove lingering references to special native packages 2014-12-05 16:57:36 -07:00
Matthew Flatt
c6d2548e22 make: fix Unix-style build 2014-12-04 19:30:01 -07:00
Matthew Flatt
ae1e459a53 make: clear out "local" installer mode
The "local" installer mode made sense only with a "pkgs"
directory that had everything to be included in the installer.
2014-12-04 14:21:34 -07:00
Matthew Flatt
038da2b0e9 make: fix Windows build 2014-12-04 14:21:34 -07:00
Matthew Flatt
d593f5420b make: link packages via local catalog
Change the way that packages in "pkgs" are handled by `make`:
create a catalog that causes them to be installed on demand
as directory links.
2014-12-04 12:46:03 -07:00
Matthew Flatt
47f2f5483c remove "native-pkgs"
Treat native-library packages like all the others that are now
served from the catalog.
2014-12-04 10:11:15 -07:00
Sam Tobin-Hochstadt
2987338218 Split almost everything else from the main repository.
The source to the split packages is in repositories under the
`racket` organization on GitHub. The repositories are all named
according to the pkg name, except for multiple-package
repositories such as `racket/compiler` which is named based on the
old directory name without the `-pkgs` suffix. Thus

   `pkgs/compiler-pkgs` -> https://github.com/racket/compiler

The Makefile has also been adjusted to pull packages from the
catalog when you type `make`. This currently relies on some tricks
that will break if you try to specify a particular set of `PKGS` on
the command line. We plan to improve this soon.

The packages in `pkgs/racket-pkgs` and `pkgs/base` are staying in
the repository, since they logically belong with the core code.

The `plt-services` package is still in the repository, but will
move out soon.
2014-12-04 10:33:19 -05:00
Sam Tobin-Hochstadt
776dd0f5bb Revert "Makefile change"
This reverts commit e0a9a92c0f.
2014-12-02 21:07:25 -05:00
Sam Tobin-Hochstadt
e0a9a92c0f Makefile change 2014-12-02 14:37:09 -05:00
Matthew Flatt
722d4858aa make installer: prevent pollution from local to catalog-based build 2014-09-25 14:00:00 -06:00
Matthew Flatt
edf140a440 make server: snapshot source catalog, set local cache 2014-08-26 14:41:13 -06:00
Matthew Flatt
3f040f7a1a make site: propagate package dependencies, modules, etc. to catalog 2014-07-04 08:48:46 +01:00
Matthew Flatt
133d7a3c41 distro-build: add "versionless" option
Versionless mode avoids putting a version number in an installer's
name or in installation paths.
2014-06-23 18:42:46 +01:00
Matthew Flatt
1407e0cc9f win32-in-place: fix prep of libraries needed by raco setup 2014-06-16 11:41:00 +01:00
Matthew Flatt
6778604bd2 Makefile: improve DESTDIR support 2014-06-16 11:41:00 +01:00
Matthew Flatt
b7610c405d distro-build: move a file out that is accessed directly
The "pack-all.rkt" file is needed before (and only before) the
distro-build package itself is ready, so move it to the "racket/src"
directory.
2014-06-13 16:32:51 +01:00
Matthew Flatt
52e2d7b1c9 Makefile: add IF EXISTS guard on del for a Win32 target
Fixes Windows installer builds in a fresh working directory.
2014-05-22 17:52:51 +01:00
Matthew Flatt
9b78847be0 add unix-style makefile target
Also, revise "INSTALL.txt" to better explain the build options.
2014-05-20 09:01:40 +01:00
Matthew Flatt
718cbd4c41 distro-build: fix catalog relative paths
The old use of relative paths was unusual and fragile.
Proper relative paths are now supported, so generate paths
consistent with that.
2014-05-09 10:32:14 -06:00
Matthew Flatt
47bc57a7e2 distro-build: fix Windows client setup 2014-05-04 08:53:10 -06:00
Matthew Flatt
23cf3ba11e upgrade pre-built libraries for Windows and Mac OS X
Mostly upgrades the drawing stack to the latest Cairo, Pango, Glib,
etc., but also upgrades the OpenSSL library on Windows to 1.0.1g.

The new "racket/src/native-libs" directory provides scripts to
rebuild the libraries from source. Those script are fragile, because
library sources and configuration scripts are fragile. The
scripts at least archive some expertise/advice in a mostly executable
form.
2014-04-09 07:35:37 -06:00
Matthew Flatt
df857e1c76 distro-build: refine client--server split 2014-03-11 08:10:35 -06:00