5.2 Dependency paths in RELEASE
configure/RELEASE identifies the EPICS Base and module installations
used to build an IOC application. These are build paths, not network
addresses or record macros.
Paths and configuration order
The generated application defines MODULES relative to EPICS_BASE,
then names the modules it uses. Its Base path comes from the environment
active when you run the generator.
| Variable | Installation selected |
|---|---|
EPICS_BASE | The matching 1.5.0 tree’s base directory |
MODULES | $(EPICS_BASE)/../modules |
ASYN | $(MODULES)/asyn |
CALC | $(MODULES)/calc |
STREAM | $(MODULES)/StreamDevice |
PVXS | $(MODULES)/pvxs |
Commented module definitions are inactive. Each active dependency must resolve to an absolute path containing its installed files.
Keep EPICS_BASE last among dependencies, as the template does. EPICS
uses this list when it builds include and library search paths. This
is distinct from assigning the same Make variable twice: a later
ordinary assignment replaces the earlier value.
Make’s recursive = assignments let MODULES refer to EPICS_BASE
before its definition. They do not copy the Base installation.
PVXS version configuration
The public 1.5.0 distribution contains PVXS 1.5.3. Its installed version
file is $(PVXS)/cfg/CONFIG_PVXS_VERSION. During application
configuration, EPICS includes installed cfg/CONFIG* files from
dependencies, which defines PVXS_MAJOR_VERSION for the application
Makefiles.
The generated RELEASE also contains this optional include:
-include $(PVXS)/configure/CONFIG_PVXS_VERSION
The installed tree has no version file under configure/, so this
line reads nothing and -include reports no error.
To print the version that the build sees, run this from the application root:
make -s PRINT.PVXS_MAJOR_VERSION
The build reports the major version:
PVXS_MAJOR_VERSION = 1
Local override files
The generated RELEASE includes these files in order:
-include $(TOP)/../RELEASE.local
-include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local
-include $(TOP)/configure/RELEASE.local
The parent files apply to applications beneath that directory. The
final file applies to this application. EPICS_HOST_ARCH describes the
build host. -include permits a missing file.
Use the Chapter 4 jeonglee_Demo application, which has the training
instance. Before changing dependency paths, run this from its application
root:
make clean uninstall
For a local Base override, write the active installation’s absolute path.
Run these commands in a terminal where setEpicsEnv.bash is sourced;
otherwise EPICS_BASE is empty and the build fails:
printf 'EPICS_BASE=%s\n' "$EPICS_BASE" > configure/RELEASE.local
make
cat iocBoot/ioctraining-jeonglee_Demo/envPaths
The envPaths file must show the selected Base and module paths. Local files are
ignored by the generated application’s Git configuration; inspect them
when two machines build differently.
The EPICS build-system reference specifies these rules under RELEASE file and Modifying configure/RELEASE files.