XSB Admin

Install

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.

  1. 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
    

  2. 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
    

Notes

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