SCons options¶
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
./build/3rdparty/<host>/rpath
automatically built 3rd-party shared libraries
./docs/man
generated manual pages
./docs/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-detected by default
- --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
- --build=BUILD
system name where Roc is being compiled, e.g. ‘x86_64-pc-linux-gnu’, auto-detected by default
- --host=HOST
system name where Roc will run, e.g. ‘arm-linux-gnueabihf’, auto-detected by default
- --platform=PLATFORM
platform name where Roc will run, supported values: empty (detect from host), ‘linux’, ‘unix’, ‘darwin’, ‘android’
- --compiler=COMPILER
compiler name and optional version, e.g. ‘gcc-4.9’, supported names: empty (detect what available), ‘clang’, ‘gcc’, ‘cc’
- --compiler-launcher=COMPILER_LAUNCHER
optional launching tool for c and c++ compilers, e.g. ‘ccache’
- --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-static
enable building static library
- --disable-shared
disable building shared library
- --disable-tools
disable tools building
- --enable-tests
enable tests building and running (requires CppUTest)
- --enable-benchmarks
enable bechmarks building and running (requires Google Benchmark)
- --enable-examples
enable examples building
- --enable-doxygen
enable Doxygen documentation generation
- --enable-sphinx
enable Sphinx documentation generation
- --disable-c11
disable C11 support
- --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-speexdsp
disable SpeexDSP support for resampling
- --disable-sox
disable SoX support in tools
- --disable-openssl
disable OpenSSL support required for DTLS and SRTP
- --disable-libunwind
disable libunwind support required for printing backtrace
- --disable-alsa
disable ALSA support in tools
- --disable-pulseaudio
disable PulseAudio support in tools
- --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 search path, may be used multiple times
- --with-libraries=WITH_LIBRARIES
additional library search path, may be used multiple times
- --macos-platform=MACOS_PLATFORM
macOS target platform, e.g. 10.12, (default is current OS version)
- --macos-arch=MACOS_ARCH
macOS target architecture(s), comma-separated list, supported values: ‘all’, ‘x86_64’, ‘arm64’ (default is current OS arch, pass multiple values or ‘all’ for univeral binaries)
- --build-3rdparty=BUILD_3RDPARTY
download and build specified 3rdparty libraries, comma-separated list of library names and optional versions, e.g. ‘libuv:1.4.2,openfec’
- --override-targets=OVERRIDE_TARGETS
override targets to use, pass a comma-separated list of target names, e.g. ‘pc,posix,posix_ext,gnu,libuv,openfec,…’
Variables¶
CPPFLAGS
CXXFLAGS
CFLAGS
LDFLAGS
STRIPFLAGS
CXX
CC
CXXLD
CCLD or LD
AR
RANLIB
STRIP
OBJCOPY
INSTALL_NAME_TOOL
RAGEL
GENGETOPT
DOXYGEN
SPHINX_BUILD
BREATHE_APIDOC
PKG_CONFIG
PKG_CONFIG_PATH
CONFIG_GUESS
CLANG_FORMAT
DESTDIR
Targets¶
- omitted
build everything
test
build everything and run tests
bench
build everything and run benchmarks
clean
full clean, including build results, downloaded third-parties, generated documentation, and scons database
clean_build
remove only build results
clean_docs
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)
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-apidoc)
{module}
build specific module, e.g.
roc_pipeline
test/{module}
run tests for specific module, e.g.
test/roc_pipeline
bench/{module}
run benchmarks for specific module, e.g.
bench/roc_pipeline