some rackety READMEs
This commit is contained in:
parent
e504acb726
commit
424f7b6659
203
src/README
203
src/README
|
@ -1,36 +1,35 @@
|
|||
|
||||
This is the source code distribution for PLT Scheme (MzScheme and/or
|
||||
MrEd with DrScheme). For license information, please see the file
|
||||
plt/notes/COPYING.LIB.
|
||||
This is the source code distribution for Racket. For license
|
||||
information, please see the file racket/notes/COPYING.LIB.
|
||||
|
||||
Compiled binaries, documentation, and up-to-date information are
|
||||
available at http://plt-scheme.org/; pre-compiled nightly builds are
|
||||
available at http://pre.plt-scheme.org/installers/.
|
||||
available at http://racketlang.org/; pre-compiled nightly builds are
|
||||
available at http://pre.racket-lang.org/installers/.
|
||||
|
||||
The MzScheme and MrEd source code should compile and execute on
|
||||
The Racket and GRacket source code should compile and execute on
|
||||
Windows, Mac OS X, or any Unix/X platform (including Linux).
|
||||
|
||||
Per-platform instructions are below.
|
||||
|
||||
Please report bugs via one of the following:
|
||||
- DrScheme's "submit bug report" menu (preferred)
|
||||
- http://bugs.plt-scheme.org/
|
||||
- the mailing list (plt-scheme@list.cs.brown.edu) (last resort)
|
||||
- DrRacket's "submit bug report" menu (preferred)
|
||||
- http://bugs.racket-lang.org/
|
||||
- the mailing list (racket@list.cs.brown.edu) (last resort)
|
||||
|
||||
-PLT
|
||||
scheme@plt-scheme.org
|
||||
racket@racket-lang.org
|
||||
|
||||
========================================================================
|
||||
Compiling for Windows
|
||||
========================================================================
|
||||
|
||||
To compile with Microsoft Visual C, read the instructions in
|
||||
plt\src\worksp\README.
|
||||
racket\src\worksp\README.
|
||||
|
||||
To compile with Cygwin tools, follow the Unix instructions below, and
|
||||
be sure to configure with --enable-shared. The result is a Unix-style
|
||||
build, not a Windows-style build (e.g., MzScheme's `system-type'
|
||||
procedure returns 'unix, not 'windows, and MrEd uses X11).
|
||||
build, not a Windows-style build (e.g., Racket's `system-type'
|
||||
procedure returns 'unix, not 'windows, and GRacket uses X11).
|
||||
|
||||
========================================================================
|
||||
Compiling for Mac OS X
|
||||
|
@ -39,39 +38,41 @@ procedure returns 'unix, not 'windows, and MrEd uses X11).
|
|||
First, install the Mac OS X Developer Tools from Apple. Then, follow
|
||||
the Unix instructions below, but note the following:
|
||||
|
||||
* The MzScheme build creates a framework, PLT_MzScheme.framework,
|
||||
which is installed into plt/lib. This framework is used by the
|
||||
executable `mzscheme' that goes into plt/bin.
|
||||
* The Racket build creates a framework, Racket.framework, which is
|
||||
installed into racket/lib. This framework is used by the executable
|
||||
`racket' that goes into racket/bin.
|
||||
|
||||
* The MrEd build creates a framework, PLT_MrEd.framework, which is
|
||||
installed into plt/lib. This framework is used by the executable
|
||||
bundle MrEd.app that goes into the `plt' directory. Installation
|
||||
creates a script, plt/bin/mred, that runs the bundle.
|
||||
* The GRacket build creates a framework, GRacket.framework, which is
|
||||
installed into racket/lib. This framework is used by the executable
|
||||
bundle GRacket.app that goes into the "racket" directory.
|
||||
Installation creates a script, racket/bin/mred, that runs the
|
||||
bundle.
|
||||
|
||||
* The --enable-shared flag for `configure' must not be used,
|
||||
because builds create and use frameworks by default. Furthermore,
|
||||
--disable-shared is not supported. (Unless you use --enable-xonx...)
|
||||
* The --enable-shared flag for `configure' must not be used, because
|
||||
builds create and use frameworks by default. Furthermore,
|
||||
--disable-shared is not supported. (Unless you use
|
||||
--enable-xonx...)
|
||||
|
||||
* To build an X11-based MrEd, run `configure' with the --enable-xonx
|
||||
flag. Frameworks are not used for such builds, so --enable-shared
|
||||
is allowed. The --enable-xonx flag also affects the MzScheme build,
|
||||
so that `system-type' reports 'unix.
|
||||
* To build an X11-based GRacket, run `configure' with the
|
||||
--enable-xonx flag. Frameworks are not used for such builds, so
|
||||
--enable-shared is allowed. The --enable-xonx flag also affects the
|
||||
Racket build, so that `system-type' reports 'unix.
|
||||
|
||||
* To use --prefix without --enable-xonx, you must also supply
|
||||
--enable-macprefix. BEWARE! The directory structure for a non-xonx
|
||||
build does not fit a typical Unix directory structure. For example,
|
||||
frameworks are written directly to a "lib" subdirectory, and
|
||||
executables like "MrEd.app" are written directly to the prefix
|
||||
executables like "GRacket.app" are written directly to the prefix
|
||||
directory. (Requiring --enable-macprefix with --prefix for a
|
||||
non-xonx build helps prevent accidental installation of a Mac-style
|
||||
directory structure on top of an existing Unix-style directory
|
||||
structure.)
|
||||
|
||||
* Under Mac OS X 10.6 and later, `configure' by default selects
|
||||
32-bit mode for building MzScheme and MrEd. To build MzScheme in
|
||||
64-bit mode (MrEd is not support in that mode), use the following
|
||||
arguments to `configure': --enable-mac64, --enable-sgc, and
|
||||
--disable-mred.
|
||||
32-bit mode for building Racket and GRacket. To build Racket in
|
||||
64-bit mode (GRacket is not support in that mode), use the
|
||||
following arguments to `configure': --enable-mac64, --enable-sgc,
|
||||
and --disable-mred.
|
||||
|
||||
========================================================================
|
||||
Compiling for supported Unix variants (including Linux) or Cygwin
|
||||
|
@ -88,7 +89,7 @@ Quick instructions:
|
|||
make
|
||||
make install
|
||||
|
||||
This will create an in-place installation of PLT Scheme and store the
|
||||
This will create an in-place installation of Racket and store the
|
||||
results of C/C++ compilation in a separate `build' subdirectory,
|
||||
which is useful if you need to update your sources, delete the build,
|
||||
and start from scratch.
|
||||
|
@ -99,17 +100,17 @@ Quick instructions:
|
|||
|
||||
Detailed instructions:
|
||||
|
||||
0. If you have an old PLT installation in the target directory,
|
||||
0. If you have an old Racket installation in the target directory,
|
||||
remove it (unless you are using Subversion with an "in-place"
|
||||
build as described below).
|
||||
|
||||
Also, make sure that you have libraries and header files for Xft
|
||||
and Cairo (v1.23 and up) if you would like support for font
|
||||
smoothing (Xft) and graphics smoothing (Cairo). These libraries
|
||||
are not distributed with PLT Scheme. The configure process checks
|
||||
are not distributed with Racket. The configure process checks
|
||||
automatically whether these libraries are available.
|
||||
|
||||
OpenGL support for MrEd sometimes requires special configuration
|
||||
OpenGL support for GRacket sometimes requires special configuration
|
||||
(though generally not under Linux). See the note at the end of
|
||||
this section if OpenGL fails to work.
|
||||
|
||||
|
@ -141,10 +142,10 @@ Detailed instructions:
|
|||
the same directory as this README), with optional command-line
|
||||
arguments --prefix=TARGETDIR or --enable-shared (or both).
|
||||
|
||||
For example, if you want to install into /usr/local/plt using
|
||||
For example, if you want to install into /usr/local/racket using
|
||||
dynamic libraries, then run:
|
||||
|
||||
[here]configure --prefix=/usr/local/plt --enable-shared
|
||||
[here]configure --prefix=/usr/local/racket --enable-shared
|
||||
|
||||
Again, "[here]" is the directory path containing the `configure'
|
||||
script. If you follow the convention of running from a "build"
|
||||
|
@ -155,13 +156,13 @@ Detailed instructions:
|
|||
If the --prefix flag is omitted, the binaries are built for an
|
||||
in-place installation (i.e., the parent of the directory
|
||||
containing this README will be used directly). Unless
|
||||
--enable-shared is used, the plt directory can be moved later;
|
||||
most system administrators would recommend that you use
|
||||
--enable-shared, but the PLT Scheme developers distribute binaries
|
||||
--enable-shared is used, the "racket" directory can be moved
|
||||
later; most system administrators would recommend that you use
|
||||
--enable-shared, but the Racket developers distribute binaries
|
||||
built without --enable-shared.
|
||||
|
||||
The `configure' script generates the makefiles for building
|
||||
MzScheme and/or MrEd. The current directory at the time
|
||||
Racket and/or GRacket. The current directory at the time
|
||||
`configure' is run will be used as working space for building the
|
||||
executables (independent of --prefix). This build directory does
|
||||
not have to be in the source tree, even for an "in-place"
|
||||
|
@ -201,30 +202,31 @@ Detailed instructions:
|
|||
With Cygwin, you may need to use `make --unix'.
|
||||
|
||||
Binaries and libraries are placed in subdirectories of the build
|
||||
directory. For example, the `mzscheme' binary appears in the
|
||||
`mzscheme' directory.
|
||||
directory. For example, the `racket3m' binary appears in the
|
||||
`racket' directory.
|
||||
|
||||
4. Run `make install'.
|
||||
|
||||
This step copies binaries and libraries into place within the
|
||||
target installation. For example, the `mzscheme' binary is copied
|
||||
target installation. For example, the `racket' binary is copied
|
||||
into the "bin" directory for an in-place build, or into the
|
||||
executable directory for a --prefix build.
|
||||
|
||||
For a --prefix build, this step also creates a "config.rkt" module
|
||||
in a "config" collection, so that various PLT tools and libraries
|
||||
can find the installation directories. At this stage, in case you
|
||||
are packaging an installation instead of installing directly, you
|
||||
can redirect the installation by setting the "DESTDIR" environment
|
||||
variable. For example, `make DESTDIR=/tmp/plt-build install'
|
||||
places the installation into "/tmp/plt-build" instead of the
|
||||
location originally specified with --prefix. The resulting
|
||||
installation will not work, however, until it is moved to the
|
||||
location originally specified with --prefix.
|
||||
in a "config" collection, so that various Racket tools and
|
||||
libraries can find the installation directories. At this stage, in
|
||||
case you are packaging an installation instead of installing
|
||||
directly, you can redirect the installation by setting the
|
||||
"DESTDIR" environment variable. For example, `make
|
||||
DESTDIR=/tmp/racket-build install' places the installation into
|
||||
"/tmp/racket-build" instead of the location originally specified
|
||||
with --prefix. The resulting installation will not work, however,
|
||||
until it is moved to the location originally specified with
|
||||
--prefix.
|
||||
|
||||
Finally, the `make install' step compiles ".zo" bytecode files for
|
||||
installed Scheme source, and generates launcher programs like
|
||||
"DrScheme". Use `make plain-install' to install without compiling
|
||||
installed Racket source, and generates launcher programs like
|
||||
DrRacket. Use `make plain-install' to install without compiling
|
||||
".zo" files or creating launchers.
|
||||
|
||||
If the installation fails because the target directory cannot be
|
||||
|
@ -241,11 +243,11 @@ Detailed instructions:
|
|||
your "add-ons" directory, which you can most easily find by
|
||||
evaluating
|
||||
(find-system-path 'addon-dir)
|
||||
in MzScheme. In addition, if you configure with --enabled-shared,
|
||||
in Racket. In addition, if you configure with --enabled-shared,
|
||||
you may accumlate many unused versions of the dynamic libraries in
|
||||
your installation target.
|
||||
|
||||
After an "in-place" install without Subversion, the plt/src directory
|
||||
After an "in-place" install without Subversion, the racket/src directory
|
||||
is no longer needed, and it can be safely deleted. Build information
|
||||
is recorded in a "buildinfo" file in the installation.
|
||||
|
||||
|
@ -257,11 +259,11 @@ OpenGL, Unix, and pthreads
|
|||
--------------------------
|
||||
|
||||
On some Unix systems, programs that use the OpenGL library must also
|
||||
link to pthreads. To use MrEd's OpenGL support on these systems, MrEd
|
||||
link to pthreads. To use GRacket's OpenGL support on these systems, GRacket
|
||||
must be configured with the --enable-pthread option. Unfortunately,
|
||||
MzScheme's normal stack handling and use of signals (for its own
|
||||
Racket's normal stack handling and use of signals (for its own
|
||||
thread scheduling) do not interact well with pthreads. Thus, when
|
||||
pthreads are enabled, MzScheme and MrEd cannot use interupt timers,
|
||||
pthreads are enabled, Racket and GRacket cannot use interupt timers,
|
||||
and the stack is limited to 1MB. These restrictions can degrade
|
||||
performance and thread-responsiveness.
|
||||
|
||||
|
@ -270,14 +272,14 @@ and if --enable-pthread is not specified, `configure' prints a warning
|
|||
and disables GL support. On some systems, including at least FreeBSD
|
||||
with the MESA GL implementation (but not the NVIDIA implementation,
|
||||
which does not need pthreads), `configure' cannot detect the need for
|
||||
pthreads. On these platforms, GL support will be included in MrEd,
|
||||
pthreads. On these platforms, GL support will be included in GRacket,
|
||||
but it will not work properly unless --enable-pthread is specified.
|
||||
|
||||
========================================================================
|
||||
CGC versus 3m
|
||||
========================================================================
|
||||
|
||||
MzScheme and MrEd have two variants: CGC and 3m. The CGC variant is
|
||||
Racket and GRacket have two variants: CGC and 3m. The CGC variant is
|
||||
older, and it cooperates more easily with extensions written in C.
|
||||
The 3m variant is the default, and it usually provides better overall
|
||||
performance.
|
||||
|
@ -298,7 +300,7 @@ suffix and 3m variants with a "3m" suffix.
|
|||
Embedded Paths in the Executables
|
||||
========================================================================
|
||||
|
||||
On all platforms, the MzScheme and MrEd binaries embed a path to the
|
||||
On all platforms, the Racket and GRacket binaries embed a path to the
|
||||
main "collects" directory of library collections. This path can be
|
||||
relative to the executable. Multiple paths can be provided, in which
|
||||
case the first path is the main "collects" path, and additional paths
|
||||
|
@ -313,14 +315,14 @@ the overall list must be less than 1024 bytes long.
|
|||
As an alternative to editing an exeuctable directly, the
|
||||
`create-embedding-executable' procedure from `compiler/embed' can be
|
||||
used to change the embedded path. For example, the following program
|
||||
clones the MzScheme executable to "/tmp/mz" and changes the embedded
|
||||
clones the Racket executable to "/tmp/mz" and changes the embedded
|
||||
path in the clone to "/tmp/collects":
|
||||
|
||||
(require compiler/embed)
|
||||
(create-embedding-executable "/tmp/mz" #:collects-path "/tmp/collects")
|
||||
|
||||
Similarly, `mzc' in `--exe' or `--gui-exe' mode accepts a `--collects'
|
||||
flag to set the collection path in the generated executable.
|
||||
Similarly, `raco exe' mode accepts a `--collects' flag to set the
|
||||
collection path in the generated executable.
|
||||
|
||||
Under Windows, executables also embed a path to DLLs. For more
|
||||
information, see worksp\README.
|
||||
|
@ -329,60 +331,13 @@ Paths to all other installation directories are found through the
|
|||
"config.rkt" library of the "config" collection. Search the
|
||||
documentation for "config search paths" for more information.
|
||||
|
||||
========================================================================
|
||||
Compiling the OSKit-based Kernel
|
||||
========================================================================
|
||||
|
||||
To build the OSKit-based MzScheme kernel, run the configure script
|
||||
with the --enable-oskit or --enable-smalloskit flag. The result of
|
||||
compiling will be `mzscheme.multiboot' in the `mzscheme' build
|
||||
directory. It is a kernel in multiboot format.
|
||||
|
||||
Before building the MzScheme kernel, you must first install OSKit,
|
||||
which is available from the Flux Research Group at Utah:
|
||||
http://www.cs.utah.edu/projects/flux/oskit/
|
||||
|
||||
By default, configure assumes that OSKit is installed in
|
||||
/usr/local. To specify a different location for OSKit, define the
|
||||
OSKHOME environment variable.
|
||||
|
||||
For simplicity, the MzScheme kernel uses SGC rather than Boehm's
|
||||
conservative garbage collector.
|
||||
|
||||
The --enable-smalloskit configuration produces a kernel without
|
||||
networking or filesystem support. The kernel created by
|
||||
--enable--oskit accepts filesystem and networking configuration
|
||||
information on its multiboot command line via the --fs and --net
|
||||
flags:
|
||||
|
||||
--fs <drive> <partition> : mounts the given partition as the root
|
||||
directory. For example, to mount the seventh parition on main disk,
|
||||
supply: --fs hda f. Many filesystem formats are supported,
|
||||
including EXT2, MSDOS, and VFAT (all of the ones supported by
|
||||
Linux; see OSKit for details). The standard kernel can only mount
|
||||
one filesystem per run; hack main.c to get more.
|
||||
|
||||
--net <address> <netmask> <gateway> : initializes ethernet support
|
||||
for MzScheme's TCP primitives. Example: --net 128.42.6.101
|
||||
255.255.255.0 128.42.6.254. Many types of ethernet cards are
|
||||
supported (the ones supported by FreeBSD; see OSKit for details).
|
||||
|
||||
Each of --fs and --net should be used once at most. The --fs and --net
|
||||
flags must appear before any other command-line arguments, which are
|
||||
handled by MzScheme in the usual way.
|
||||
|
||||
To access a filesystem or the network from non-multiboot kernels
|
||||
(e.g., a LILO-compatible kernel), you must hardwire filesystem and
|
||||
networking parameters in oskglue.inc when compiling the kernel; see
|
||||
oskglue.inc for details (grep for `hardwire').
|
||||
|
||||
========================================================================
|
||||
Porting to New Platforms
|
||||
========================================================================
|
||||
|
||||
At a mininum, to port MzScheme to a new platform, edit
|
||||
mzscheme/sconfig.h to provide a platform-specific compilation
|
||||
information. As distributed, mzscheme/sconfig.h contains
|
||||
At a mininum, to port Racket to a new platform, edit
|
||||
racket/sconfig.h to provide a platform-specific compilation
|
||||
information. As distributed, racket/sconfig.h contains
|
||||
configurations for the following platforms:
|
||||
|
||||
Windows (x86)
|
||||
|
@ -395,7 +350,7 @@ configurations for the following platforms:
|
|||
NetBSD (x86)
|
||||
|
||||
If your platfrom is not supported by the Boehm garbage collector
|
||||
(distributed with PLT source), provide the `--enable-sgc' flag to
|
||||
(distributed with Racket source), provide the `--enable-sgc' flag to
|
||||
`configure'.
|
||||
|
||||
========================================================================
|
||||
|
@ -405,7 +360,7 @@ If your platfrom is not supported by the Boehm garbage collector
|
|||
Garbage Collector
|
||||
-----------------
|
||||
|
||||
The conservative garbage collector distributed with MzScheme (in the
|
||||
The conservative garbage collector distributed with Racket (in the
|
||||
gc directory) has been modified slightly from Boehm's standard
|
||||
distribution. Mostly, the change modify the way that object
|
||||
finalization is handled.
|
||||
|
@ -413,14 +368,14 @@ finalization is handled.
|
|||
Configuration Options
|
||||
---------------------
|
||||
|
||||
By default, MzScheme is compiled without support for single-precision
|
||||
By default, Racket is compiled without support for single-precision
|
||||
floating point numbers. This and other options can be modified by
|
||||
setting flags in mzscheme/sconfig.h.
|
||||
setting flags in racket/sconfig.h.
|
||||
|
||||
Modifying MzScheme
|
||||
Modifying Racket
|
||||
------------------
|
||||
|
||||
If you modify MzScheme and change any primitive syntax or the
|
||||
If you modify Racket and change any primitive syntax or the
|
||||
collection of built-in identifers, be sure to turn off
|
||||
USE_COMPILED_MACROS in schminc.h. Otherwise, MzScheme won't start.
|
||||
USE_COMPILED_MACROS in schminc.h. Otherwise, Racket won't start.
|
||||
See schminc.h for details.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
This is the MzScheme source code directory. See ../README for general
|
||||
This is the Racket source code directory. See ../README for general
|
||||
information on compiling it.
|
||||
|
||||
Compiled binaries, documentation, and up-to-date information about
|
||||
MzScheme are at:
|
||||
http://www.plt-scheme.org/software/mzscheme/
|
||||
Racket are at:
|
||||
http://www.racket-lang.org/
|
||||
|
|
|
@ -20,22 +20,22 @@ used to build Racket and GRacket, but not MzCOM and MysterX.
|
|||
Racket and GRacket also compile with Cygwin gcc (a free compiler from
|
||||
GNU and Cygnus Solutions), but the result is a Unix-style
|
||||
installation, not a Window-style installation. To compile with gcc,
|
||||
follow the instructions in plt\src\README (which contains a short
|
||||
follow the instructions in racket\src\README (which contains a short
|
||||
Windows-specific section).
|
||||
|
||||
With an MSVC-built Racket, compatible extensions can be built with
|
||||
other compilers. Build with Cygwin and copy the installed plt\lib\gcc
|
||||
other compilers. Build with Cygwin and copy the installed racket\lib\gcc
|
||||
to a MSVC-based build to support Cygwin-built extensions. To support
|
||||
Borland-built extensions, cd to plt\src\racket\dynsrc and run
|
||||
Borland-built extensions, cd to racket\src\racket\dynsrc and run
|
||||
mkbordyn.bat (which requires bcc23.exe, of course).
|
||||
|
||||
As always, please report bugs via one of the following:
|
||||
- Help Desk's "submit bug report" link (preferred)
|
||||
- http://bugs.plt-scheme.org/
|
||||
- bugs@plt-scheme.org (last resort)
|
||||
- DrRacket's "submit bug report" menu (preferred)
|
||||
- http://bugs.rackt-lang.org/
|
||||
- bugs@racket-lang.org (last resort)
|
||||
|
||||
-PLT
|
||||
scheme@plt-scheme.org
|
||||
racket@racket-lang.org
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Building Racket and GRacket
|
||||
|
@ -43,21 +43,21 @@ Building Racket and GRacket
|
|||
|
||||
If you're using MSVC 8.0 (not Express), and if `devenv.exe' is in your
|
||||
path, then you can just run
|
||||
plt\src\worksp\build.bat
|
||||
racket\src\worksp\build.bat
|
||||
from its own directory to perform all steps up to "Versioning",
|
||||
including the MzCOM and MysterX steps.
|
||||
|
||||
The CGC variants of Racket, MzCOM, GRacket, and MysterX can be built
|
||||
via Visual Studio projects. The 3m variants are built by a Scheme
|
||||
via Visual Studio projects. The 3m variants are built by a Racket
|
||||
script that runs the MSVC command-line tools. (See "CGC versus 3m"
|
||||
in plt\src\README if you don't know about the two variants.)
|
||||
in racket\src\README if you don't know about the two variants.)
|
||||
|
||||
The 3m build requires some parts of the CGC build:
|
||||
plt\src\worksp\racket
|
||||
plt\src\worksp\wxutils
|
||||
plt\src\worksp\jpeg
|
||||
plt\src\worksp\png
|
||||
plt\src\worksp\zlib
|
||||
racket\src\worksp\racket
|
||||
racket\src\worksp\wxutils
|
||||
racket\src\worksp\jpeg
|
||||
racket\src\worksp\png
|
||||
racket\src\worksp\zlib
|
||||
It's simplest to just build the main CGC solutions, which
|
||||
automatically build all of the above projects, and then build
|
||||
3m.
|
||||
|
@ -67,42 +67,42 @@ Building RacketCGC and GRacketCGC
|
|||
|
||||
The CGC source code for RacketCGC and GRacketCGC is split into several
|
||||
projects that are grouped into a few solutions. To build the `X'
|
||||
solution with Visual Studio, open the file plt\src\worksp\X\X.sln.
|
||||
solution with Visual Studio, open the file racket\src\worksp\X\X.sln.
|
||||
|
||||
To build RacketCGC, build the Racket solution in
|
||||
plt\src\worksp\racket - makes plt\RacketCGC.exe
|
||||
racket\src\worksp\racket - makes racket\RacketCGC.exe
|
||||
|
||||
[When you open the solution, it may default to "Debug"configuration.
|
||||
Switch to "Release" before building.]
|
||||
[When you open the solution, it may default to "Debug"
|
||||
configuration. Switch to "Release" before building.]
|
||||
|
||||
To build GRacketCGC, build the GRacket solution:
|
||||
plt\src\worksp\gracket - makes plt\GRacketCGC.exe
|
||||
racket\src\worksp\gracket - makes racket\GRacketCGC.exe
|
||||
|
||||
[Again, switch to the "Release" configuration if necessary.]
|
||||
|
||||
The build processes for RacketCGC automatically builds
|
||||
libmzgc - makes plt\lib\libmzgcxxxxxxx.dll and
|
||||
plt\src\worksp\libmzgc\Release\libmzgcxxxxxxx.lib
|
||||
mzsrc - makes plt\lib\libracketxxxxxxx.dll and
|
||||
plt\src\worksp\mzsrc\Release\mzsrcxxxxxxx.lib
|
||||
libmzgc - makes racket\lib\libmzgcxxxxxxx.dll and
|
||||
racket\src\worksp\libmzgc\Release\libmzgcxxxxxxx.lib
|
||||
libracket - makes racket\lib\libracketxxxxxxx.dll and
|
||||
racket\src\worksp\mzsrc\Release\mzsrcxxxxxxx.lib
|
||||
|
||||
The build process for GRacketCGC automatically builds
|
||||
libmzgc - as above
|
||||
libracket - as above
|
||||
libgracket - makes plt\lib\libgracketxxxxxxx.dll and
|
||||
plt\src\worksp\libgracket\Release\libgracketxxxxxxx.lib
|
||||
wxutils - makes plt\src\worksp\wxutils\Release\wxutils.lib
|
||||
wxwin - makes plt\src\worksp\wxwin\Release\wxwin.lib
|
||||
wxs - makes plt\src\worksp\wxs\Release\wxs.lib
|
||||
wxme - makes plt\src\worksp\wxme\Release\wxme.lib
|
||||
jpeg - makes plt\src\worksp\jpeg\Release\jpeg.lib
|
||||
png - makes plt\src\worksp\jpeg\Release\png.lib
|
||||
zlib - makes plt\src\worksp\jpeg\Release\zlib.lib
|
||||
libgracket - makes racket\lib\libgracketxxxxxxx.dll and
|
||||
racket\src\worksp\libgracket\Release\libgracketxxxxxxx.lib
|
||||
wxutils - makes racket\src\worksp\wxutils\Release\wxutils.lib
|
||||
wxwin - makes racket\src\worksp\wxwin\Release\wxwin.lib
|
||||
wxs - makes racket\src\worksp\wxs\Release\wxs.lib
|
||||
wxme - makes racket\src\worksp\wxme\Release\wxme.lib
|
||||
jpeg - makes racket\src\worksp\jpeg\Release\jpeg.lib
|
||||
png - makes racket\src\worksp\jpeg\Release\png.lib
|
||||
zlib - makes racket\src\worksp\jpeg\Release\zlib.lib
|
||||
|
||||
In addition, building RacketCGC executes
|
||||
plt\src\racket\dynsrc\mkmzdyn.bat
|
||||
which copies .exp, .obj, and .lib files into plt\lib\, and also copies
|
||||
DLLs from the "extradlls" directory to to plt\lib\.
|
||||
racket\src\racket\dynsrc\mkmzdyn.bat
|
||||
which copies .exp, .obj, and .lib files into racket\lib\, and also copies
|
||||
DLLs from the "extradlls" directory to to racket\lib\.
|
||||
|
||||
Building Racket3m and GRacket3m
|
||||
------------------------------
|
||||
|
@ -114,13 +114,13 @@ binaries:
|
|||
path. You may need to run "vsvars32.bat" from your Visual Studio
|
||||
installation, so that PATH and other environment variables are set.
|
||||
|
||||
2. Change directories to plt\src\worksp\gc2 and run
|
||||
2. Change directories to racket\src\worksp\gc2 and run
|
||||
|
||||
..\..\..\racketcgc.exe -cu make.rkt
|
||||
..\..\..\racketcgc.exe -c make.rkt
|
||||
|
||||
The resulting Racket.exe and GRacket.exe will appear in the "plt"
|
||||
directory, along with DLLs libracket3mxxxxxxx.dll and
|
||||
libgracket3mxxxxxxx.dll in plt/lib. (There is no corresponding
|
||||
The resulting Racket.exe and GRacket.exe will appear in the top-level
|
||||
"racket" directory, along with DLLs libracket3mxxxxxxx.dll and
|
||||
libgracket3mxxxxxxx.dll in racket/lib. (There is no corresponding
|
||||
libmzgc3mxxxxxxx.dll. Instead, it is merged with
|
||||
libracket3mxxxxxxx.dll.)
|
||||
|
||||
|
@ -128,14 +128,14 @@ Building Collections and Other Executables
|
|||
------------------------------------------
|
||||
|
||||
If you're building from scratch, you'll also want the starter programs
|
||||
used by the launcher collection to create "Setup PLT.exe". Build the
|
||||
used by the launcher collection to create "raco.exe". Build the
|
||||
following solutions:
|
||||
|
||||
plt\src\worksp\mzstart - makes plt\collects\launcher\mzstart.exe
|
||||
plt\src\worksp\mrstart - makes plt\collects\launcher\mrstart.exe
|
||||
racket\src\worksp\mzstart - makes racket\collects\launcher\mzstart.exe
|
||||
racket\src\worksp\mrstart - makes racket\collects\launcher\mrstart.exe
|
||||
|
||||
[The "mzstart" and "mrstart" programs have no CGC versus 3m
|
||||
distinction.]
|
||||
[The "mzstart" and "mrstart" programs have no CGC versus 3m
|
||||
distinction.]
|
||||
|
||||
Then, set up all the other executables (besides GRacket[CGC].exe and
|
||||
Racket[CGC].exe) by running
|
||||
|
@ -146,7 +146,7 @@ This last step makes the .zo files, too. To skip compiling .zos, add
|
|||
-n to the end of the above command.
|
||||
|
||||
If you've already built before, then this step can be simplied: just
|
||||
re-run "Setup PLT.exe", which was created the first time.
|
||||
re-run `raco setup', where "raco.exe" was created the first time.
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
@ -172,7 +172,7 @@ The "winvers.rkt" program will have to make a temporary copy of
|
|||
racket.exe and the "lib" sub-directory (into the temporary
|
||||
directory), and it will re-launch Racket a couple of times. Every
|
||||
".exe", ".dll", ".lib", ".def", ".exp", and ".pdb" file within the
|
||||
"plt" tree is updated to replace "xxxxxxxx" with a specific version
|
||||
"racket" tree is updated to replace "xxxxxxxx" with a specific version
|
||||
number.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
@ -188,13 +188,13 @@ Building MzCOM
|
|||
--------------
|
||||
|
||||
To build MzCOMCGC, make the MzCOM solution in
|
||||
plt\src\worksp\mzcom - makes plt\MzCOMCGC.exe
|
||||
racket\src\worksp\mzcom - makes racket\MzCOMCGC.exe
|
||||
|
||||
Use the "Release" configuration.
|
||||
|
||||
After building MzCOMCGC, you can build the 3m variant by
|
||||
|
||||
1. Change directories to plt\src\worksp\mzcom and run
|
||||
1. Change directories to racket\src\worksp\mzcom and run
|
||||
|
||||
..\..\..\racketcgc.exe -cu xform.rkt
|
||||
|
||||
|
@ -203,21 +203,21 @@ After building MzCOMCGC, you can build the 3m variant by
|
|||
|
||||
3. Build (in Visual Studio).
|
||||
|
||||
The result is plt\MzCOM.exe.
|
||||
The result is racket\MzCOM.exe.
|
||||
|
||||
Building MysterX
|
||||
----------------
|
||||
|
||||
To build MysterXCGC, make the MysterX solution in
|
||||
plt\src\worksp\libmysterx - makes plt\lib\myssink.dll,
|
||||
plt\lib\myspage.dll, and mxmain.dll in
|
||||
racket\src\worksp\libmysterx - makes racket\lib\myssink.dll,
|
||||
racket\lib\myspage.dll, and mxmain.dll in
|
||||
collects\mysterx\private\compiled\native\win32\i386
|
||||
|
||||
Use the "Release" configuration.
|
||||
|
||||
After building MysterXCGC, you can build the 3m variant by
|
||||
|
||||
1. Change directories to plt\src\worksp\libmysterx and run
|
||||
1. Change directories to racket\src\worksp\libmysterx and run
|
||||
|
||||
..\..\..\racketcgc.exe -cu xform.rkt
|
||||
|
||||
|
@ -235,11 +235,11 @@ Finding DLLs
|
|||
|
||||
Since the DLLs libracket3mxxxxxxx.dll (or libmzgcxxxxxxx.dll and
|
||||
libracketxxxxxxx.dll) and libgracket3mxxxxxxx.dll (or
|
||||
libgracketxxxxxxx.dll) are installed into plt\lib\ instead of just
|
||||
plt\, the normal search path for DLLs would not find them when running
|
||||
libgracketxxxxxxx.dll) are installed into racket\lib\ instead of just
|
||||
racket\, the normal search path for DLLs would not find them when running
|
||||
"Racket.exe" or "GRacket.exe". To find the DLLs, the executables are
|
||||
"delayload" linked with the DLLs, and the executables explicitly load
|
||||
the DLLs from plt\lib\ on start-up.
|
||||
the DLLs from racket\lib\ on start-up.
|
||||
|
||||
The relative DLL path is embedded in each executable, and it can be
|
||||
replaced with a path of up to 512 characters. The path is stored in
|
||||
|
@ -262,16 +262,16 @@ The Racket DLLs can be used within an embedding application.
|
|||
|
||||
The libraries
|
||||
|
||||
plt\lib\win32\msvc\libracket3mxxxxxxx.lib
|
||||
plt\lib\win32\msvc\libracketxxxxxxx.lib
|
||||
plt\lib\win32\msvc\libmzgcxxxxxxx.lib
|
||||
racket\lib\win32\msvc\libracket3mxxxxxxx.lib
|
||||
racket\lib\win32\msvc\libracketxxxxxxx.lib
|
||||
racket\lib\win32\msvc\libmzgcxxxxxxx.lib
|
||||
|
||||
which are created by the mzsrc and gc projects, provide linking
|
||||
information for using the libracket3mxxxxxxx.dll,
|
||||
libracketxxxxxxx.dll, and libmzgcxxxxxxx.dll DLLs. The versioning
|
||||
script adjusts the names, as described above.
|
||||
|
||||
See the "Inside PLT Racket" manual for more information about using
|
||||
See the "Inside Racket" manual for more information about using
|
||||
these libraries to embed Racket in an application.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user