any-conf – set of configuration options of any(1) engine.


any-conf describes all options, used by any(1) for configuration of build at user-level, i.e. without code writing. Options are stored in configuration files. rdd(1) extracts them, converts to shell variables and creates executable scripts. Scripts are resided in var/dump/. Variables, converted from options, initialise all anybuild-oriented variables from API, such as ROOT, D or DEPEND.

To view configuration data without building, datardd(1) may be used.

    datardd amd64

To view constructed executable shell script (or dump) with all input data prepared, dumprdd(1) may be used.

    dumprdd amd64

Path to constructed executable script for current package is available inside shell code in variable DUMP.


All paths, stored in options, are relative to the working directory. The engine prepends them with needed base so user variables contain absolute paths. So for directory /home/user/work/ and absolute path /home/user/work/build/src/ the option value in config files would be build/src. The exception are:
any_base_dir and any_rdd_root, which are properly initialised with rdd(1) variable;
any_abs_path, which contains set of predefined known to work absolute paths.

Options any_root_*, any_engine_* are engine related and are much more obscure, then the rest ones. Their description is separated to own subsection. That options are unlikely needed for general user. Refer to image_setup_paths(3) and pkg_install(3) for in-depth description of any_root_* area.

PATH inside containerised build environment is reset to predefined value. This option keeps the start entry for that value. Resulting path is expanded with several more entries, any_inner_path keeps them. Resetting is done to ensure needed PATH is at the state as expected by sandbox host environment.
When environment is considered as non-containered (automatically or explicitly with the option any_bool_sandbox=0), any_abs_path is not used.
Default value is: /usr/bin:/bin:/usr/sbin:/sbin

any_admin_groupid, any_admin_userid
Primary group id and user id, respectively. That is used in containerised environment when switching between general and privileged user.

Detailed cpu architecture for binaries. Possible examples are armv7, power6, ultrasparc3.
Initialises variable ANYARCH.

Capacity of binaries: 32 or 64.
Initialises variable ANYARCHCAP.

Architecture-dependent flags for compiler at compiling stage to generate correct code for chosen architecture.
Initialises variable ARCH_FLAGS.

Endianness of binaries: little or big.
Initialises variable ANYARCHENDIAN.

Generalised binary architecture. Possible examples are arm, power, sparc.
Initialises variable ANYARCHMODE.

Architecture-dependent flags for compiler at linking stage to generate correct code for chosen architecture.
Initialises variable ARCH_LDFLAGS.

Option to contain the root directory, where engine is extracted. Current implementation relies on the value of / for containerised environment.
Initialises variable BASEDIR.

Integer positive number, which is added to inner version of a package, when it is calculated automatically inside fetch_dev(3). Used to rise the inner versions centrally, but with remaining dynamic part.
Initialises variable base_INNER_VERSION.

If set to 1, variable BPI is calculated by first two major numbers of the version. For example, for version 1.2.3 the value of BPI will be 1.2.
Unset by default.
Initialises variable BPI.

Option is generated inside engine unlike all others. If set to 1, option marks, that current process is launched from the shell dump. That means further loading dumps of other packages is forbidden to avoid recursion. It can be used as command line option as well to forbid nested dump loads.

If set to 1, environment is considered as sandboxed. If set otherwise, it is considered the opposite. If it is not set, container status is defined automatically.
Initialises variable base_SANDBOX.

If set to 1, interface fetch_build_remove(3) will not remove build directory.

If set to 0, interface root_save_context(3) will not save a tar file with the context, provided by the current package for other packages. Unset by default.

Location of development sources, or sources with changes for the package. Such sources are expected to be kept in version control system (git, mercury, cvs) and engine module is required for its support.
Initialises variable ANYDEVSRCDIR.

Space separated list of possible versions for development sources to use. If the version in remote repository exists as given in option entry, it is used. If not, check is repeated for next entry.

Explicit location of dump file (constructed shell script) with build context. The option is not set by default. When it is empty, dump location is calculated, basing on rdd_atom_dumpdir variable.
Initialises variable DUMP.

Architecture of the host platform.
Initialises variable HOSTARCH.

If not set, stops the work of admin_host interface, so host environment will not be modified automatically during the build. Unset by default.

Holds directories with executable files inside packages. Directories are relative to values from any_program_prefix. Initialises variable image_TRACKED_EXEC_DIRS. Default value is: bin sbin

Holds directories with library files inside packages. Directories are relative to values from any_program_prefix. Initialises variable image_TRACKED_LIB_DIRS. Default value is: lib

Holds files to remove automatically from binary packages. Filename templates are supported. File sets are separated with comma, for example:
                any_image_remove = *.la, *.lo, .packlist
Default value is: *.la.

Space separated list of relative paths, which are prepended to PATH variable for the build environment (both in container or not).
Default value is: rrr/bin

List of all packages, available for the build. It is used by methods, which gather build tree by dependencies. Assigned with all.src by default, like rdd_list_entry. If option is not set, the value of rdd_list_entry is taken.

Option provides the opportunity to define explicitly set of packages, which needs to operate with. The set is independent from current value of rdd_list_entry. Format is the same as in rdd_list_entry and lsrdd(1): whether file with a list or direct string with packages, separated by comma.
Unset by default. If it is unset, rdd_list_entry used at its place.

If set to 1, turns on the hashing by first letter of local sources names. The storage scheme without hashing:
The storage scheme with hashing:

The options for make(1) command, passed through amake interface. The most often usage is options for parallel make launch.
Initialises variable MAKEOPTS.

Location of METADIR in working directory.
Initialises variable METADIR.

any_morebuild_cflags, any_morebuild_cxxflags, any_morebuild_ldflags
Additional compile-time C, compile-time C++ and link-time flags, respectively. These can be used to add custom flags to ENGINE_* series, besides the engine-generated values. That series of variables is added automatically to build strings for appropriate code and search paths. Options are not set by default.

The options for compiler optimisations. They refer to code performance, not to its correctness.
Initialises variable OPT_FLAGS.

The options for linker optimisations.
Initialises variable OPT_LDFLAGS.

The operation system of target packages.
Initialises variable ANYOS.

The former absolute path to the working directory out of container. Used for user diagnostic. Generated by any-do(1) and not set manually.
Initialises variable out_BASEDIR.

One more option to keep lists of packages. That one is used in package and release methods. Unset by default.

any_prof_core, any_prof_postfix, any_prof_prefix
Components of build profile, text identificator of the build tree inside working directory. That identificator is available as APROFILE in shell. Profile is part of the paths like build/image/APROFILE/ or build/pool/APROFILE/. That means changing the profile name leads to independent build tree. So the options with profile name should be included in that sections, which mean incompatibility: they declare new ABI, operation system or binary architecture. For example, config sections for mips and sparc should set up unique profiles, as packages for them are needed to be built separately from each other.
Three different options to name profiles are used for the capability to add prefixes or postfixes to already existing profile name. Thus the build will be separated, but visually will be related with the parent. For example, dataword cap64 may include any_prof_postfix=64. If generic architectures mips or arm have the profile ids as mips and arm, with additional dataword mips,cap64 and arm,cap64 they have new build profiles mips64 and arm64. At the same time cap64 is universal: it may be added equally to all other datawords.
Initialise variable APROFILE.

Space separated list of directories for modular inclusion. Included engine modules end with .sh extension.
Default value is: any/include local/include

Space separated list of directories for modular inclusion of library code. The code must not change because of API variables changing. Therefore it is not reincluded second time when shell dumps of other packages are loaded into current context. That allows to speed up dump loading. The required condition is always done when library code contains only methods. Included library engine modules end with .sh extension.
Default value is: any/lib local/lib

Space separated list of language codes. May be used to reduce internationalisation texts to selected minimum.
Initialises variable LINGUAS.

Essential prefix to locate programs inside install tree. Used in build interfaces like aconf. Examples are /usr or /usr/pkg.
Default value is: /usr
Initialises variable PREFIX.

Space separated list of prefixes, used among all programs in distro project. Used when all packages are not configured for single prefix. First entry from the list is used for PREFIX, if one is not set. The option is used for engine-related compilation flags: for each entry of the list search path for headers and libraries inside ROOT with that prefix is added.

Additional root path inside D, so that compiler deals with $ROOT$SUBFS instead of simple $ROOT. This is needed for packages, configured to something like /opt/prog/usr (where /opt/usr would be SUBFS). Empty by default.
Initialises variable SUBFS.

Reserved for future use.

Directory for final built release material (whatever should it be). When option is not set, value release for RELEASEDIR is taken.
Initialises variable RELEASEDIR.

Short text identificator of the release files. It is used in inner versions of binary packages to identify the release they belong to: slack14.2, debian9.
Initialises variable RELEASE.

Full version of the release to write down in changelog: Debian-9.0, Slackware-14.2.
Initialises variable RELEASE_VERSION.

If set to 1, turns on the hashing by first letter of development sources names. That suggests sources are kept at remote server by hashing scheme. See description of any_local_src_hashing.

Directory with original package sources: they are taken as is from here. Patches or modifications are applied on top of them later.
Default value is: ports/srcstatic
Initialises variable ANYSRCDIR.

Directory with plain patches, kept separately from ports. This is one of possible patch sources.
Default value is: ports/patch
Initialises variable static_PATCHDIR.

If set to 1, the work with ROOT moves to static mode without dependencies handling: single ROOT directory is created for all packages, and pkg_root(3) of each one mirrors its files into that general directory. Files of entire ROOT are available to the package while its building instead of materials of dedicated packages, requested by DEPEND. Unset by default.
Initialises variables static_ROOT, ROOT.

any_tch_cc, any_tch_ccld, any_tch_cxx, any_tch_cxxld
Elements of C and C++ toolchain: C compiler, C link string, C++ compiler, C++ link string.

[any_tch_host_cc, any_tch_host_ccld, any_tch_host_cxx, any_tch_host_cxxld] Elements of C and C++ toolchain in host environment. When no cross-compiling is used, host toolchain equals to the main toolchain and host series of options is not needed.

Option with the name of utility to create root-owned materials, when running as general user.

Base directory to write everything during the work of any(1), possibly excluding the release production.
Default value is: build

Options of engine tuning

Scheme of work with multiple dumps. The scheme defines how dump of a new (non-current) package will be got when its context is needed. Available ones are:
plain scheme is the default. It creates new dump, basing on already existing dump of the current package.
heavy scheme generates new dump with dumprdd(1).
crooked scheme relies on dump, created beforehand.

Space separated list of file types, which should be automatically edited by image_setup_paths(3) inside pkg_install(3). That method aims to remove all inclusion of build-related paths, such as ROOT, from installable files. File type is defined by file(1) with the call of:
            file -b --mime-type filename 
Default value is: text/ application/xml application/x-shellscript inode/symlink

Space separated list of templates for find(1) to determine names of executable non-binary scripts, which should be installed to ROOT as real copies (instead of symlinks) and edited to work from that directory. The scripts are searched in prefixes from PREFIX_LIST, concatenated with each entry of root_TRACKED_BIN_DIRS (according option any_root_tracked_bin_dirs).
For example, when PREFIX_LIST contains /usr and /usr/local, and root_TRACKED_BIN_DIRS contains bin and sbin, search for executables will go in /usr/bin/, /usr/sbin/, /usr/local/bin/, /usr/local/sbin/.
Default value is: *-config *-config-*

Space separated list of templates for grep(1) to determine names of text files, which should be installed to ROOT as real copies (instead of symlinks) and edited to work from that directory. The files are searched in prefixes from PREFIX_LIST, concatenated with each entry from root_TRACKED_DIRS (according option any_root_tracked_dirs).
For example, when PREFIX_LIST contains /usr and /usr/local, and root_TRACKED_DIRS contains lib and include, search for files will go in /usr/lib/, /usr/include/, /usr/local/lib/, /usr/local/include/.
By default .pc files are edited: they are part of pkg-config(1) scheme to provide information about includes and libraries. Search template in default value is regular expression instead of simple text.
Default value is: \.pc$
Initialises variable root_TEXTBUILD_FILES.

Space separated list of directories, where executable files for ROOT edit are searched. See any_root_exec_name_template description.
Default value is: bin
Initialises variable root_TRACKED_BIN_DIRS.

Space separated list of directories, where simple text files for ROOT edit are searched. See any_root_textbuild_files description.
Default value is: lib include
Initialises variable root_TRACKED_DIRS.

See also

any(1), any-do(1), rdd(1), datardd(1), dumprdd(1), lsrdd(1), any-api(7), any-build(7)