160 lines
5.1 KiB
C++
160 lines
5.1 KiB
C++
/*! @page build Building mlpack From Source
|
|
|
|
@section buildintro Introduction
|
|
|
|
This document discusses how to build mlpack from source. However, mlpack is in
|
|
the repositories of many Linux distributions and so it may be easier to use the
|
|
package manager for your system. For example, on Ubuntu, you can install mlpack
|
|
with the following command:
|
|
|
|
@code
|
|
$ sudo apt-get install libmlpack-dev
|
|
@endcode
|
|
|
|
If mlpack is not available in your system's package manager, then you can follow
|
|
this document for how to compile and install mlpack from source.
|
|
|
|
mlpack uses CMake as a build system and allows several flexible build
|
|
configuration options. One can consult any of numerous CMake tutorials for
|
|
further documentation, but this tutorial should be enough to get mlpack built
|
|
and installed on most Linux and UNIX-like systems (including OS X). If you want
|
|
to build mlpack on Windows, see <a
|
|
href="https://keon.io/mlpack/mlpack-on-windows/">Keon's excellent tutorial</a>.
|
|
|
|
@section Download latest mlpack build
|
|
Download latest mlpack build from here:
|
|
<a href="http://www.mlpack.org/files/mlpack-2.2.0.tar.gz">mlpack-2.2.0</a>
|
|
|
|
@section builddir Creating Build Directory
|
|
|
|
Once the mlpack source is unpacked, you should create a build directory.
|
|
|
|
@code
|
|
$ cd mlpack-2.2.0
|
|
$ mkdir build
|
|
@endcode
|
|
|
|
The directory can have any name, not just 'build', but 'build' is sufficient
|
|
enough.
|
|
|
|
@section dep Dependencies of mlpack
|
|
|
|
mlpack depends on the following libraries, which need to be installed on the
|
|
system and have headers present:
|
|
|
|
- Armadillo >= 4.200.0 (with LAPACK support)
|
|
- Boost (math_c99, program_options, serialization, unit_test_framework, heap,
|
|
spirit) >= 1.49
|
|
|
|
In Ubuntu and Debian, you can get all of these dependencies through apt:
|
|
|
|
@code
|
|
# apt-get install libboost-math-dev libboost-program-options-dev
|
|
libboost-test-dev libboost-serialization-dev libarmadillo-dev binutils-dev
|
|
@endcode
|
|
|
|
On Fedora, Red Hat, or CentOS, these same dependencies can be obtained via dnf:
|
|
|
|
@code
|
|
# dnf install boost-devel boost-test boost-program-options boost-math
|
|
armadillo-devel binutils-devel
|
|
@endcode
|
|
|
|
@section config Configuring CMake
|
|
|
|
Running CMake is the equivalent to running `./configure` with autotools. If you
|
|
are working with the svn trunk version of mlpack and run CMake with no options,
|
|
it will configure the project to build with debugging symbols and profiling
|
|
information: If you are working with a release of mlpack, running CMake with no
|
|
options will configure the project to build without debugging or profiling
|
|
information (for speed).
|
|
|
|
@code
|
|
$ cd build
|
|
$ cmake ../
|
|
@endcode
|
|
|
|
You can manually specify options to compile with or without debugging
|
|
information and profiling information (i.e. as fast as possible):
|
|
|
|
@code
|
|
$ cd build
|
|
$ cmake -D DEBUG=OFF -D PROFILE=OFF ../
|
|
@endcode
|
|
|
|
The full list of options mlpack allows:
|
|
|
|
- DEBUG=(ON/OFF): compile with debugging symbols (default ON in svn trunk, OFF
|
|
in releases)
|
|
- PROFILE=(ON/OFF): compile with profiling symbols (default ON in svn trunk,
|
|
OFF in releases)
|
|
- ARMA_EXTRA_DEBUG=(ON/OFF): compile with extra Armadillo debugging symbols
|
|
(default OFF)
|
|
- BUILD_TESTS=(ON/OFF): compile the \c mlpack_test program (default ON)
|
|
- BUILD_CLI_EXECUTABLES=(ON/OFF): compile the mlpack command-line executables
|
|
(i.e. \c mlpack_knn, \c mlpack_kfn, \c mlpack_logistic_regression, etc.)
|
|
(default ON)
|
|
- TEST_VERBOSE=(ON/OFF): run test cases in \c mlpack_test with verbose output
|
|
(default OFF)
|
|
|
|
Each option can be specified to CMake with the '-D' flag. Other tools can also
|
|
be used to configure CMake, but those are not documented here.
|
|
|
|
@section build Building mlpack
|
|
|
|
Once CMake is configured, building the library is as simple as typing 'make'.
|
|
This will build all library components as well as 'mlpack_test'.
|
|
|
|
@code
|
|
$ make
|
|
Scanning dependencies of target mlpack
|
|
[ 1%] Building CXX object
|
|
src/mlpack/CMakeFiles/mlpack.dir/core/optimizers/aug_lagrangian/aug_lagrangian_test_functions.cpp.o
|
|
<...>
|
|
@endcode
|
|
|
|
You can specify individual components which you want to build, if you do not
|
|
want to build everything in the library:
|
|
|
|
@code
|
|
$ make mlpack_pca mlpack_knn mlpack_kfn
|
|
@endcode
|
|
|
|
One particular component of interest is mlpack_test, which runs the mlpack test
|
|
suite. You can build this component with
|
|
|
|
@code
|
|
$ make mlpack_test
|
|
@endcode
|
|
|
|
and then run all of the tests, or an individual test suite:
|
|
|
|
@code
|
|
$ bin/mlpack_test
|
|
$ bin/mlpack_test -t KNNTest
|
|
@endcode
|
|
|
|
If the build fails and you cannot figure out why, register an account on Github
|
|
and submit an issue and the mlpack developers will quickly help you figure it
|
|
out:
|
|
|
|
http://mlpack.org/
|
|
http://github.com/mlpack/mlpack
|
|
|
|
Alternately, mlpack help can be found in IRC at \#mlpack on irc.freenode.net.
|
|
|
|
@section install Installing mlpack
|
|
|
|
If you wish to install mlpack to /usr/include/mlpack/ and /usr/lib/ and
|
|
/usr/bin/, once it has built, make sure you have root privileges (or write
|
|
permissions to those two directories), and simply type
|
|
|
|
@code
|
|
# make install
|
|
@endcode
|
|
|
|
You can now run the executables by name; you can link against mlpack with
|
|
-lmlpack, and the mlpack headers are found in /usr/include/mlpack/.
|
|
|
|
*/
|