GBS Logo HOME Generic Build Support (GBS) - User Manual
Top Level Directory Structure Bottom Doc. Button

Description Bottom Doc. Button Top Document Button Down Section Button Blank

The rigid and strict nature of the GBS directory structure allows interchange ability between Systems and SubSystems.
GBS will generate the directory-structure automatically making sure all directories are properly named and added to any specified SCM System.

General overview Bottom Doc. Button Top Document Button Down Section Button Blank Down Chapter Button Blank

For the build process three areas can be distinguished:
The above results in a basic directory-structure that looks like this:
Reserved (fixed) directory names are specified in a blue background.

Toplevel Directory
The 'res' directory contains directories with the deliverables of the various SubSystems.
The 'dev' directory contains the top-level directories of the various SubSystems.
The 'ext' directory contains the top-level directories of the various external systems.

In a project that consists of a single Subsystem (i.e. where the SubSystem is the System) still this top-level directory structure is used.

The basics Bottom Doc. Button Top Document Button Down Section Button Blank Down Chapter Button Up Chapter Button

Software is developed in the SubSystems.
SubSystems contain, amongst others: sources, header-files, make-files and their resulting objects, libraries and executables.
If, for generation purposes, a SubSystem needs items from another SubSystem (like header-files or libraries), these items must be copied from the other SubSystem in the 'res' area. (How is explained later).
In a GBS environment a project will be split into SubSystems governed by scope-control.
Note that most (small) Systems will have only one SubSystem.
On a Software-Architectural level, SubSystems will have a hierarchy, defining the order in which SubSystems must be built.
In GBS this hierarchy is not reflected in the directory structure. All SubSystems reside on the same directory level.
The same applies to Software Components within SubSystems.
During the total generation of the system, first the lowest level SubSystem will be built. Using the GBS 'gbsexport' command, its deliverable(s) (e.g. library and header-files) will then be exported into the 'res' area and so made available to the next SubSystem(s). Then the next SubSystem in the Software hierarchy can be built, gradually moving 'up' the scope, generating and incorporating the other SubSystems.

Directories Bottom Doc. Button Top Document Button Down Section Button Blank Down Chapter Button Up Chapter Button

The System directory

This is the top-level directory for the whole project
In the rest of the document this directory will be referred to as the SYSTEM directory.

The 'dev' directory

This directory contains the top-level directories of the various SubSystems.

The 'res' directory

This directory contains matching SubSystem directories that are used for interfacing between SubSystems.
'res' stands for 'result' i.e. deliverables generated by the SubSystems.

The 'ext' directory

This directory contains 'static' parts of the project. i.e. those parts that are not generated for the project, are used 'as-is' and are not covered by another version-controlled repository.

Other Directories

Although not mentioned before, there are also a number of other top-level directories like 'sys', 'sysbuild', 'sysaudit', 'systool', 'silo' and 'tmp'
Their usage is described in Full-GBS Directory Structure

Additional top-level directories

All top-level directories are mandatory.
Additional directories may be placed at this top-level. Names are free except for the following:
- doc for documentation at system-level
This means that if you use these names, you have to use them for the purpose as specified above.

The SubSystem top directory

GBS allows Subsystems to be either Full-GBS or Non-GBS compliant.

Full-GBS SubSystems

Full-GBS Subsystems adhere completely to the GBS way of working.
The generation of the SubSystem is completely taken care of by GBS

Non-GBS SubSystems

This allows for 'alien' SubSystems to be incorporated in the generation-process.
Non-GBS SubSystems may have any directory-structure and/or generation process.
Non-GBS SubSystems require a number of predefined scripts that will be called by the GBS Top-level functions like: gbssysbuild, gbssysmake, gbssysaudit and cleanup.
The gbsexport functionality to fill res and/.or export directories is also available.

Continue reading Bottom Doc. Button Top Document Button Blank Blank Blank Up Chapter Button

Full Directory Structure
top_dir_struct.html