DepSpawn requires:
Follow these steps:
depspawn.tar.gz
) tar -xzf depspawn.tar.gz cd depspawnor clone the project from its repository
git clone git@github.com:fraguela/depspawn.git
mkdir build && cd build
Generate the files for building DepSpawn in the format that you prefer (Visual Studio projects, nmake makefiles, UNIX makefiles, Mac Xcode projects, ... ) using cmake.
In this process you can use a graphical user interface for cmake such as cmake-gui
in Unix/Mac OS X or CMake-gui
in Windows, or a command-line interface such as ccmake
. The process is explained here assuming this last possibility, as graphical user interfaces are not always available.
run ccmake ..
This will generate the files for building DepSpawn with the tool that cmake choses by default for your platform. Flag -G
can be used to specify the kind of tool that you want to use. For example if you want to use Unix makefiles but they are not the default in you system, run ccmake -G 'Unix Makefiles' ..
Run ccmake --help
for additional options and details.
Press letter c
to configure your build.
e
to exit the help.Provide the values you wish for the variables that appear in the screen. The most relevant ones are:
CMAKE_BUILD_TYPE
: String that specifies the build type. Its possible values are empty, Debug, Release, RelWithDebInfo and MinSizeRel.CMAKE_INSTALL_PREFIX
: Directory where DepSpawn will be installedThe variables that begin with DEPSPAWN
change internal behaviors in the runtime of the library. Thus in principle they are of interest only to the developers of the library, although users can play with them to see how they impact in their applications. They are:
DEPSPAWN_BLITZ
: String that specifies the Blitz library to use. Its values can be:No
: No preparation to use any version of Blitz or related tests.Old
: Use provided depspawn-blitz-0.10
library. DepSpawn will test its usage with this library, but the library itself will not be built. The user is responsible for that. This library is known to break for recent compilers.New
: Use provided depspawn-blitz-1.0.2
. DepSpawn will build, install and test the library using the same CMAKE_INSTALL_PREFIX
as DepSpawn for the installation.DEPSPAWN_DUMMY_POOL
: Boolean that if ON
turns off the usage of pools by the library to manage the memory of its internal objects.DEPSPAWN_FAST_START
: If this boolean is ON
, when a thread that is spawning tasks detects that there are too many ready pending tasks waiting to be executed, it stops and executes one of them before resuming its current task.DEPSPAWN_PROFILE
: When this boolean is ON
the library gathers statistics about its internal operations.DEPSPAWN_SCALABLE_POOL
: This boolean controls whether the library managed its memory by means of the tbbmalloc
library (if ON
) or the standard C++ library (if OFF
).DEPSPAWN_USE_TBB
: This boolean controls whether DepSpawn relies on Intel TBB, if ON
, or on C++11 threads, if OFF
.c
to re-configure cmake with the new values. If Boost is missing you will get the same warning. Press e
to exit the help.g
to generate the files that will be used to build DepSpawn and exit cmake.The rest of this explanation assumes that UNIX makefiles were generated in the previous step.
Run make
in order to build the library and its tests. The degree of optimization, debugging information and assertions enabled depends on the value you chose for variable CMAKE_BUILD_TYPE
.
-j
to speedup the building process. For example, make -j4
will use 4 parallel processes, while make -j
will use one parallel process per available hardware thread.make check
in order to run the DepSpawn tests.Run make install
This installs DepSpawn under the directory you specified for the CMAKE_INSTALL_PREFIX
variable. If you left it empty, the default base directories will be /usr/local
in Unix and c:/Program Files
in Windows.
The installation places
depspawn/depspawn-blitz-0.10
, is based on the traditional configure
and make
mechanisms. The installation instructions and Blitz++ documentation are found in the library directory.depspawn
directory generated by the unpacking of the tarball or the cloning of the project repository.