Man pages sections > man1 > debian-matlab-mexhelper

debian-matlab-mexhelper - helper to build Matlab extensions on Debian

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 destination directories. It also deals with moving extensions into library directories and automatically symlinks them into the toolbox directory.
There are two major modes: 'install' to build, install and symlink extensions (useful in postinst) and 'clean' to remove installed extensions 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 specific 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 toolbox-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 © 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 PARTICULAR PURPOSE.
August 2015 debian-matlab-mexhelper 0.0.18