See Contents.m to see what utilities are provided. I'm currently not using any mex files, so no compilation is necessary. The following procedure should work: 1/ Copy addgenpath.m to your Matlab path (on Unix systems specified with the $MATLABPATH environment variable). 2/ Add the following line to startup.m in your $MATLABPATH: addgenpath(directory_where_you_put_this_toolbox, '-END') This will include all the correct sub-directories (and not the wrong ones). The relevant part of my startup.m and ~/.octaverc is: thepwd = pwd; imurray_loc = '/PLACE_WHERE_INSTALLED/imurray'; cd(imurray_loc); addgenpath(imurray_loc, '-end'); cd(thepwd); clear ans thepwd imurray_loc If you don't already have it, obtain minimize.m from: http://www.kyb.tuebingen.mpg.de/bs/people/carl/code/minimize/ Or from within this toolbox: http://www.gaussianprocess.org/gpml/code/matlab/doc/ You should be able to run the tests without any of the above setup, by starting Matlab in the testing directory. The startup.m in ./testing attempts to do the Right Thing. [TODO set up the equivalent trick for octave.] Incidentally, I like to have a "testing" subdirectory in most of my projects, so I have the following snippet in my startup.m if regexp(pwd,'/test(ing|s|)(|_)(|stuff|rig)$') addgenpath('..'); end Now when I start Matlab in any directory that looks like it contains test cases, functions in the directory above will be visible.