epics-module

Creates and configures IOC apps and modules with Bazel build system and runtime startup behavior.

1|1|Updated Apr 14, 2026
One-click install
npx skills add https://github.com/BCDA-APS/opencode-skills --skill epics-module
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: epics-module
Source: https://github.com/BCDA-APS/opencode-skills/tree/main/epics-module
Command: npx skills add https://github.com/BCDA-APS/opencode-skills --skill epics-module

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It removes uncertainty and rework when creating EPICS IOC applications and support modules by giving a correct, repeatable build and startup structure.

Core Features & Use Cases

  • Scaffold modules with makeBaseApp.pl: Create ioc and support module directory trees with the right configure/ and Makefile boilerplate.
  • Assemble DBD and load device support correctly: Build composite DBDs from base and support-module DBD fragments, and ensure _registerRecordDeviceDriver.cpp is generated rather than edited.
  • Produce working startup scripts (st.cmd): Order dbLoadDatabase, registration, record/template loads, and iocInit so IOCs start reliably.
  • Plan dependencies and linking: Add dependent modules via configure/RELEASE, update src/Makefile DBD fragments and library link order, and keep $(EPICS_BASE_IOC_LIBS) last.

Quick Start

Ask the AI to generate a complete EPICS module layout for a new IOC named myApp with a support library named mySupport, including the correct Makefile variables, DBD fragment wiring, and an st.cmd that loads myRecords.db using the right startup command order.

Frequently Asked Questions about epics-module

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new EPICS IOC application using makeBaseApp.pl?

To create an EPICS IOC application with makeBaseApp.pl, you must follow the two-step pattern to scaffold the ioc and support module directory trees, generating the correct configure/ and Makefile boilerplate for a repeatable build structure.

What is the correct command order for an EPICS st.cmd startup script?

The correct st.cmd command order requires dbLoadDatabase and record-device-driver registration to execute before dbLoadRecords and iocInit, ensuring the EPICS IOC starts reliably and loads databases in the proper sequence.

How do I assemble DBD fragments when building an EPICS IOC?

To assemble DBD fragments for an EPICS IOC, combine base and support-module fragments in your src/Makefile, ensuring the _registerRecordDeviceDriver.cpp file is generated by the build system rather than edited manually.

Why does my EPICS IOC fail to link dependent support modules?

EPICS IOC linking fails when dependent modules are not added via configure/RELEASE or when libraries are not linked in reverse dependency order, so you must always keep $(EPICS_BASE_IOC_LIBS) last in the src/Makefile.

How do I configure PROD_IOC and LIBRARY_IOC in an EPICS Makefile?

You configure PROD_IOC, PROD_HOST, and LIBRARY_IOC appropriately in the EPICS Makefile to define build targets, matching composite DBD fragments to the PROD_IOC and linking required support libraries correctly.

Can I use makeBaseApp.pl templates to scaffold support modules and IOC directory trees together?

Yes, you can use makeBaseApp.pl templates to scaffold both support modules and IOC directory trees, generating the complete EPICS build-system structure with proper configure/ files, Makefile variables, and startup behavior.