SCons options¶
Table of contents:
Usage¶
$ scons --help
$ scons [options] [variable1=value1 variable2=value2 ...] [target1 target2 ...]
Build results¶
Build results are installed into the following directories:
./bin/<host>
- Roc tools, libraries, and PulseAudio modules
./3rdparty/<host>/rpath
- automatically built 3rd-party shared libraries
./man
- generated manual pages
./html
- generated HTML documentation
Options¶
-Q | compact colored output |
-c | remove build results |
-n | dry run |
-j N, --jobs=N | allow N parallel jobs at once |
--prefix=PREFIX | |
installation prefix, '/usr' by default | |
--bindir=BINDIR | |
path to the binary installation directory (where to install Roc command-line tools), '<prefix>/bin' by default | |
--libdir=LIBDIR | |
path to the library installation directory (where to install Roc library), auto-detect if empty | |
--incdir=INCDIR | |
path to the headers installation directory (where to install Roc headers), '<prefix>/include' by default | |
--mandir=MANDIR | |
path to the manuals installation directory (where to install Roc manual pages), '<prefix>/share/man/man1' by default | |
--pulseaudio-module-dir=PULSEAUDIO_MODULE_DIR | |
path to the PulseAudio modules installation directory (where to install Roc PulseAudio modules), auto-detect if empty | |
--build=BUILD | system name where Roc is being compiled, e.g. 'x86_64-pc-linux-gnu', auto-detect if empty |
--host=HOST | system name where Roc will run, e.g. 'arm-linux-gnueabihf', auto-detect if empty |
--platform=PLATFORM | |
platform name where Roc will run, supported values: empty (detect from host), 'linux', 'darwin', 'android' | |
--compiler=COMPILER | |
compiler name and optional version, e.g. 'gcc-4.9', supported names: empty (detect what available), 'gcc', 'clang' | |
--sanitizers=SANITIZERS | |
list of gcc/clang sanitizers, supported names: empty (no sanitizers), 'all', 'undefined', 'address' | |
--enable-debug | enable debug build for Roc |
--enable-debug-3rdparty | |
enable debug build for 3rdparty libraries | |
--enable-werror | |
treat warnings as errors | |
--enable-pulseaudio-modules | |
enable building of pulseaudio modules | |
--disable-lib | disable libroc building |
--disable-tools | |
disable tools building | |
--disable-tests | |
disable tests building | |
--disable-examples | |
disable examples building | |
--disable-doc | disable Doxygen and Sphinx documentation generation |
--disable-soversion | |
don't write version into the shared library and don't create version symlinks | |
--disable-openfec | |
disable OpenFEC support required for FEC codes | |
--disable-libunwind | |
disable libunwind support required for printing backtrace | |
--disable-sox | disable SoX support in tools |
--disable-pulseaudio | |
disable PulseAudio support in tools | |
--with-pulseaudio=WITH_PULSEAUDIO | |
path to the PulseAudio source directory used when building PulseAudio modules | |
--with-pulseaudio-build-dir=WITH_PULSEAUDIO_BUILD_DIR | |
path to the PulseAudio build directory used when building PulseAudio modules (needed in case you build PulseAudio out of source; if empty, the build directory is assumed to be the same as the source directory) | |
--with-openfec-includes=WITH_OPENFEC_INCLUDES | |
path to the directory with OpenFEC headers (it should contain lib_common and lib_stable subdirectories) | |
--with-includes=WITH_INCLUDES | |
additional include directory, may be used multiple times | |
--with-libraries=WITH_LIBRARIES | |
additional library directory, may be used multiple times | |
--build-3rdparty=BUILD_3RDPARTY | |
download and build specified 3rdparty libraries, pass a comma-separated list of library names and optional versions, e.g. 'uv:1.4.2,openfec' | |
--override-targets=OVERRIDE_TARGETS | |
override targets to use, pass a comma-separated list of target names, e.g. 'glibc,stdio,posix,libuv,openfec,...' |
Variables¶
- CPPFLAGS
- CXXFLAGS
- CFLAGS
- LDFLAGS
- STRIPFLAGS
- CXX
- CC
- CXXLD
- CCLD or LD
- AR
- RANLIB
- STRIP
- RAGEL
- GENGETOPT
- DOXYGEN
- SPHINX_BUILD
- BREATHE_APIDOC
- PKG_CONFIG
- CONFIG_GUESS
Targets¶
- omitted
- build everything
test
- build everything and run tests
clean
- full clean, including build results, downloaded third-parties, generated documentation, and scons database
cleanbuild
- remove only build results
cleandocs
- remove only generated documentation
install
- install build results into the system
uninstall
- remove build results from the system
fmt
- format source code (requires clang-format)
tidy
- run linter (requires clang-tidy)
docs
- build website (includes
doxygen
andsphinx
targets) doxygen
- build doxygen documentation (requires doxygen and graphviz)
sphinx
- build sphinx documentation (requires doxygen, sphinx-build, and breathe)
{module}
- build specific module, e.g.
roc_core
test/{module}
- run tests for specific module, e.g.
test/roc_core