DEBIAN-MATLAB-MEXHELPER(1) User Commands DEBIAN-MATLAB-MEXHELPER(1)
NAME
debian-matlab-mexhelper - helper to build Matlab extensions on Debian
SYNOPSIS
debian-matlab-mexhelper [OPTIONS] <package name> <mode>
DESCRIPTION
The is a small helper that eases building and installing MEX extensions for Matlab toolbox packages in Debian binary packages. Because
these packages cannot build-depend on Matlab (for obvious reasons) they need to compile their extensions at installation time using a local
Matlab installation. The helper is somewhat flexible by supporting custom build, install and clean commands, as well as source and destina-
tion directories. It also deals with moving extensions into library directories and automatically symlinks them into the toolbox direc-
tory.
There are two major modes: 'install' to build, install and symlink extensions (useful in postinst) and 'clean' to remove installed exten-
sions and symlinks (useful in prerm).
The command to build the extensions is invoked in the source directory. By default, this is /usr/src/matlab/<package name>, but can be
overridden with the --src-dir option. Any optional 'install' (--install-cmd) and 'clean' (--clean-cmd) are invoked in the source directory
too.
Moreover, this helper will also take any installed extensions from a default installation path /usr/share/matlab/site/m/<package name>,
move them into /usr/lib/matlab/site/<package name> and symlink back to the original location. These locations can be configured with the
--m-dir and --mex-dir options respectively. Again, this step is optional and is only performed if a package actually installs extensions
inot this location.
OPTIONS
-h
Print usage summary and option list.
--help
Print full help.
--version
Print version information and exit.
--build-cmd
Command to build the extensions in the source directory
--install-cmd
Command to install the extensions after building
--clean-cmd
Command to clean the source tree after installation. This is not the command that is executed in 'clean' mode.
--src-dir
Directory with the extension sources. This is also the directory in which build, install and clean commands get invoked.
--mex-dir
Target directory into which binary extensions get moved.
--m-dir
Target directory in which symlinks to binary extensions get created.
--make
Set default commands for 'build-cmd' (make), 'install-cmd' (make install DESTDIR=$m_dir) and 'clean-cmd' (make distclean) if no spe-
cific command has been provided via the respective options.
EXAMPLES
The following call can be used in a package's postinst script if it comes with a Matlab script 'build_matlab.m' that builds and installs
its extension into the desired locations. The --src-dir option is used to point to a non-standard location of the extension sources.
debian-matlab-mexhelper somepackagename install
--src-dir /usr/src/dynare-matlab/mex/sources --build-cmd 'matlab -nodesktop -nodisplay -nojvm -r build_matlab'
If a package installs extension sources into the standard location and builds its extensions using a Makefile that support the DESTDIR for
installing the built extensions and a 'distclean' target it is sufficient to run the following.
debian-matlab-mexhelper somepackagename install --make
Otherwise it is also possible to fully customize all commands.
debian-matlab-mexhelper difficultpackage install
--build-cmd 'make -C src all toolbox MEXBIN="matlab-mex"' --install-cmd 'make -C src install && find . ! -wholename "./src"
-name "*.mex?*" -print0 | xargs -0 -I {} cp -v --parent {} /usr/share/difficultpackage' --clean-cmd 'make -C src distclean tool-
box-distclean && find . -name "*.mex?*" -delete'
If a package uses debian-matlab-mexhelper to install extensions into the standard location it can also be used to remove all MEX extensions
and created symlinks when a package is removed from a system. To achieve this simply put the following call into a package's prerm script.
debian-matlab-mexhelper packagename clean
AUTHOR
Written by Michael Hanke.
COPYRIGHT
Copyright (C) 2010-2011 Michael Hanke <michael.hanke@gmail.com>
Licensed under GNU Public License version 3 or later.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICU-
LAR PURPOSE.
debian-matlab-mexhelper 0.0.18 March 2012 DEBIAN-MATLAB-MEXHELPER(1)