There is no need to follow this page just to run FriCAS, to install FriCAS from a binary see this page here, use this only to modify the program or if you are using it on an unusual platform. This is my attempt to compile the program from source.
First, as instructed in the install notes, I found and installed a suitable version of lisp. I am curous how the FriCAS binary runs without lisp? I assume the lisp is included in the binary?
Anyway I ran YaST2 and found a lisp interpreter - clisp, this is one of the accetable prerequisities listed in the install notes, so I installed this.

I ran configure and make using the following script:
# check that clisp is installed # unzip fricas-1.1.4-full.tar.bz2 to /home/martin (no subfolder) # rename fricas-1.1.4 to fricas2 # copy modified files into directory structure cd fricas2 # check if zips directory exists if not create it # mkdir zips cd zips wget http://axiom.svn.sourceforge.net/svnroot/axiom/trunk/axiom/zips/noweb-2.10a.tgz cd .. ./configure --with-lisp=clisp # make cd src/paste make gphts cd ../.. make make install DESTDIR=/home/martin/fricas3 cd .. |
Here is the detail
martin@suse113:~> cd /home/master/mjbSource/maths/fricas/fricas-1.1.0
martin@suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0> ./configure --with-lisp=clisp
checking build system type... x86_64-suse-linux
checking host system type... x86_64-suse-linux
checking target system type... x86_64-suse-linux
checking for make... make
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a BSD-compatible install... /usr/bin/install -c
checking for touch... touch
checking for mktemp... mktemp
checking for gawk... gawk
checking for gtar... no
checking for tar... tar
checking for ranlib... ranlib
checking for ar... ar
checking for latex... no
checking for makeindex... no
checking for notangle... no
checking for noweave... no
axiom_build_bindir = /home/master/mjbSource/maths/fricas/fricas-1.1.0/build/x86_64-suse-linux/bin
checking Lisp implementation... i i i i i i i ooooo o ooooooo ooooo ooooo
I I I I I I I 8 8 8 8 8 o 8 8
I \ `+' / I 8 8 8 8 8 8
\ `-+-' / 8 8 8 ooooo 8oooo
`-__|__-' 8 8 8 8 8
| 8 o 8 8 o 8 8
------+------ ooooo 8oooooo ooo8ooo ooooo 8
Welcome to GNU CLISP 2.44.1 (2008-02-23) |
so I typed make as instructed:
martin@suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0>make
snip ... far too much output to list in full here ...
Added 30 pages and/or macros from XPR.pht
Added 56 pages and/or macros from ZDSOLVE.pht
Added 16 pages and/or macros from ZLINDEP.pht
make[2]: Leaving directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/src/paste'
rm -f stamp
echo timestamp > stamp
finished .
make[1]: Leaving directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/src'
cd contrib/emacs && make
make[1]: Entering directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/contrib/emacs'
echo "#!/bin/sh -" > efricas
echo "AXIOMEDITOR='emacsclient +\$line \$name >/dev/null 2>&1'" >> efricas
echo "export AXIOMEDITOR" >> efricas
echo "FRICASCMD='/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'" >> efricas
echo "export FRICASCMD" >> efricas
echo "if which emacs; then" >> efricas
echo " emacs --eval '(progn (server-start) (setq load-path (cons (quote \"/usr/local/lib/fricas/emacs\")
load-path)) (setq auto-mode-alist (cons (quote (\"\\\\.fri\$\" . fricas-mode)) auto-mode-alist))
(require (quote fricas)))' -f fricas;" >> efricas
echo "else " >> efricas
echo " echo You must have installed emacs to run efricas.;" >> efricas
echo "fi" >> efricas
echo ')read ./gen-cpl.lisp' | \
AXIOM=/home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux
DAASE=/home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux \
/home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/bin/AXIOMsys
Checking for foreign routines
AXIOM="/home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux"
spad-lib="/home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/lib/libspad.so"
foreign routines found
openServer result -2
FriCAS (AXIOM fork) Computer Algebra System
Version: FriCAS 1.1.0
Timestamp: Wednesday September 15, 2010 at 09:24:28
-----------------------------------------------------------------------------
Issue )copyright to view copyright notices.
Issue )summary for a summary of useful system commands.
Issue )quit to leave FriCAS and return to shell.
-----------------------------------------------------------------------------
Using local database /home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/algebra/compress.daase..
Using local database /home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/algebra/interp.daase..
Using local database /home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/algebra/operation.daase..
Using local database /home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/algebra/category.daase..
Using local database /home/master/mjbSource/maths/fricas/fricas-1.1.0/target/x86_64-suse-linux/algebra/browse.daase..
(1) ->
(1) ->
cat ./fricas-cpl.hd fricas-cpl.in ./fricas-cpl.tl > fricas-cpl.el
make[1]: Leaving directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/contrib/emacs'
martin@suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0> |
Then I ran make install as root:
martin@suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0> su root
Password:
suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0 # make install DESTDIR=/usr/local/lib2
Installing FriCAS in /usr/local
rm -rf '/usr/local/lib2/usr/local/lib/fricas'
./config/mkinstalldirs '/usr/local/lib2/usr/local/lib/fricas'
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas
./config/mkinstalldirs '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/lib'
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/lib
for A in algebra autoload doc share src lib/graph ; do \
for B in `find target/x86_64-suse-linux/$A -type d -print` ; do \
./config/mkinstalldirs '/usr/local/lib2/usr/local/lib'/fricas/$B \
|| exit 1 ; \
done ; \
for B in `find target/x86_64-suse-linux/$A -type f -print` ; do \
/usr/bin/install -c -m 644 $B '/usr/local/lib2/usr/local/lib'/fricas/$B \
|| exit 1 ; \
done ; \
done
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/algebra
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/algebra/DEPENDENTS.DAASE
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/algebra/USERS.DAASE
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/autoload
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/doc
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/doc/spadhelp
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/msgs
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/hypertex
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/hypertex/pages
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/hypertex/bitmaps
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/viewports
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/viewports/ugIntProgPLCPage10.VIEW
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/viewports/ugGraphThreeDOptionsPage4.VIEW
... snip ...
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/viewports/ugGraphColorPage2.VIEW
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/viewports/ugGraphTwoDOptionsPage2.VIEW
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/texmf
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/share/texmf/tex
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/src
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/src/algebra
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/lib/graph
./config/mkinstalldirs '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin'
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin
for A in bin/AXIOMsys bin/asq bin/clef bin/htadd bin/hypertex \
bin/sman bin/viewAlone lib/ex2ht lib/hthits lib/session \
lib/spadbuf lib/spadclient lib/view2D lib/view3D \
lib/viewman ; do \
if [ -f target/x86_64-suse-linux/$A ] ; then \
/usr/bin/install -c target/x86_64-suse-linux/$A \
'/usr/local/lib2/usr/local/lib'/fricas/target/x86_64-suse-linux/$A \
|| exit 1 ; \
fi ; \
done
if [ -f target/x86_64-suse-linux/lib/libspad.so ] ; then \
/usr/bin/install -c target/x86_64-suse-linux/lib/libspad.so \
'/usr/local/lib2/usr/local/lib'/fricas/target/x86_64-suse-linux/lib/libspad.so \
|| exit 1 ; \
fi
for A in SPADEDIT htsearch presea ; do \
if [ -f target/x86_64-suse-linux/lib/$A ] ; then \
/usr/bin/install -c target/x86_64-suse-linux/lib/$A \
'/usr/local/lib2/usr/local/lib'/fricas/target/x86_64-suse-linux/lib/$A \
|| exit 1 ; \
fi ; \
done
for A in command.list copyright summary ; do \
/usr/bin/install -c -m 644 target/x86_64-suse-linux/lib/$A \
'/usr/local/lib2/usr/local/lib'/fricas/target/x86_64-suse-linux/lib/$A \
|| exit 1 ; \
done
echo '#!/bin/sh -' > '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
echo AXIOM="'/usr/local/lib/fricas/target/x86_64-suse-linux'" >>
'/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
echo export AXIOM >> '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
echo PATH='${AXIOM}/bin':'${PATH}' >> '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
echo export PATH >> '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
cat /home/master/mjbSource/maths/fricas/fricas-1.1.0/src/etc/axiom >>
'/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
/usr/bin/install -c '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
'/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'
rm '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'.tmp
rm -f '/usr/local/lib2/usr/local/bin'/fricas
./config/mkinstalldirs '/usr/local/lib2/usr/local/bin'
mkdir -p -- /usr/local/lib2/usr/local/bin
/usr/bin/install -c '/usr/local/lib2/usr/local/lib/fricas/target/x86_64-suse-linux/bin/axiom'
'/usr/local/lib2/usr/local/bin/fricas'
if test x"no" = xyes ; then \
cd src/aldor && make install; \
fi
./config/mkinstalldirs '/usr/local/lib2/usr/local/lib/fricas/emacs'
mkdir -p -- /usr/local/lib2/usr/local/lib/fricas/emacs
cd contrib/emacs && make install;
make[1]: Entering directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/contrib/emacs'
/usr/bin/install -c -m 644 ./fricas.el /usr/local/lib2/usr/local/lib/fricas/emacs/fricas.el
/usr/bin/install -c -m 644 fricas-cpl.el /usr/local/lib2/usr/local/lib/fricas/emacs/fricas-cpl.el
/usr/bin/install -c efricas '/usr/local/lib2/usr/local/bin/efricas'
make[1]: Leaving directory `/home/master/mjbSource/maths/fricas/fricas-1.1.0/contrib/emacs'
79 FriCAS installation finished.
suse113:/home/master/mjbSource/maths/fricas/fricas-1.1.0 # |
I proably did not set the directory names or structute very efficienly so, at this stage, I had to move and rename the directories so that they are in the same form as the binaries from the FriCAS distribution.
When I run this newly compiled version of FriCAS it appers to run correctly but very slowly compared to the binaries from the FriCAS distribution. When it is running there is a process AXIOMsys which is taking 100% of one CPU core.
Is this because I used CLISP to make it rather than SBCL?
One difference I did notice is that the 'algebra' directory generated contained '.fas' files wheras the algebra directory from the FriCAS binary contained '.fasl' files.

