| 1 | ||
|
Editor: page
Time: 2007/11/13 00:31:13 GMT-8 |
||
| Note: transferred from axiom-developer.org | ||
changed: - WARNING: This page is currently out of date. Read AxiomSources instead. Browse the Axiom Silver source code SVN repository online at: "SourceForge":http://axiom.svn.sourceforge.net/viewvc/axiom 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: 1 Download:: $ wget http://www.eecs.harvard.edu/~nr/noweb/dist/noweb-2.11b.tgz 2 Unpack:: $ tar xzf noweb-2.11b.tgz $ cd noweb-2.11b/src 3 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 4 Compile:: $ make 5 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=<sf-user-id>' to the above commands, where <sf-user-id> 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. * First, create a mirror depot for the Axiom SVN repository. Assuming you already have initialized your default depotmap, issue the command:: $ svk depotmap /mirror ~/.svk/remote That command will create a depot with depotname '/mirror/' and repopath '~/.svk/remote'. We assume neither already exists, otherwise change the names accordingly. * Second, you have to actually mirror the Axiom SVN repository. Issue:: $ svk mirror /mirror/axiom https://axiom.svn.sourceforge.net/svnroot/axiom * Last, bring your mirror in sync with the Axiom SVN repository:: $ svk sync /mirror/axiom 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":http://svkbook.elixus.org/ and read the "SVK-Visual-Guide":http://pickscrape.woobling.org/svk-visual-guide.pdf . 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.
WARNING: This page is currently out of date. Read AxiomSources instead.
the Axiom Silver source code SVN repository online at: SourceForge
You need a working SVN command that supports the HTTP protocol. You can get a copy from
Here is an excellent online book on version control with Subversion
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
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
To build Axiom you also require noweb the Literate Programming tools
developed by Norman Ramsey. To build noweb follow these instructions:
$ wget http://www.eecs.harvard.edu/~nr/noweb/dist/noweb-2.11b.tgz
$ tar xzf noweb-2.11b.tgz
$ cd noweb-2.11b/src
--- 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
$ make
$ su
$ make install
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=
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.
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.
$ svk depotmap /mirror ~/.svk/remote
That command will create a depot with depotname /mirror/ and repopath
~/.svk/remote. We assume neither already exists, otherwise change the names
accordingly.
$ svk mirror /mirror/axiom https://axiom.svn.sourceforge.net/svnroot/axiom
$ svk sync /mirror/axiom
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 .
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
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.
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.