Overview
Building the SAGE software on Linux requires various tweaks, depending
on the distribution being used. The necessary steps to build SAGE for
Ubuntu 9.04 (Jaunty Jackalope) are detailed here.
It is assumed that the software will be installed in a user's home
directory. Appropriate changes to the following instructions will be
necessary if installing elsewhere.
Compiling SAGE
1. Set up a SAGE environment, in particular a SAGE_DIRECTORY path and
associated program execution and library paths. Edit the .bashrc file
in the user's home directory. At the end of the .bashrc file, add the
following lines:
export
SAGE_DIRECTORY=$HOME/sage3.0
export
PATH=${SAGE_DIRECTORY}/bin:${PATH}
if [ -z
${LD_LIBRARY_PATH} ]; then
export LD_LIBRARY_PATH=${SAGE_DIRECTORY}/lib
else
export LD_LIBRARY_PATH=${SAGE_DIRECTORY}/lib:${LD_LIBRARY_PATH}
fi
Now exit any shell being used and open a new one. Run the command:
env | grep SAGE
and
env | grep LD_
These commands should return results consistent with the settings made
above. There's no point in continuing until this step has been
completed successfully.
2. Now unpack the source tarball and make some small changes to the
source code to enable correct compilation. In the home directory,
unpack the source tarball e.g.
cd
tar zxvf
sage3--03-24-09.tgz
which will create the sage3.0 directory (your SAGE_DIRECTORY)
If audio support is desired, edit sage3.0/config.mk. Change the the
line:
#AUDIO=1
to
AUDIO=1
Now edit the file sage3.0/app/FileViewer/ImageViewer/imageviewer.cpp -
find the lines
#if
MagickLibVersion >= 0x645
#define
MagickGetImagePixels MagickGetAuthenticPixels
#endif
and insert
#if 0
before the the first of these lines. Add:
#endif
after the last of those lines. The complete sequence should be:
#if 0
#if
MagickLibVersion >= 0x645
#define
MagickGetImagePixels MagickGetAuthenticPixels
#endif
#endif
Do exactly the same in the file
sage3.0/app/FileViewer/ImageViewer/imgToDxt.cpp
Now edit the sage3.0/config.mk file. Change the line:
ARCHITECTURE=$(shell
uname -p)
to
ARCHITECTURE=$(shell
uname -m)
Then, if running on amd64 architecture, change (at about line 97):
XLIBS=-L/usr/X11R6/lib64
-lGLU -lGL -lXmu -lXi -lXext -lX11
to
XLIBS=-L/usr/lib64
-lGLU -lGL -lXmu -lXi -lXext -lX11
Otherwise, if running a 32bit system, change (at about line 120):
XLIBS=-L/usr/X11R6/lib
-lGLU -lGL -lXmu -lXi -lXext -lX11
to
XLIBS=-L/usr/lib
-lGLU -lGL -lXmu -lXi -lXext -lX11
3. Install various prerequisite packages with the following apt-get command - some may already
be installed but apt-get
is smart enough to do the right thing. Run:
sudo apt-get
install build-essential libsdl1.2-dev freeglut3-dev libxmu-dev
libxi-dev libreadline5-dev libmagickwand-dev portaudio19-dev
python-wxgtk2.8
libglew1.5-dev
python-numpy
(the last two of these packages are needed later for running the SAGE
software, not actually compiling it, but may as well install them all
at once)
4. The software can now be built from inside the sage3.0 directory:
cd
$SAGE_DIRECTORY
make install
Note:
don't go into the src directory to build; do the
build from $SAGE_DIRECTORY
don't do a plain make
first; go straight to make install
Running SAGE
Firstly, go to SAGE's bin directory:
cd
$SAGE_DIRECTORY/bin
Now check the script named sage. The line in it which reads:
if [ `uname` == "Linux" ]
should be changed to:
if [ `uname` = "Linux" ]
