GBS Logo HOME Generic Build Support (GBS) - User Manual
The subsys.gbs script files Bottom Doc. Button

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

Description
Purpose| General| Calling| Environment Variables| Layout| Notes
Example of a subsys.gbs.bat

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

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

The subsys.gbs script file is used only for Non-GBS SubSystems, is located in the GBS_SUBSYS_PATH directory and is used for the building or auditing of these Subsystems.
It is used by gbssysbuild, gbssysmake, gbssysaudit and for Cleanup functions in gbsmaint.

General Bottom Doc. Button Top Document Button Down Section Button Up Section Button Down Chapter Button Up Chapter Button

Special considerations:

Calling Bottom Doc. Button Top Document Button Down Section Button Up Section Button Down Chapter Button Up Chapter Button

The subsys.gbs file is called:
When you build or audit a SubSystem with one of the gbssys.. commands:
With one of the arguments cleaunp_bld, gen, make, cleanup_aud or audit
When Cleanup a SubSystem with gbsmaint:
With one of the arguments cleaunp_bld or cleanup_aud

Environment Variables Bottom Doc. Button Top Document Button Down Section Button Up Section Button Down Chapter Button Up Chapter Button

Before execution a vast amount of EnvVars is set so you can make your proper selections.
Some EnvVars will be dependent on the SubSystem type.
Refer to example below.

Each GBS_BUILD_type EnvVar contains the Command to execute for that filetype for the current Build
It is taken from the build.gbs file and contains all settings until the first % or $ argument.
Same analogy for GBS_AUDIT_type

Layout Bottom Doc. Button Top Document Button Down Section Button Up Section Button Down Chapter Button Up Chapter Button

For every Non-GBS SubSystem type there is a slightly different subsys.gbs file.
The 'switch' on action (cleaunp_bld, gen, make, cleanup_aud or audit) is the same for all, but the contents of the 'cases' will differ.
Refer to example below.

Notes: Bottom Doc. Button Top Document Button Down Section Button Up Section Button Blank Up Chapter Button

None

Example of a subsys.gbs.bat: Bottom Doc. Button Top Document Button Blank Up Section Button

@ECHO OFF
::=============================================================================
::  [%SUBSYS%] subsys.gbs.bat
::	Requires 1 parameter: action
::	Called to cleanup, gen, make or audit a non-GBS SubSystem
::	For 'make' SubSystems
::=============================================================================
::
::  Currently in $GBS_SYSTEM_PATH/dev/$GBS_SUBSYS
::  Applicable EnvVars:
::	GBS_BUILD
::	GBS_BUILD_PLUGIN
::	GBS_BUILD_PLUGIN_PATH				('make' or 'Other')
::	GBS_BUILD_PLUGIN_BIN_PATH			('make' or 'Other')
::	GBS_BUILD_				('make' or 'Other')
::	GBS_AUDIT_PLUGIN	    (for Audit only)
::	GBS_AUDIT_PLUGIN_PATH	    (for Audit only)    ('make' or 'Other')
::	GBS_AUDIT_PLUGIN_BIN_PATH   (for Audit only)	('make' or 'Other')
::	GBS_AUDIT_	    (for Audit only)	('make' or 'Other')
::
::  Availabe EnvVars:
::      GBS_SYSTEM_PATH
::      GBS_SUBSYS
::      GBS_SUBSYS_PATH
::      GBS_AUDIT_PATH
::      GBS_BUILD_PATH
::      GBS_APP_PATH
::
::	GBS_MAKE		
::      GBS_IGNORE_ERRORS       0 | 1
::      GBS_MODE                FINAL | ASSERT | DEBUG | PROFILING
::      GBS_OPT                 YES | SPEED | SIZE | DEBUG | NO
::      GBS_DEBUGGER            NO | YES
::      GBS_MAP                 NO | YES
::
::      GBS_BLD_      
::      GBS_SYSFLAGS_
::      GBS_FLAGS_    also contains flags resulting from MODE, OPT, DEBUGGER and MAP
::      GBS_SYSINCS_
::      GBS_INCS_
::
::      GBS_MAKE_FLAGS		'-i' if GBS_IGNORE_ERRORS == TRUE
::
::=============================================================================
setlocal
set rc=0

set action=%1

::
::  Adjust for proper actions
::  Just one to a few lines per action. Keep it simple. Do not try to be clever.
::  Do not forget to set rc to proper exit value (0=success, >0=fail)
::

if [%action%] == [cleanup_bld] goto CASE_CLEANUP_BLD
if [%action%] == [gen]         goto CASE_GEN
if [%action%] == [make]        goto CASE_MAKE
if [%action%] == [cleanup_aud] goto CASE_CLEANUP_AUD
if [%action%] == [audit]       goto CASE_AUDIT
goto CASE_DEFAULT
::
::  CLEANUP_BLD
::
:CASE_CLEANUP_BLD
    echo SUBSYS.GBS_: ** SubSys=%GBS_SUBSYS% - Build=%GBS_BUILD% - Action=%action%
    :: <== add your command(s) to execute the bld_cleanup here and remove these lines.
    ::     Do not forget to set rc to proper exit value (0=success, >0=fail)
    :: <== Probably something like:
    %GBS_MAKE% clean -f Makefile.mk -i
    set rc=%ERRORLEVEL%
    goto CASE_END
:CASE_GEN
    ::
    ::	GEN
    ::
    echo SUBSYS.GBS_: ** SubSys=%GBS_SUBSYS% - Build=%GBS_BUILD% - Action=%action%
    :: <== add your command(s) to execute the gen here and remove these lines.
    ::	   Do not execute the 'clean' in this command.
    ::     Do not forget to set rc to proper exit value (0=success, >0=fail)
    :: <== Probably something like:
    %GBS_MAKE% -f Makefile.mk -B -k %GBS_MAKE_FLAGS%
    set rc=%ERRORLEVEL%
    goto CASE_END
:CASE_MAKE
    ::
    ::	MAKE
    ::
    echo SUBSYS.GBS_: ** SubSys=%GBS_SUBSYS% - Build=%GBS_BUILD% - Action=%action%
    :: <== add your command(s) to execute the make here and remove these lines.
    ::     Do not forget to set rc to proper exit value (0=success, >0=fail)
    :: <== Probably something like:
    %GBS_MAKE% -f Makefile.mk %GBS_MAKE_FLAGS%
    set rc=%ERRORLEVEL%
    goto CASE_END
:CASE_CLEANUP_AUD
    ::
    ::	CLEANUP_AUD
    ::
    echo SUBSYS.GBS_: ** SubSys=%GBS_SUBSYS% - Build=%GBS_BUILD% - Audit=%GBS_AUDIT% - Action=%action%
    :: <== add your command(s) to execute the audit_cleanup here and remove these lines.
    ::     Do not forget to set rc to proper exit value (0=success, >0=fail)
    :: <== Probably something like:
    %GBS_MAKE% clean -f Makefile_aud.mk -i
    set rc=%ERRORLEVEL%
    goto CASE_END
:CASE_AUDIT
    ::
    ::	AUDIT
    ::
    echo SUBSYS.GBS_: ** SubSys=%GBS_SUBSYS% - Build=%GBS_BUILD% - Audit=%GBS_AUDIT% - Action=%action%
    :: <== add your command(s) to execute the gbssubaudit.bat here and
    ::     remove these lines.
    ::     Do not forget to set rc to proper exit value (0=success, >0=fail)
    :: <== Probably something like:
    :: %GBS_MAKE% -f Makefile_aud.mk -B -k %GBS_MAKE_FLAGS%
    echo SUBSYS.GBS_: No audits for non-GBS SubSystems
    set rc=%ERRORLEVEL%
    goto CASE_END
:CASE_DEFAULT
    ::
    ::	DEFAULT
    ::
    echo SUBSYS.GBS_: ***FATAL ERROR***
    echo - Invalid action '%action%'. Must be one of (cleaunp_bld gen make cleanup_aud audit)
    set rc=9
    goto CASE_END
:CASE_END

endlocal & set rc=%rc%
exit /B %rc%
:::EOF:::


subsys.html