This was a weirdly difficult build. A lot of the config options that you'd expect to work, like installing in a target directory or building with Oracle options, did not work. I eventually had to build it locally in /tmp with minimal config and makexsb options, then transplant it to /util.
- Install XSB locally, then transplant it to /util:
[lethe] /tmp% tar -xvf XSB.tar
[lethe] /tmp% cd XSB/build
[lethe] build% ./configure
[lethe] build% ./makexsb
[lethe] build% cd /tmp
[lethe] /tmp% mv XSB XSB-3.2
[lethe] /tmp% cd /util
[lethe] /util% sudo mv /tmp/XSB-3.2 .
[lethe] /util% sudo chown -R root XSB-3.2
[lethe] /util% sudo chgrp -R root XSB-3.2
[lethe] /util% sudo chmod -R 755 XSB-3.2
[lethe] /util% sudo ln -s XSB-3.2/ XSB
[lethe bin]$ sudo ln -s ../XSB/bin/xsb xsb
- Write a shell script to invoke XSB properly from $BASE_DIR/bin/xsb. Now that we export CSE /util to the SENS Bell 340 lab, we have to control for differential /util filesystem base directories:
#!/bin/tcsh -f
if ( `hostname` =~ *\.cse\.buffalo\.edu ) then
set BASE_DIR = /util/
else if ( `hostname` =~ *\.eng\.buffalo\.edu ) then
set BASE_DIR = /util-cse/
endif
${BASE_DIR}/XSB/bin/xsb
symlinking to /util/bin did not seem to work. I had to copy the xsb script over and edit the following:
# NOT using x86_64-unknown-linux-gnu so that the same physical install
# would work for different architectures
config=`$topdir/XSB/build/config.guess`
canonical=`$topdir/XSB/build/config.sub $config`
exec_dir=$topdir/XSB/config/${canonical}${suffix}
executable=${exec_dir}/bin/xsb