Commit Graph

34 Commits

Author SHA1 Message Date
Matthew Flatt
15e60c2da1 distro-build: merge and improve package packing and cataloging
Use the `pkg-authors' and `pkg-desc' fields from "info.rkt"
when creating a catalog.

Also add an `archive-catalog' makefile target for assembling
archives (binary for native-library package, source others)
and a catalog in "build/archive".
2013-07-31 07:06:25 -06:00
Matthew Flatt
3c36269d88 distro-build: fix reference to "native-pkgs" 2013-07-27 07:18:25 -06:00
Matthew Flatt
b0984df456 rename "core" makefile targets to "base"
Using "base" is more consistent.
2013-07-26 22:36:21 -06:00
Matthew Flatt
2e067ab28c add build-stamp' configuration and fix repo-time-stamp/stamp'
The "repo-time-stamp" collection used to be omitted from a
release, but to keep things simpler, it's staying in the
"drracket" (and therefore "main-distribution") package. The
build process installs an empty `build-stamp' value (by default)
into a release build, or it installs a useful stamp for
a non-release build.
2013-07-26 22:36:21 -06:00
Matthew Flatt
593daa0dc6 access "native-pkgs" as a git submodule
This looks like a good use case for submodules, because the
native-library packages change infrequently, and no one cares
about the history of changes relative to the rest of the
project (except to be able to get a set of packages that is
consistent with the rest of the repository).

The change avoids the problem that `make' on Mac OS X would
try a `git update', which is no good if you happen to be
offline (and have your "buidl.native-pkgs" repo pull from the
obvious place).

Finally, it's easier for Windows users, since `git submodule init'
and `git submodule update' is easier to use and remember than
`git clone <some-repository-URL>'. The makefile more helpfully
complains if "native-pkgs" doesn't seem to have been initialized
as a submodule.
2013-07-26 22:36:20 -06:00
Matthew Flatt
7e6838b0af distro-build: support installation-name configuration for installers
The default is "snapshot" for non-release builds, left as the
version number for release builds.
2013-07-26 11:52:48 -06:00
Matthew Flatt
82c4e56631 distro-build: change `#:source?' config to mean source packages, too
Use `#:source-runtime?' to make only the run-time system have
source form, while packages are pre-built.
2013-07-20 13:39:33 -06:00
Matthew Flatt
8820ae91a6 distro-build: add support for source installers 2013-07-19 11:52:03 -06:00
Matthew Flatt
67a9889ef7 add "share", move "collects" back out of "lib", move "pkgs"
The "share" directory holds platform-independent files, while
"lib" holds platform-specific files.

In principle, the "collects" directory belongs in "share",
as does "doc". Those directories are put into "share"
by a Unix-style install, but left at top level for an
in-place install.

Packages in installation scope are put in "share" instead
of "lib", and the top-level Makefile puts development links
in "share/devel-pkgs".

The `configure' script now supports `--docdir' and `--collectsdir'.

Changed the version to 5.90.0.1.
2013-07-19 11:52:02 -06:00
Matthew Flatt
1c6257a129 distro-build: support for adding READMEs
This is a first cut; the default "README" configuration will be
improved.
2013-07-17 18:32:21 -06:00
Matthew Flatt
b9fd9ad78c installers site: include documentation of built packages 2013-07-11 10:26:03 -06:00
Matthew Flatt
9cc50dc914 Makefile: make PKGS' not sticky by default, add again' target
More generally, `LINK_MODE' controls how the `PKGS' value is saved
or restored: "--save" saves the value (the default), "--restore"
uses a previously saved value (if any), and "" disables saving or
restoring.

The `again' target recurs to `in-place' with `LINK_MODE=--restore'.
2013-07-08 20:11:26 -06:00
Matthew Flatt
91c43fed9d Clean up site configuration module docs and defaults
As a result, `make installers' produces an installer with no further
configuration on a non-Windows platform, even without `git'.
2013-07-05 17:41:06 -06:00
Matthew Flatt
2f637741e2 switch makefile's parallelism control to `JOB_OPTIONS'
Avoid potential collision with `PLT_SETUP_OPTIONS' as an environment
variable.
2013-07-05 12:09:09 -06:00
Matthew Flatt
a8ed2b1546 Add -j'/--jobs' <n> argument to `raco pkg install', etc.
Also, thread `PLT_SETUP_OPTIONS' though server and client build
(so that a `#:j' configuration works as intended).
2013-07-05 11:33:57 -06:00
Matthew Flatt
ddbc8e5f40 Support a CPUS=<n> argument for the `in-place' makefile target
Also, make `distro-build/drive-clients' use `#:j' configuration
for `PLT_SETUP_OPTIONS'.
2013-07-05 10:52:38 -06:00
Matthew Flatt
41399c1f51 add distro-builds/manage-snapshots 2013-07-05 09:18:00 -06:00
Matthew Flatt
fb052532c0 make in-place: keep non-default `PKGS' value in "racket/etc/link-pkgs.rktd"
This change makes a `PKGS=...' setting sticky for an in-place build via
`make', `make in-place', `make pkg-links', etc.
2013-07-05 08:30:00 -06:00
Matthew Flatt
d2ddfc09bd add `site' makefile target
Also, adjust stamp handling to ensure that it doesn't change
during the build process.
2013-07-03 20:52:16 -06:00
Matthew Flatt
2e657af9b6 Change "farm" terminology to "site", mostly 2013-07-02 10:51:29 -06:00
Matthew Flatt
3264f16b63 Generalize use of farm config file
Change `FARM_CONFIG' to just `CONFIG' and use it on the server, too.
2013-07-02 06:40:16 -06:00
Matthew Flatt
00a4cb611b make doc-search URL configurable for installer builds
Also, add an initial-catalogs configuration to clients and
`farm' builds.
2013-07-02 06:40:16 -06:00
Matthew Flatt
6a9b63215a fix variable-quoting conventions in top-level Makefile 2013-07-01 10:39:28 -06:00
Matthew Flatt
29b9a22d87 change farm-configuration file to a module
Also, improve connection between installers and farm-configuration
entries, and improve configuration of installer name versus
target-install directory.
2013-07-01 08:05:07 -06:00
Matthew Flatt
15b49c7607 move "plt-services" and "distro-build" out of the distribution
The default `PKGS' value in the makefile now refers to both
"main-distribution" and  "plt-services", so the effect of a
plain `make' remains the same.
2013-07-01 08:05:07 -06:00
Matthew Flatt
c413c28e70 add configuration for a distribution name suffix
The suffix is intended for OS variants, such as "precise" for a Linux
variant that is build with Ubuntu 12.04 (Precise Pangolin).
2013-06-30 09:20:20 -06:00
Matthew Flatt
dedd2f671a add `CORE_CONFIGURE_ARGS' to top-level makefile
Also, `#:configure' to build-farm configuration.
2013-06-30 07:43:25 -06:00
Matthew Flatt
19dc3a00ff distro-build/drive-clients: add `--clean' argument 2013-06-29 12:03:53 -06:00
Matthew Flatt
fd982c55b1 farm: by default, pull git repo in clients from server 2013-06-28 08:11:31 -06:00
Matthew Flatt
d450ee9707 link development-mode packages in a separate pkg database
Use `PKGS' with the top-level makefile to select packages for
a development-mode build. The default is "main-distribution",
which includes all packages in "pkgs".
2013-06-27 21:52:23 -06:00
Matthew Flatt
53d68e2149 switch "config.rktd" dirs back to "collects"-relative
Making them "etc"-relative intercts badly with redirecting
a configuration to override just a few values --- such as
the links path, which is what `make core' needs.
2013-06-27 17:04:16 -06:00
Matthew Flatt
4e23a52f01 add build-farm support to Makefile
The `farm' target run `server', but after the server starts, also
builds clients (via `ssh') as specified in a configuration file.
A client can be a VirtualBox virtual machine, in which case
the client machine can be started and stopped automatically.

Most of the work is in `distro-build/drive-clients' (in the
"distro-build" package), and that's where the configuration-file
format and client-machine requirements are documented.
2013-06-23 11:44:52 +02:00
Matthew Flatt
f0135e9ab3 fix `server' target 2013-06-19 21:01:52 -06:00
Matthew Flatt
b2ebb0a28b reorganize into core plus packages
The "racket" directory contains a pared-back version of the
repository, roughly.

The "pkgs" directory everything else in the repository, but
organized into packages.
2013-06-19 09:01:37 -06:00