6. Build project

Build project:
product or concept, developed by the user. The project is defined with configuration set, used modules of build system, included package base, and also general development politics, accepted inside.

Working directory:
separate directory with all stuff for the build. It contains sources, build directories, all temporary files, built binaries, install-ready archives and the copy of build system itself.

It is possible to create several workind directories for single project and work independently in each one.

The build is intended for users with permissions on container usage, one of implementations. In case of the current guide that is chroot(1) command. Other tools of program isolation are possible as well.

Build process does not influence the filesystem outside the working directory. Different users on a single machine may create arbitrary number of working directories.

In ports/ directory all sources are gathered with reference to the current project. At most they are package stuff: sources, patches, anybuilds, auxiliary information to form the packages and maintenance.

The rdd.conf.d/ directory and the rdd.def file keep all project settings. They are options in form of key=value. The given values set up which platform or set of platforms the project deals with. The platform is defined by the combination: toolchain + operating system + machine architecture. Here are all other settings: which format for binary package is used, which engine modules are included, which checks are done, and many others.

The current guide uses project LFS as an example, which is shipped with any infrastructure. Its contents we had copied into default project directory ports/ while performing the instructions above from the section Default_project.

Detailed description of all directories inside working directory is contained in any-workdir(7).