Differences between revisions 34 and 35
Revision 34 as of 2014-04-12 02:22:00
Size: 3488
Revision 35 as of 2014-09-19 20:32:02
Size: 2784
Deletions are marked like this. Additions are marked like this.
Line 55: Line 55:
 * `loopy.xml` -- what's needed for [[Loopy]] (not yet publicly available)
Line 74: Line 73:

== Extra setup for loopy/islpy ==

To get islpy to compile, you'll need [[http://gmplib.org|GMP]] installed (for now). For Debian/Ubuntu, that's `libgmp-dev`. If it's installed somewhere nonstandard, you have to tell islpy where to find it. Run `./configure.py` in `~/src/islpy` (or your version of that) and edit the following lines of the file `~/src/islpy/siteconf.py` that got created:

GMP_INC_DIR = ["/opt/gmp/include"] # or some such
GMP_LIB_DIR = ["/opt/gmp/lib"] # or some such
GMP_LIBNAME = ['gmp'] # you probably don't need to change this

Then continue on with the `build-all` step as above.

Setting up a development environment for my software

This sets up a development environment with git checkouts of more or less (see Manifests) all my software packages. You typically only want this if:

  • you want to hack a number of these packages at the same time or
  • you need the absolute latest version of everything.

If you want to hack just one package, it's easier to just clone its git tree and work on it. If you're a user, install the latest released version.

Grab the Android "repo" tool:

mkdir -p ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod +x ~/bin/repo

/!\ The assumption here is that ~/bin will be on your $PATH. Alternatively, download repo to wherever you like and specify the path explicitly below.

Prevent repo sync below from getting stuck because of host key checking:

echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
echo -e "Host gitlab.tiker.net\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config

/!\ It's important to understand the (minor) security implications of this step.

Create your source root: (Note that the brackets denote an optional part. See Manifests for what values are allowed for manifest.xml. Don't type the brackets!)

mkdir ~/src # or wherever
cd ~/src
repo init -u http://gitlab.tiker.net/inducer/akprojects.git [-m manifest.xml]
repo sync
repo start master --all

Then build:


If you'd like to exclude some projects from the build (like PyCUDA on a system without CUDA), just create a .exclude file with one excluded project name per line.


The following manifests are available:

  • default.xml -- this includes all my public scientific-computing-related code. (This is the default.)

  • hedge.xml -- what's needed for Hedge

  • dev.xml -- this includes all my code, including what's not public yet. Probably won't work for you.

Using the installed software

The build-all step actually creates a virtualenv into which it installs all the software. To use it, do:

source ~/src/env/bin/activate

Extra setup for hedge

To get hedge to run, you also need a file $HOME/.aksetup-defaults.py with the following content:

# make sure to replace "src" with your actual repo root directory
BOOST_BINDINGS_INC_DIR = ['${HOME}/src/boost-numeric-bindings']

DevEnvironmentHowto (last edited 2014-09-19 20:32:02 by AndreasKloeckner)