On 5/13/24 12:37, Johnson, Andrew N. via Tech-talk wrote:
> IIRC the original build rules for DB_INSTALLS allow the source path to point into a support module or other external directory, whereas the DB rules were designed for generating and copying files from the local application only. Thus you can use DB_INSTALLS += $(ASYN)/db/asynRecord.dbto copy that file from your Asyn module into the IOC's $(TOP)/dbdirectory.
... so that an iocsh script need only read files from "$(TOP)/db".
I see this as an important complement to static linking of IOC executables.
Both act to "isolate" an IOC instance from changes to files elsewhere in
the system. Hopefully avoiding a situation where an unplanned IOC restart
picks up unexpected changes.
It's a design choice, in the end.
This isolation is appropriate for the "self-containing" approach, while in our RPM-based deployment system I *want* global files (libraries as well as db files) to be picked up by IOCs, so that after deploying a new version of one of our shared support modules - containing both shared library and the matching db files - we don't have to recompile and repackage all IOCs. (As long as the APIs - the library API and the line in the startup script - are stable.)
Cheers,
~Ralph