Skip to content

tkluck/sage

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quick start
===========
You can use the following commands to install sage from this git repository:

    git submodule update --init
    make

if you're on linux-amd64. In theory, you have to make some changes for other platforms:

    git submodule update --init
    make bootstrap

and update the local/etc/portage/make.profile to be a symlink to the right profile
for your host. Then continue:

    make

and done!

Parallel building
=================
If you want to build several packages simultaneously, you will probably want to use

    make bootstrap
    local/bin/emerge --jobs <N> legacy-spkg/sage-full

instead.

If you want to use parallel build for bootstrapping, use the following:

    MAKE="make -jN" make bootstrap       # haven't tested this
    echo 'MAKE="make -jN"' >> local/etc/make.conf
    make .rebuilt_gccs_dependencies.stamp
    make -B local/etc/make.conf

and then just

    local/bin/emerge --jobs <N> legacy-spkg/sage-full


Prerequisites
=============
You need at least the following things on your system for this to work:
 * bash
 * autotools
 * git

If you don't have autotools, you can checkout the portage-prefix-autotooled branch:

    git checkout portage-prefix-autotooled
    git submodule sync
    git submodule update --init
    make

If you make sure that the following are in your path, you can save a lot of bootstrapping
time:

 * install, id, stat, find, xargs, wget, sed, grep, make are their GNU versions 
 * python 2.7
 * gcc 4.6 or gcc 4.7

On some BSD systems, the GNU versions are called g$util (i.e. gsed, gid, gmake etc). In that
case, you can put some symbolic links

    local/bin/sed -> `which gsed`

in $SAGE_ROOT/local/bin and they will be picked up by the bootstrapping script.

Description of the bootstrapping process
========================================
The following packages each depend on the former:

 * system cc
 * python2.7, GNU coreutils, GNU findutils
 * portage prefix
 * mpir, mpfr, mpc
 * (gcc)
 * all the rest

The second bullet point is bootstrapped by the Makefile if they are not on the
system. This uses a very basic parser of the ebuilds.

If the system cc is not gcc, or if it is not at least version 4.6, then we want
to recompile all its dependencies with our own gcc after we have compiled it.


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 92.3%
  • C 3.0%
  • JavaScript 2.3%
  • Shell 1.5%
  • C++ 0.7%
  • Objective-C 0.1%
  • Other 0.1%