WARNING: This page is currently out of date. Read AxiomSources instead.
Browse
the Axiom Silver source code SVN repository online at:
SourceForge
To obtain a working copy from the Sourceforge SVN repository
- SVN requirements:
You need a working SVN command that supports the HTTP protocol.
You can get a copy from
http://subversion.tigris.org/
Here is an excellent online book on version control with Subversion
http://svnbook.red-bean.com/
- read-only access:
Check out the silver branch of Axiom source code with:
svn co https://axiom.svn.sourceforge.net/svnroot/axiom/trunk axiom.silver
That command will create a directory, named axiom.silver, to
hold checked out copy of the Axiom source code. Please, feel free to
replace axiom.silver with any name that suits your taste.
If you are only interested in a particular development branch, say
build-improvement, you may say:
svn co https://axiom.svn.sourceforge.net/svnroot/axiom/branches/build-improvements \
axiom.build-improvements
- Current GCL version: 2.6.8pre
The build-improvements branch includes a copy of the gcl-2.6.8pre
source code in the build-improvements/gcl. The contents of this
directory are synchronized with the GCL CVS distribution as required.
If GCL is not pre-installed or if the configure option --with-gcl
is used, then GCL is built from these sources prior to building Axiom.
If you would prefer to build GCL from the most up to date version of
gcl-2.6.8pre you can obtain a copy directly from the GCL CVS via the
commands:
$ export CVSROOT=:pserver:anonymous@cvs.sv.gnu.org:/sources/gcl
$ cvs co -d gcl-2.6.8pre -r Version_2_6_8pre gcl
Then build and install GCL in the usual manner:
$ cd gcl-2.6.8pre
$ ./configure
$ make
$ su
$ make install
- noweb literate programming tools
To build Axiom you also require noweb the Literate Programming tools
developed by Norman Ramsey. To build noweb follow these instructions:
- Download:
$ wget http://www.eecs.harvard.edu/~nr/noweb/dist/noweb-2.11b.tgz
- Unpack:
$ tar xzf noweb-2.11b.tgz
$ cd noweb-2.11b/src
- Patch Makefile as follows:
--- Makefile.old 2007-04-20 08:00:16.505001000 -0400
+++ Makefile.new 2007-04-20 08:00:39.981085000 -0400
@@ -18,9 +18,9 @@
# MAN7EXT is the extension for the nowebstyle man page (usually 7)
# TEXINPUTS is the directory for TeX macro files
# ELISP is the directory for emacs lisp files, or /dev/null not to install
-BIN=/usr/local/noweb
-LIB=/usr/local/noweb/lib
-MAN=/usr/local/noweb/man
+BIN=/usr/local/bin
+LIB=/usr/local/lib
+MAN=/usr/local/man
MANEXT=1
MAN7EXT=7
TEXINPUTS=/usr/local/tex/inputs
- Compile:
$ make
- Install:
$ su
$ make install
- read and write access:
You need to have a Sourceforge user id, and be registered as a developer.
To obtain a working copy with write privilege to the sourceforge
repository you might want to append '--username=' to the
above commands, where is your sourceforge user id.
- "Core" developers:
Some developers might prefer to have a working copy of the "whole"
axiom repository, in that case they might want to issue:
svn co https://axiom.svn.sourceforge.net/svnroot/axiom axiom
That will check out the Axiom main repository into a local
directory named axiom. It should contain the following
subdirectories:
branches/
tags/
trunk/
silver/
that are self-explanatory.
You must run again the svn command if a timeout occure during downloading.
Working on the SVN repository with SVK
If, like me, you prefer to work with SVK on the SVN repository instead
of Subversion directly either because you are used to SVK, or because you
work with many copies and are particularly attentive to disk space consumption,
or because you would like to "star-merge" then you might want to follow the
following steps.
That command will create a depot with depotname /mirror/ and repopath
~/.svk/remote. We assume neither already exists, otherwise change the names
accordingly.
That command should bring your local mirror of Axiom source code up-to-date
with respect to the SVN repository.
Checking out a copy from your local SVK local mirror is simple:
$ svk co /mirror/axiom/trunk axiom.silver
To learn more about SVK commands, please consult the online SVKBook? and read
the SVK-Visual-Guide .
Building Axiom from the development source
The Axiom build machinery is very complex, stratified in many
layers. At the moment the build system is known to support only
native build-in-source. This means Axiom is known to build for a
large set of target platforms where
- the configure and make commands are issued from the directory
containing the Axiom source codes, and the build happens in that
directory;
- no cross-compilation is involved.
You might find it convenient, especially if you are working with
repository files (either from SVN or CVS), to have the build happens
in a different directory than the one containing Axiom pristine
sources. To that end, you can create a build directory that mirrors
the source directory as follows:
# create a directory for building axiom
$ mkdir axiom-build-dir
# mirror the source directory structure with lndir
# do not use a path with .. in lndir
$ cd axiom-build-dir && lndir /absolute/path/to/axiom.silver
Here the lndir command creates a shadow directory of symbolic links
to the Axiom source directory (here axiom.silver). Once that is done,
you can:
# configure the source directory
$ ./configure
Follow the instructions displayed after the configuration step.
At the moment, Axiom does not support the standard GNU-style configure
command switches. Work is being done to remedy that situation.
Preparing and submitting patches
When contributing a patch for consideration in the silver branch,
please send a message to the mailing list:
axiom-developer@nongnu.org
that contains the patch in Naur format (e.g. as produced by diff -Naur,
see HowToSubmitPatches),
and a ChangeLog? entry briefly explaining the changes. Please remember
that your modifications must follow the pamphlet style where required,
be properly documented. Also, remember that patches for inclusion in
the silver branch must be prepared against the current "trunk" of the
SVN repository. To that end, you might first want to update your
working copy with:
$ svn update -s
before producing the patch that you will submit. We assume that
before sending your patch, you have built and tested axiom as per your
modification. Be sure to indicate on which plateforms you have tested
your changes.