Using sumo in your application
Use supports in an application
Suppose we have an application and want to use existing supports. The application has a list of modules in file “configure/MODULES”, you can see this file at MODULES.
In order to use the support modules in our application we simply enter:
sumo build use
This command is described in detail at sumo build use. The program replies:
using build BL-001
This means that the file configure/RELEASE was generated with all entries needed to use support modules from build ‘BL-001’ (each build has a name). You can see the contents of this file at RELEASE for BL-001.
You can now build your application with:
make
Use a different version of a support
In order to use, for example, module “ALARM” in version “R3-8”, we change in file “configure/MODULES” the line:
"ALARM:R3-8",
to:
"ALARM:R3-9",
We now generate and use a new build with a single command:
sumo build utilize
This command is described in detail at sumo build new. sumo generates a Makefile in it’s build directory, fetches all needed sources and invokes “make”. You can see this file at Makefile for BL-002. Information on all builds is kept in a build database, you can see this at BUILDS.DB.
The command then creates file configure/RELEASE to use build ‘BL-002’ (the name of the new build). You can see the contents of this file at RELEASE for BL-002.
You can now build your application with:
make
Details
In this section you see the contents of some of the files used or generated by sumo.
MODULES
This is the file configure/MODULES that specifies for sumo which modules our application uses. For more details on module specifications see Module Specifications
{
"alias": [
"APPS_GENERICBOOT:GENERIC_BOOT",
"BASE:EPICS_BASE",
"SEQ:SNCSEQ"
],
"module": [
"ALARM:R3-9",
"APPS_CRATECTRL:R4-1",
"APPS_GENERICBOOT:R1-6",
"APPS_GENERICTEMPLATE:R3-2-1",
"APPS_IOCWATCH:R3-1",
"APPS_MOTOR:R4-5-6",
"ASYN:R4-30-bessy1",
"AUTOSAVE:R4-8-bessy4",
"BASE:R3-14-12-5-bessy4-rtems-4.9-sumo",
"BESSYRULES:R2-29",
"BME:R1-0-7",
"BSPDEP_CPUBOARDINIT:R4-1",
"BSPDEP_TIMER:R6-2",
"BSPDEP_VMETAS:R2-0",
"CAPUTLOG:R3-3-2",
"DEVIOCSTATS:R3-1-9-bessy5",
"DISTVERSION:R2-2",
"ESD:R2-1",
"KEITHLEY:R1-1-19",
"MCAN:R2-6-3-2",
"MISC_DBC:R3-0",
"MISC_DEBUGMSG:R3-0",
"MOTOR:R6-9-bessy5",
"RTEMS-BUILD-TOOL:4.9-1.12",
"S7PLC:R2-0",
"SEQ:R2-1-16",
"SOFT_DEVHWCLIENT:R3-0",
"APPS_STREAMTEMPLATESANDPROTOCOLS:R2-18",
"STREAMDEVICE:R2-7-7-bessy3",
"TOOLS_DBOPT:R0-4",
"TOOLS_MSI:R1-5-bessy3",
"VHQ:R3-3",
"VXBOOTPARAMS:R2-4"
]
}
RELEASE for BL-001
This is the content of the generated RELEASE file for build “BL-001” in our example:
# generated by sumo using build BL-001:
VXBOOTPARAMS=/srv/csr/Epics/sumo/build/VXBOOTPARAMS/R2-4+BL-001
VHQ=/srv/csr/Epics/sumo/build/VHQ/R3-3+BL-001
KEITHLEY=/srv/csr/Epics/sumo/build/KEITHLEY/R1-1-19+BL-001
BME=/srv/csr/Epics/sumo/build/BME/R1-0-7+BL-001
APPS_STREAMTEMPLATESANDPROTOCOLS=/srv/csr/Epics/sumo/build/APPS_STREAMTEMPLATESANDPROTOCOLS/R2-18+BL-001
APPS_MOTOR=/srv/csr/Epics/sumo/build/APPS_MOTOR/R4-5-6+BL-001
APPS_IOCWATCH=/srv/csr/Epics/sumo/build/APPS_IOCWATCH/R3-1+BL-001
APPS_GENERICTEMPLATE=/srv/csr/Epics/sumo/build/APPS_GENERICTEMPLATE/R3-2-1+BL-001
BESSYRULES=/srv/csr/Epics/sumo/build/BESSYRULES/R2-29+BL-001
TOOLS_MSI=/srv/csr/Epics/sumo/build/TOOLS_MSI/R1-5-bessy3+BL-001
TOOLS_DBOPT=/srv/csr/Epics/sumo/build/TOOLS_DBOPT/R0-4+BL-001
STREAMDEVICE=/srv/csr/Epics/sumo/build/STREAMDEVICE/R2-7-7-bessy3+BL-001
MCAN=/srv/csr/Epics/sumo/build/MCAN/R2-6-3-2+BL-001
SOFT_DEVHWCLIENT=/srv/csr/Epics/sumo/build/SOFT_DEVHWCLIENT/R3-0+BL-001
ALARM=/srv/csr/Epics/sumo/build/ALARM/R3-8+BL-001
SNCSEQ=/srv/csr/Epics/sumo/build/SEQ/R2-1-16+BL-001
S7PLC=/srv/csr/Epics/sumo/build/S7PLC/R2-0+BL-001
MOTOR=/srv/csr/Epics/sumo/build/MOTOR/R6-9-bessy5+BL-001
MISC_DEBUGMSG=/srv/csr/Epics/sumo/build/MISC_DEBUGMSG/R3-0+BL-001
MISC_DBC=/srv/csr/Epics/sumo/build/MISC_DBC/R3-0+BL-001
ESD=/srv/csr/Epics/sumo/build/ESD/R2-1+BL-001
DISTVERSION=/srv/csr/Epics/sumo/build/DISTVERSION/R2-2+BL-001
DEVIOCSTATS=/srv/csr/Epics/sumo/build/DEVIOCSTATS/R3-1-9-bessy5+BL-001
CAPUTLOG=/srv/csr/Epics/sumo/build/CAPUTLOG/R3-3-2+BL-001
BSPDEP_VMETAS=/srv/csr/Epics/sumo/build/BSPDEP_VMETAS/R2-0+BL-001
BSPDEP_TIMER=/srv/csr/Epics/sumo/build/BSPDEP_TIMER/R6-2+BL-001
BSPDEP_CPUBOARDINIT=/srv/csr/Epics/sumo/build/BSPDEP_CPUBOARDINIT/R4-1+BL-001
AUTOSAVE=/srv/csr/Epics/sumo/build/AUTOSAVE/R4-8-bessy4+BL-001
ASYN=/srv/csr/Epics/sumo/build/ASYN/R4-30-bessy1+BL-001
GENERIC_BOOT=/srv/csr/Epics/sumo/build/APPS_GENERICBOOT/R1-6+BL-001
EPICS_BASE=/srv/csr/Epics/sumo/build/BASE/R3-14-12-5-bessy4-rtems-4.9-sumo+BL-001
RTEMS-BUILD-TOOL=/srv/csr/Epics/sumo/build/RTEMS-BUILD-TOOL/4.9-1.12+BL-001
APPS_CRATECTRL=/srv/csr/Epics/sumo/build/APPS_CRATECTRL/R4-1+BL-001
RELEASE for BL-002
This is the content of the generated RELEASE file for build “BL-002” in our example:
# generated by sumo using build BL-002:
VXBOOTPARAMS=/srv/csr/Epics/sumo/build/VXBOOTPARAMS/R2-4+BL-001
VHQ=/srv/csr/Epics/sumo/build/VHQ/R3-3+BL-001
KEITHLEY=/srv/csr/Epics/sumo/build/KEITHLEY/R1-1-19+BL-001
BME=/srv/csr/Epics/sumo/build/BME/R1-0-7+BL-001
APPS_STREAMTEMPLATESANDPROTOCOLS=/srv/csr/Epics/sumo/build/APPS_STREAMTEMPLATESANDPROTOCOLS/R2-18+BL-001
APPS_MOTOR=/srv/csr/Epics/sumo/build/APPS_MOTOR/R4-5-6+BL-001
APPS_IOCWATCH=/srv/csr/Epics/sumo/build/APPS_IOCWATCH/R3-1+BL-001
APPS_GENERICTEMPLATE=/srv/csr/Epics/sumo/build/APPS_GENERICTEMPLATE/R3-2-1+BL-001
BESSYRULES=/srv/csr/Epics/sumo/build/BESSYRULES/R2-29+BL-001
TOOLS_MSI=/srv/csr/Epics/sumo/build/TOOLS_MSI/R1-5-bessy3+BL-001
TOOLS_DBOPT=/srv/csr/Epics/sumo/build/TOOLS_DBOPT/R0-4+BL-001
STREAMDEVICE=/srv/csr/Epics/sumo/build/STREAMDEVICE/R2-7-7-bessy3+BL-001
MCAN=/srv/csr/Epics/sumo/build/MCAN/R2-6-3-2+BL-002
SOFT_DEVHWCLIENT=/srv/csr/Epics/sumo/build/SOFT_DEVHWCLIENT/R3-0+BL-001
ALARM=/srv/csr/Epics/sumo/build/ALARM/R3-9+BL-002
SNCSEQ=/srv/csr/Epics/sumo/build/SEQ/R2-1-16+BL-001
S7PLC=/srv/csr/Epics/sumo/build/S7PLC/R2-0+BL-001
MOTOR=/srv/csr/Epics/sumo/build/MOTOR/R6-9-bessy5+BL-001
MISC_DEBUGMSG=/srv/csr/Epics/sumo/build/MISC_DEBUGMSG/R3-0+BL-001
MISC_DBC=/srv/csr/Epics/sumo/build/MISC_DBC/R3-0+BL-001
ESD=/srv/csr/Epics/sumo/build/ESD/R2-1+BL-001
DISTVERSION=/srv/csr/Epics/sumo/build/DISTVERSION/R2-2+BL-001
DEVIOCSTATS=/srv/csr/Epics/sumo/build/DEVIOCSTATS/R3-1-9-bessy5+BL-001
CAPUTLOG=/srv/csr/Epics/sumo/build/CAPUTLOG/R3-3-2+BL-001
BSPDEP_VMETAS=/srv/csr/Epics/sumo/build/BSPDEP_VMETAS/R2-0+BL-001
BSPDEP_TIMER=/srv/csr/Epics/sumo/build/BSPDEP_TIMER/R6-2+BL-001
BSPDEP_CPUBOARDINIT=/srv/csr/Epics/sumo/build/BSPDEP_CPUBOARDINIT/R4-1+BL-001
AUTOSAVE=/srv/csr/Epics/sumo/build/AUTOSAVE/R4-8-bessy4+BL-001
ASYN=/srv/csr/Epics/sumo/build/ASYN/R4-30-bessy1+BL-001
GENERIC_BOOT=/srv/csr/Epics/sumo/build/APPS_GENERICBOOT/R1-6+BL-001
EPICS_BASE=/srv/csr/Epics/sumo/build/BASE/R3-14-12-5-bessy4-rtems-4.9-sumo+BL-001
RTEMS-BUILD-TOOL=/srv/csr/Epics/sumo/build/RTEMS-BUILD-TOOL/4.9-1.12+BL-001
APPS_CRATECTRL=/srv/csr/Epics/sumo/build/APPS_CRATECTRL/R4-1+BL-001
Makefile for BL-002
This is the generated makefile for build BL-002:
ALARM=/srv/csr/Epics/sumo/build/ALARM/R3-9+BL-002
APPS_CRATECTRL=/srv/csr/Epics/sumo/build/APPS_CRATECTRL/R4-1+BL-001
APPS_GENERICBOOT=/srv/csr/Epics/sumo/build/APPS_GENERICBOOT/R1-6+BL-001
APPS_GENERICTEMPLATE=/srv/csr/Epics/sumo/build/APPS_GENERICTEMPLATE/R3-2-1+BL-001
APPS_IOCWATCH=/srv/csr/Epics/sumo/build/APPS_IOCWATCH/R3-1+BL-001
APPS_MOTOR=/srv/csr/Epics/sumo/build/APPS_MOTOR/R4-5-6+BL-001
APPS_STREAMTEMPLATESANDPROTOCOLS=/srv/csr/Epics/sumo/build/APPS_STREAMTEMPLATESANDPROTOCOLS/R2-18+BL-001
ASYN=/srv/csr/Epics/sumo/build/ASYN/R4-30-bessy1+BL-001
AUTOSAVE=/srv/csr/Epics/sumo/build/AUTOSAVE/R4-8-bessy4+BL-001
BASE=/srv/csr/Epics/sumo/build/BASE/R3-14-12-5-bessy4-rtems-4.9-sumo+BL-001
BESSYRULES=/srv/csr/Epics/sumo/build/BESSYRULES/R2-29+BL-001
BME=/srv/csr/Epics/sumo/build/BME/R1-0-7+BL-001
BSPDEP_CPUBOARDINIT=/srv/csr/Epics/sumo/build/BSPDEP_CPUBOARDINIT/R4-1+BL-001
BSPDEP_TIMER=/srv/csr/Epics/sumo/build/BSPDEP_TIMER/R6-2+BL-001
BSPDEP_VMETAS=/srv/csr/Epics/sumo/build/BSPDEP_VMETAS/R2-0+BL-001
CAPUTLOG=/srv/csr/Epics/sumo/build/CAPUTLOG/R3-3-2+BL-001
DEVIOCSTATS=/srv/csr/Epics/sumo/build/DEVIOCSTATS/R3-1-9-bessy5+BL-001
DISTVERSION=/srv/csr/Epics/sumo/build/DISTVERSION/R2-2+BL-001
ESD=/srv/csr/Epics/sumo/build/ESD/R2-1+BL-001
KEITHLEY=/srv/csr/Epics/sumo/build/KEITHLEY/R1-1-19+BL-001
MCAN=/srv/csr/Epics/sumo/build/MCAN/R2-6-3-2+BL-002
MISC_DBC=/srv/csr/Epics/sumo/build/MISC_DBC/R3-0+BL-001
MISC_DEBUGMSG=/srv/csr/Epics/sumo/build/MISC_DEBUGMSG/R3-0+BL-001
MOTOR=/srv/csr/Epics/sumo/build/MOTOR/R6-9-bessy5+BL-001
RTEMS-BUILD-TOOL=/srv/csr/Epics/sumo/build/RTEMS-BUILD-TOOL/4.9-1.12+BL-001
S7PLC=/srv/csr/Epics/sumo/build/S7PLC/R2-0+BL-001
SEQ=/srv/csr/Epics/sumo/build/SEQ/R2-1-16+BL-001
SOFT_DEVHWCLIENT=/srv/csr/Epics/sumo/build/SOFT_DEVHWCLIENT/R3-0+BL-001
STREAMDEVICE=/srv/csr/Epics/sumo/build/STREAMDEVICE/R2-7-7-bessy3+BL-001
TOOLS_DBOPT=/srv/csr/Epics/sumo/build/TOOLS_DBOPT/R0-4+BL-001
TOOLS_MSI=/srv/csr/Epics/sumo/build/TOOLS_MSI/R1-5-bessy3+BL-001
VHQ=/srv/csr/Epics/sumo/build/VHQ/R3-3+BL-001
VXBOOTPARAMS=/srv/csr/Epics/sumo/build/VXBOOTPARAMS/R2-4+BL-001
.PHONY: all clean config distclean
all: \
ALARM/R3-9+BL-002/sumo-all \
MCAN/R2-6-3-2+BL-002/sumo-all
config: \
ALARM/R3-9+BL-002/sumo-config \
MCAN/R2-6-3-2+BL-002/sumo-config
clean: \
ALARM/R3-9+BL-002/sumo-clean \
MCAN/R2-6-3-2+BL-002/sumo-clean
distclean: \
ALARM/R3-9+BL-002/sumo-distclean \
MCAN/R2-6-3-2+BL-002/sumo-distclean
MCAN/R2-6-3-2+BL-002/sumo-all: \
ALARM/R3-9+BL-002/sumo-all
%/sumo-all:
$(MAKE) -C $(@D)
cd $(@D) && rm -f sumo-all sumo-config sumo-clean sumo-distclean
touch $@
%/sumo-config:
cd $(@D) && rm -f sumo-all sumo-config sumo-clean sumo-distclean
touch $@
%/sumo-clean:
$(MAKE) -C $(@D) clean
cd $(@D) && rm -f sumo-all sumo-config sumo-clean sumo-distclean
touch $@
%/sumo-distclean:
$(MAKE) -C $(@D) distclean
cd $(@D) && rm -f sumo-all sumo-config sumo-clean sumo-distclean
touch $@
BUILDS.DB
This is the content of the build database after we created BL-001 and BL-002. For more information see The build database:
{
"BL-001": {
"modules": {
"ALARM": "R3-8",
"APPS_CRATECTRL": "R4-1",
"APPS_GENERICBOOT": "R1-6",
"APPS_GENERICTEMPLATE": "R3-2-1",
"APPS_IOCWATCH": "R3-1",
"APPS_MOTOR": "R4-5-6",
"APPS_STREAMTEMPLATESANDPROTOCOLS": "R2-18",
"ASYN": "R4-30-bessy1",
"AUTOSAVE": "R4-8-bessy4",
"BASE": "R3-14-12-5-bessy4-rtems-4.9-sumo",
"BESSYRULES": "R2-29",
"BME": "R1-0-7",
"BSPDEP_CPUBOARDINIT": "R4-1",
"BSPDEP_TIMER": "R6-2",
"BSPDEP_VMETAS": "R2-0",
"CAPUTLOG": "R3-3-2",
"DEVIOCSTATS": "R3-1-9-bessy5",
"DISTVERSION": "R2-2",
"ESD": "R2-1",
"KEITHLEY": "R1-1-19",
"MCAN": "R2-6-3-2",
"MISC_DBC": "R3-0",
"MISC_DEBUGMSG": "R3-0",
"MOTOR": "R6-9-bessy5",
"RTEMS-BUILD-TOOL": "4.9-1.12",
"S7PLC": "R2-0",
"SEQ": "R2-1-16",
"SOFT_DEVHWCLIENT": "R3-0",
"STREAMDEVICE": "R2-7-7-bessy3",
"TOOLS_DBOPT": "R0-4",
"TOOLS_MSI": "R1-5-bessy3",
"VHQ": "R3-3",
"VXBOOTPARAMS": "R2-4"
},
"state": "testing"
},
"BL-002": {
"linked": {
"APPS_CRATECTRL": "BL-001",
"APPS_GENERICBOOT": "BL-001",
"APPS_GENERICTEMPLATE": "BL-001",
"APPS_IOCWATCH": "BL-001",
"APPS_MOTOR": "BL-001",
"APPS_STREAMTEMPLATESANDPROTOCOLS": "BL-001",
"ASYN": "BL-001",
"AUTOSAVE": "BL-001",
"BASE": "BL-001",
"BESSYRULES": "BL-001",
"BME": "BL-001",
"BSPDEP_CPUBOARDINIT": "BL-001",
"BSPDEP_TIMER": "BL-001",
"BSPDEP_VMETAS": "BL-001",
"CAPUTLOG": "BL-001",
"DEVIOCSTATS": "BL-001",
"DISTVERSION": "BL-001",
"ESD": "BL-001",
"KEITHLEY": "BL-001",
"MISC_DBC": "BL-001",
"MISC_DEBUGMSG": "BL-001",
"MOTOR": "BL-001",
"RTEMS-BUILD-TOOL": "BL-001",
"S7PLC": "BL-001",
"SEQ": "BL-001",
"SOFT_DEVHWCLIENT": "BL-001",
"STREAMDEVICE": "BL-001",
"TOOLS_DBOPT": "BL-001",
"TOOLS_MSI": "BL-001",
"VHQ": "BL-001",
"VXBOOTPARAMS": "BL-001"
},
"modules": {
"ALARM": "R3-9",
"APPS_CRATECTRL": "R4-1",
"APPS_GENERICBOOT": "R1-6",
"APPS_GENERICTEMPLATE": "R3-2-1",
"APPS_IOCWATCH": "R3-1",
"APPS_MOTOR": "R4-5-6",
"APPS_STREAMTEMPLATESANDPROTOCOLS": "R2-18",
"ASYN": "R4-30-bessy1",
"AUTOSAVE": "R4-8-bessy4",
"BASE": "R3-14-12-5-bessy4-rtems-4.9-sumo",
"BESSYRULES": "R2-29",
"BME": "R1-0-7",
"BSPDEP_CPUBOARDINIT": "R4-1",
"BSPDEP_TIMER": "R6-2",
"BSPDEP_VMETAS": "R2-0",
"CAPUTLOG": "R3-3-2",
"DEVIOCSTATS": "R3-1-9-bessy5",
"DISTVERSION": "R2-2",
"ESD": "R2-1",
"KEITHLEY": "R1-1-19",
"MCAN": "R2-6-3-2",
"MISC_DBC": "R3-0",
"MISC_DEBUGMSG": "R3-0",
"MOTOR": "R6-9-bessy5",
"RTEMS-BUILD-TOOL": "4.9-1.12",
"S7PLC": "R2-0",
"SEQ": "R2-1-16",
"SOFT_DEVHWCLIENT": "R3-0",
"STREAMDEVICE": "R2-7-7-bessy3",
"TOOLS_DBOPT": "R0-4",
"TOOLS_MSI": "R1-5-bessy3",
"VHQ": "R3-3",
"VXBOOTPARAMS": "R2-4"
},
"state": "testing"
}
}