login  home  contents  what's new  discussion  bug reports     help  links  subscribe  changes  refresh  edit

Edit detail for AxiomSilverBranch revision 1 of 1

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.

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:

    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=' 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.

  • 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? 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.