Table of Contents
General instructions
Compiling for UNIX-like platforms (e.g. GNU/Linux, Mac OS X) assumes that the standard GNU toolchain is available. In particular, while compilers other than GCC can be used, the compilation scripts require GNU/make.
To compile the library, it is usually sufficient to change to
VLFeat root directory, denoted VLFEATROOT
in the
following, and type make
:
$ cd VLFEATROOT $ make
The make script attempts to automatically detect the host architecture and configure itself accordingly. If the architecture is not detected correctly, it can be specified manually. For instance
$ make ARCH=glnx86
compiles for GNU/Linux 32-bit. make help
can be used
to obtain a list of other useful options. You can also use make
info
to obtain a list of the configuration parameters used by
the Makefile, which might allow you do debug any potential issue.
Compiling MATLAB support
In order for MATLAB support to be compiled, the
MATLAB mex
script must be in the current path. If it is
not, its location must be passed to make
as
follows. First, determine MATLAB's root directory by running a MATLAB
session and issuing the matlabroot
command. Let MATLABROOT
denote the returned path
(e.g. /Applications/MATLAB_R2009b.app/
). The mex
script is usually located in MALTABROOT/bin/mex
. Then run
the compilation with the command
$ make MEX=MATLABROOT/bin/mex
VLFeat must be compiled for the architecture used by MATLAB (run
MATLAB's computer
command to obtain this information). On
Mac OS X it is often necessary to turn on 64-bit support explicitly by
setting ARCH=maci64
as both the 32 and 64 bit versions
are plausible targets on 64-bit machines.
Compiling Octave support
Octave support is still experimental. Similarly to MATLAB, Octave
requires compiling MEX files. This can be turned on by passing to make
the path to the mkoctfile
command:
$ make MKOCTFILE=/path/to/mkoctfile
Mac OS X troubleshooting
Since macOS CLang compiler does not support OpenMP, this is disabled by default on this platform. To use it, install Brew llvm:
$ brew install llvm
Then, use the Brew CLang compiler to compile VLFeat, as follows::
$ make CC=BREWROOT/opt/llvm/bin/clang DISABLE_OPENMP=no
Here BREWROOT
is the path to Brew installation.