Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
cmucl
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Carl Shapiro
cmucl
Commits
cb825da9
Commit
cb825da9
authored
6 years ago
by
Raymond Toy
Browse files
Options
Downloads
Patches
Plain Diff
Rename BUILDING to BUILDIND.md and convert to markdown
Initial conversion of BUILDING to markdown.
parent
b664e46d
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
BUILDING.md
+16
-17
16 additions, 17 deletions
BUILDING.md
with
16 additions
and
17 deletions
BUILDING
→
BUILDING
.md
+
16
−
17
View file @
cb825da9
-*- Mode: text -*-
Building CMU CL
Building CMU CL
===============
===============
...
@@ -13,13 +12,13 @@ General Requirements
...
@@ -13,13 +12,13 @@ General Requirements
In order to build CMU CL, you will need:
In order to build CMU CL, you will need:
a
)
A working CMU CL binary. There is no way around this requirement!
a
.
A working CMU CL binary. There is no way around this requirement!
This binary can either be for the platform you want to target, in
This binary can either be for the platform you want to target, in
that case you can either recompile or cross-compile, or for another
that case you can either recompile or cross-compile, or for another
supported platform, in that case you must cross-compile, obviously.
supported platform, in that case you must cross-compile, obviously.
b)
A supported C compiler for the C runtime code.
a.
A supported C compiler for the C runtime code.
Most of the time, this means GNU gcc, though for some ports it
Most of the time, this means GNU gcc, though for some ports it
means the vendor-supplied C compiler. The compiler must be
means the vendor-supplied C compiler. The compiler must be
...
@@ -28,13 +27,13 @@ b) A supported C compiler for the C runtime code.
...
@@ -28,13 +27,13 @@ b) A supported C compiler for the C runtime code.
Note for FreeBSD 10 and above: The build requires gcc (Clang will
Note for FreeBSD 10 and above: The build requires gcc (Clang will
not work) and the lib32 compatiblity package.
not work) and the lib32 compatiblity package.
c)
GNU make
a.
GNU make
This has to be available either as gmake or make in your PATH, or
This has to be available either as gmake or make in your PATH, or
the MAKE environment variable has to be set to point to the correct
the MAKE environment variable has to be set to point to the correct
binary.
binary.
d)
The CMU CL source code
a.
The CMU CL source code
Here you can either use one of the release source tarballs, or
Here you can either use one of the release source tarballs, or
check out the source code directly from the public CMUCL git
check out the source code directly from the public CMUCL git
...
@@ -48,7 +47,7 @@ though recompilation against 2.x Motif probably works as well.
...
@@ -48,7 +47,7 @@ though recompilation against 2.x Motif probably works as well.
Setting up a build environment
Setting up a build environment
------------------------------
------------------------------
1.
)
Create a base directory and change to it
1.
Create a base directory and change to it
mkdir cmucl ; cd cmucl
mkdir cmucl ; cd cmucl
...
@@ -77,7 +76,7 @@ want to do that and in case you know, somehow, that the version of
...
@@ -77,7 +76,7 @@ want to do that and in case you know, somehow, that the version of
CMUCL you are building from will build the sources you have, here is a
CMUCL you are building from will build the sources you have, here is a
quick guide.
quick guide.
a)
Simple builds
1.
Simple builds
Use this to build from a version of CMUCL that is very close to the
Use this to build from a version of CMUCL that is very close to the
sources you are trying to build now:
sources you are trying to build now:
...
@@ -93,7 +92,7 @@ a) Simple builds
...
@@ -93,7 +92,7 @@ a) Simple builds
load-world.sh three times. See below for descriptions of these
load-world.sh three times. See below for descriptions of these
scripts.
scripts.
b)
Slightly more complicated builds
1.
Slightly more complicated builds
For slightly more complicated builds, you may need to use some
For slightly more complicated builds, you may need to use some
bootstrap files. See below for more information about these
bootstrap files. See below for more information about these
...
@@ -109,7 +108,7 @@ b) Slightly more complicated builds
...
@@ -109,7 +108,7 @@ b) Slightly more complicated builds
As in a) above, three builds are done, and the result is in the
As in a) above, three builds are done, and the result is in the
directory build-4.
directory build-4.
c)
More complicated builds
1.
More complicated builds
If you have more complicated builds, this script probably will not
If you have more complicated builds, this script probably will not
work, and definitely does not handle cross-compiles. In this case,
work, and definitely does not handle cross-compiles. In this case,
...
@@ -136,7 +135,7 @@ and cross-compilation. We'll first look at normal recompilation:
...
@@ -136,7 +135,7 @@ and cross-compilation. We'll first look at normal recompilation:
The recompilation process basically consists of 4 phases/parts:
The recompilation process basically consists of 4 phases/parts:
a)
Compiling the lisp files that make up the standard kernel.
1.
Compiling the lisp files that make up the standard kernel.
This happens in your current CMU CL process, using your current
This happens in your current CMU CL process, using your current
CMU CL's normal file compiler. This phase currently consists of 3
CMU CL's normal file compiler. This phase currently consists of 3
...
@@ -148,7 +147,7 @@ a) Compiling the lisp files that make up the standard kernel.
...
@@ -148,7 +147,7 @@ a) Compiling the lisp files that make up the standard kernel.
or "compiling up a world", based on the name of the first
or "compiling up a world", based on the name of the first
sub-phase.
sub-phase.
b)
Building a new kernel.core file out of the so created files
1.
Building a new kernel.core file out of the so created files
This process, which is generally called genesis, and which is
This process, which is generally called genesis, and which is
controlled by src/tools/worldbuild.lisp, uses the newly compiled
controlled by src/tools/worldbuild.lisp, uses the newly compiled
...
@@ -190,7 +189,7 @@ b) Building a new kernel.core file out of the so created files
...
@@ -190,7 +189,7 @@ b) Building a new kernel.core file out of the so created files
If it doesn't inform you of this, you can skip directly to the last
If it doesn't inform you of this, you can skip directly to the last
phase d).
phase d).
c)
Recompiling the C runtime code, producing the "lisp" binary file
1.
Recompiling the C runtime code, producing the "lisp" binary file
This step is only needed if you haven't yet got a suitable lisp
This step is only needed if you haven't yet got a suitable lisp
binary, or if the internals.h file has changed during genesis (of
binary, or if the internals.h file has changed during genesis (of
...
@@ -206,7 +205,7 @@ c) Recompiling the C runtime code, producing the "lisp" binary file
...
@@ -206,7 +205,7 @@ c) Recompiling the C runtime code, producing the "lisp" binary file
the C sources and recompile because of this, you can do that before
the C sources and recompile because of this, you can do that before
Phase b), so that you don't have to perform that phase twice.
Phase b), so that you don't have to perform that phase twice.
d)
Populating the kernel.core, and dumping a new lisp.core file.
1.
Populating the kernel.core, and dumping a new lisp.core file.
In this phase, which is controlled by src/tools/worldload.lisp, and
In this phase, which is controlled by src/tools/worldload.lisp, and
hence often called world-load, the kernel.core file is started up
hence often called world-load, the kernel.core file is started up
...
@@ -218,11 +217,11 @@ We're not quite done yet. This produces just a basic lisp.core.
...
@@ -218,11 +217,11 @@ We're not quite done yet. This produces just a basic lisp.core.
To complete the build so that you something similar to what the
To complete the build so that you something similar to what the
releases of CMUCL do, there are a few more steps:
releases of CMUCL do, there are a few more steps:
e)
Build the utilities like Gray streams, simple streams, CLX, CLM,
1.
Build the utilities like Gray streams, simple streams, CLX, CLM,
and Hemlock. Use the bin/build-utils.sh script for this, as
and Hemlock. Use the bin/build-utils.sh script for this, as
described below
described below
f)
Create tarfiles using the bin/make-dist.sh script, as
1.
Create tarfiles using the bin/make-dist.sh script, as
explained below.
explained below.
With these tarfiles, you can install them anywhere. The contents of
With these tarfiles, you can install them anywhere. The contents of
...
@@ -504,7 +503,7 @@ binaries built from earlier sources can compile the sources containing
...
@@ -504,7 +503,7 @@ binaries built from earlier sources can compile the sources containing
that change. There are two forms of boostrapping that can be
that change. There are two forms of boostrapping that can be
required:
required:
a)
Bootfiles
1.
Bootfiles
The maintainers try to make bootfiles available, that allow going
The maintainers try to make bootfiles available, that allow going
from an old release to the next release. These are located in the
from an old release to the next release. These are located in the
...
@@ -525,7 +524,7 @@ a) Bootfiles
...
@@ -525,7 +524,7 @@ a) Bootfiles
Alternatively, the bootstrap file can just "load" the individual
Alternatively, the bootstrap file can just "load" the individual
bootfiles as needed.
bootfiles as needed.
b)
Cross-compiling
1.
Cross-compiling
Under some circumstances, bootstrap code will not be sufficient,
Under some circumstances, bootstrap code will not be sufficient,
and a cross-compilation is needed. In that case you will have to
and a cross-compilation is needed. In that case you will have to
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment