GBS Logo HOME Generic Build Support (GBS)
Home Bottom Doc. Button

Latest Version

Latest version:
  06.02 [2024-04-29]

GBS User

Download Generic Build Support (GBS) gbs_RMC-06.02_2024-04-29.zip

GBS Developer (sources)

gbs_dev_RMC-06.02_2024-04-29.zip

What others say

"The most compelling reasons for us to use GBS are:
  • the 100% reliability of every build
  • the ease of building multiple variants of an application
  • as part of our common IDE, that our engineers can move from project to project with ease"
Peter Janssen,
Test and Configuration Manager
RIALTOSOFT Automotive Engineering Services

"..for me the most remarkable aspects in using GBS are:
  • the ease of adding new components during development
  • the uniformity in building components, throughout the system.
  • the ease of generating an overview of dependencies between components
  • the ease of defining the scope of a component
  • even with its predefined structure it allows for the integration of 3rd party software
An added benefit is that it can be used to guard the architecture. I promote the usage of GBS for every project I partake in."
Ronald Linders,
Build Manager
Philips Applied Technologies

Documentation

The full documentation of a GBS version is included in the distribution.
The latest version is also online.
See below.

Installation Notes

GBSHelp: Install Notes
For Windows and Linux.

GBS User

The GBS User Manual (GBSHelp)

GBSHelp: GBS Release Notes
The release notes from the latest version to the oldest version.

GBSHelp: GBS FAQ
Frequently Asked Questions

GBS Developer

GBS Development Manual
For when you want to do it yourself.

Generic Build Support is a way of setting up a directory structure combined with generic scripts to accommodate Build Automation for almost any kind of software project.
Building information is kept in dedicated files enabling automatic generation of make files, independent of platform or SCMS.

The key aspect of GBS is the directory structure.
Its rigid and strict[1] nature makes sure that everything has its place so that it can be easily retrieved and it is assured that any GBS command will run on any SubSystem created according to the GBS Directory Structure rules.
This directory structure makes it possible to swap and/or share software between projects (interchange ability) ensures an unified way of working.
And yes: where needed there is all the freedom you need!
You can run GBS parallel on Windows 10, Windows 10 WSL and Linux systems, sharing the same physical directory structure.

GBS depends only on Perl (Version 5.16.3 or later, preferably with PerlTkx). No extra packages required when using ActiveState Perl
This version was developed on Windows 10 using Perl 5.16.3 from ActiveState (with PerlTkx)
It was tested on Windows 10, Windows 10 WSL 1 and Ubuntu 22.04 - GNOME. (On VirtualBox 7.0)
Many thanks to Martin Smits of the Netherlands who did the beta-testing on Manjaro 18.04 - Xfce.
Although not tested: There is no reason why GBS should not run on Unix or Windows 7
No clue if it works on Windows 11.

For a simple project you can start using GBS quickly and keep in mind that everything has its place.
I strongly suggest reading the 'Getting Started' part of the GBSHelp.
Following the instructions in GBSHelp: Create a GBS-WA/System will quickly set you on track.

The power of GBS lies in its concept.
So on the long run this means that in order for you to use GBS to its full extent, you must understand the concept of GBS and use it as intended. Rest assured: it is very simple.
Understand GBS by:
GBS is OpenSource under the MIT License and as such free to use:
  • You are not allowed to modify released code.
  • You are, however, allowed to download the code, modify it and create your own release.
  • You should use GBS as intended.

Note: The free and OpenSource versions of GBS are not compatible with pre version 2.00 releases

Before you start using GBS, please take a moment to read the GBSHelp: Terms and Conditions
[1] Rigid and strict really means that no deviations are allowed.

Is GBS useful for me?

  • If you develop software for a single platform and you use a sophisticated IDE like Visual Studio: Probably not.
  • If you develop in a 'make' environment (also Eclipse): Probably
  • If you develop for more than one platform: Definitely

There are may other tools available, why should I use GBS?
  • GBS forces the same way of working in terms of project layout and procedures
    • Every project looks the same. Everything has its place.
    • Same way of working for all projects
  • Customization is very limited
  • You do not write scripts or complex customizations
  • Full backward compatibility

Important

The documentation in the GBSHelp is just what it is named. It is a User Manual.
It does not describe the background, concepts or philosophy of GBS.
It therefore cannot be used to determine whether GBS is usable in a particular environment or project.
It certainly cannot be used to assess the full potential and usability of GBS.
For above purposes the interested user should read the GBS Concepts (PDF).

Features

  • Fits perfectly in an Agile environment
  • Fully portable and relocatable directory structure
  • Multiple platform support: Windows 10, Windows WSL & Linux (Windows 7, Unix)
  • Same physical directory structure used for all platforms (on shared network-drives)
  • Generated, full compliant 'make' files
    • 100% reliable (incremental) builds
    • Generated Files Cross Reference
  • Allows subdivision into SubSystems and Components
  • Any number of SubSystems and/or Components
  • Any number of libraries and/or executables per Component
  • Strict applicable scoping rules
  • Support for embedded generation of 3rd party software
  • Integrated support for any compiler
  • Integrated support for SCA tools like QAC/QAC++, PC-Lint and C++Test
  • Support for multi-site environments
  • Command-line oriented
    • Support for GUI integration (e.g. Visual Studio, Slick Edit, Eclipse, Crimson Editor, Notepad++, gedit)
  • Comprehensive GUI covering all GBS commands
  • Automated directory creation and structure setup
  • Independent from Software Configuration Management System (SCMS)
    • SCMSs supported (for automated structure creation): Git and Subversion.
  • Built-in Parallel generation
  • Background generation ('at' jobs) with extensive log files
  • Prepared for tools like SoftFab, BuildForge, Hudson and CruiseControl
  • Uniform way of working
  • Simple in use. Easy to learn. Powerfully due to simplicity and consistency
  • Suitable for small, medium and large systems
  • Only dependent on Perl (Version 5.16.3 or later, preferably with PerlTkx)
    • Note that for GBS Perl need not be in the PATH, so any use of other Perl versions is not disturbed
  • No, repeat No user written scripts

home.html