Commit Graph

92 Commits

Author SHA1 Message Date
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
Matthew Flatt
1260dd6b2e Makefile: refine support for building an installer from a site 2014-03-11 08:10:35 -06:00
Matthew Flatt
a98582b823 distro-build: split server and client parts 2014-03-09 15:57:40 -06:00
Matthew Flatt
9de2aff3f3 make server: fix config setup for pkg build
When the server installs packages from source, it needs configuration
entry that points documentation indirections to the right place.
A relevant "config.rktd" is written, but to the wrong place, so
that it wasn't being used.

Merge to v6.0 (pending review)
2014-01-05 18:39:21 -07:00
Matthew Flatt
7b89225001 make installers: install required packages, first
This change should fix a problem with the Mac OS X PPC build,
where the "libsqlite3" shared library needs to be installed
early. The same strategy is already used for Windows.

Merge to v6.0
2013-11-22 07:26:43 -07:00
Matthew Flatt
7dd10fc9bd make installers: support Mac OS X ".pkg" format
The ".pkg"-based installer doesn't provide the option of picking
an installation path, but it can add a path in "/etc/paths.d"
so that users do not have to explicitly set the `PATH` environment
variable.
2013-11-11 05:27:08 -07:00
Matthew Flatt
2872f83a17 raco pkg: use a download cache
Downloaded files are keyed on the source URL and checksum, and the
cache is used only when a checksum is known.

The cache addresses two situations:

 * when installing many packages over an unreliable connection,
   the cache effectively lets a retry pick up where a previous
   attempt failed

 * when creating clean builds frequently, the downloads from a
   previous build can be reused (as long as the package's checksum
   does not change)

The cache location and limits are configurable, and they default to
a subdirectory in the user's add-ons directory (not version-specific),
1024 files, and 64 MB.

If a failure happens during staging (checksum and unpackaging) of a
package that has an entry in the cache, the entry is removed. The
file-cache library, meanwhile, implements a limit on the cache size
and defends against uncooperative filesystems.
2013-11-06 15:15:56 -07:00
Matthew Flatt
2054fb79de make installer: add Mac OS X code-signing support 2013-10-19 07:56:00 -06:00
Matthew Flatt
7be22af350 make installers: make the server listen only to "localhost" by default
This makes the build more secure, but it's a backward-incompatible change.
To adapt old site-configuration scripts, the simplest option is to set
`#:server' to "localhost" everywhere and rely on SSH tunneling to let
a client reach a server (though, unfortunately, that option doesn't
seem to work if a Windows machine uses freeSSHd). Another possibility
is to se `#:server-hosts' to the empty list.
2013-10-19 07:56:00 -06:00
Matthew Flatt
acadcd2994 make installer: option to set address & port where server listened
Client SSH connections now create remote port forwarding port back
to the server, so that making the server listen only on "localhost"
provides an easy improvement for security (except that remote port
forwarding seems not to work with freeSSHd on Windows).
2013-10-19 07:56:00 -06:00