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
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)
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