BeBOP SMC Installation Instructions



Note: There is a section in the FAQ on common installation questions. If you have any troubles installing, please check that first before posting to the e-mail list.

Supported platforms

The SMC has been tested on GNU/Linux on x86 and Itanium 2, Mac OS X (10.4) on PPC, and MS Windows on x86 (under Cygwin), although the Cygwin build gets less frequent testing. For Unix-like operating systems, as long as you have GNU Make, you should be able to build the SMC. We rely on some C99 and POSIX features in our C code, but do not use any gcc-specific constructs.

Downloading the tarballs

Download the three packages into the same directory. You may use a web browser (watch out for some browsers that like to change the file extensions) or a command-line program like wget:

wget http://bebop.cs.berkeley.edu/smc/tarballs/bebop_make.tar.gz
wget http://bebop.cs.berkeley.edu/smc/tarballs/bebop_util.tar.gz
wget http://bebop.cs.berkeley.edu/smc/tarballs/sparse_matrix_converter.tar.gz

Unpacking the tarballs

Unpack the three packages using tar, as follows:

 
tar xvzf bebop_make.tar.gz
tar xvzf bebop_util.tar.gz
tar xvzf sparse_matrix_converter.tar.gz
If your version of tar does not support gzip, you will need to gunzip the files first before running tar xvf on them.

Building the libraries

Each library has a README in its main directory. Start with the bebop_make/ directory and then go to the bebop_util/ and sparse_matrix_converter/ directories, in that order. The README files explain exactly what you need to do. If you are too impatient to read them (which would be unfortunate!), you can follow the following instructions:

  1. Edit the "bebop_make/options" file to make sure that the platform-independent build options are set as desired. In most cases, you won't have to edit this file. If you do have to edit it, the options are documented in the file itself. In particular, you will probably have to change some of the options if you are building under Cygwin.
  2. Create a platform-specific build file: if your platform is PLATFORM (where PLATFORM is a placeholder for a platform name, such as "linux" for GNU/Linux or "darwin" for MacOS X) and a Makefile.include.PLATFORM is provided, use that file as a template. Often you won't have to edit this file. If no such file is provided for your platform, use one of the Makefile.include.PLATFORM files as a template to make your own.
  3. Create a symlink from your Makefile.include.PLATFORM file to Makefile.include in the bebop_make directory. If the symlink already exists as a file or symlink, just overwrite it. If your file system does not support symlinks, just copy the file.
  4. Now you can build the bebop_util and sparse_matrix_converter libraries, in that order. Before you build sparse_matrix_converter, set your dynamic library lookup path (LD_LIBRARY_PATH under GNU/Linux and some other *nix-type operating systems, DYLD_LIBRARY_PATH under MacOS X) to include the bebop_util and sparse_matrix_converter directories. You can build each of these libraries by typing "make" in the library's root directory.

Installing the libraries and header files

Currently, users are responsible for installing the bebop_util and sparse_matrix_converter header files and libraries. Users should add the directory in which the dynamic libraries are stored to their LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on Mac OS X), as discussed in the Frequently Asked Questions. If you are running in Cygwin on Windows, please let us know the equivalent construct.