Add a Module
Scope
This document covers the operator procedure for adding an EPICS module to this repository.
Out of scope: module naming rules, dependency key rules, and configure type semantics are defined in module-management.md.
Procedure
- Define the module source and version in
configure/RELEASE.
SRC_NAME_SNMP:=snmp
SRC_TAG_SNMP:=tags/v1.0.0.2j
SRC_VER_SNMP:=1.0.0.2j
- Override the generated Git URL in
configure/CONFIG_MODSwhen the module is not hosted undergithub.com/epics-modules.
SRC_GITURL_SNMP:=$(SRC_URL_JEONGHANLEE)/$(strip $(SRC_NAME_SNMP))
- Declare the build dependencies and configure type in
configure/CONFIG_MODS_DEPS.
snmp_DEPS:=null.base
snmp_CONF_TYPE:=auto
- Provide the configuration target.
For auto modules, configure/RULES_MODS_CONF_AUTO generates conf.* and
conf.*.show from the declarations in configure/CONFIG_MODS_DEPS.
The snmp example is an auto module, so it does not need an explicit rule
in configure/RULES_MODS_CONFIG.
For custom modules, add the target to configure/RULES_MODS_CONFIG and
keep the group target list and concrete rule synchronized.
- Regenerate module metadata and verify the new module targets.
make reconf.modules
make PRINT.SRC_GITURL_SNMP
make PRINT.snmp_CONF_TYPE
make -n conf.snmp
make -n build.snmp
- Initialize, configure, build, install, and link the module.
make init.modules
make conf.snmp
make conf.snmp.show
make build.snmp
make install.snmp
make symlink.snmp
make exist.modules LEVEL=0
Configure Type
<module>_CONF_TYPE classifies whether the module configuration can be
generated from a simple pattern or must remain hand-written. auto modules
use generated conf.* targets; custom modules remain explicit rules.
See module-management.md for the classification table and naming rules.