How to: Troubleshoot build system errors

Case 1

Problem

When we run any of the e3 make instructions (e.g. make vars, make build), we may see the following message:

configure/CONFIG:19: /epics/base-7.0.6.1/require/4.0.0/configure/CONFIG: No such file or directory
/epics/base-7.0.6.1/require/4.0.0/configure/RULES_SITEAPPS: No such file or directory
make: *** No rule to make target '/epics/base-7.0.6.1/require/4.0.0/configure/RULES_SITEMODS'.  Stop.

Solution

Look up the definition of the EPICS_BASE and E3_REQUIRE_VERSION variables in configure/RELEASE or configure/RELEASE_DEV file, and check that the physical location of EPICS_BASE/require/E3_REQUIRE_VERSION exists on your system:

[iocuser@host:~]$ ls -lta /epics/base-7.0.6.1/require/4.0.0/

In most cases when you have the above error, your system does not have the specified version of EPICS base and the require module. These are, as we know, defined in configure/RELEASE or configure/RELEASE_DEV.

A quick-fix to this is to use e3 in local mode and specify the versions there:

[iocuser@host:~]$ echo "EPICS_BASE=/home/iocuser/epics/base-7.0.6.1" > configure/RELEASE.local
[iocuser@host:~]$ echo "E3_REQUIRE_VERSION=4.0.0" >> configure/RELEASE.local

Of course modify the path above to where you have EPICS installed.


Case 2

Problem

When we run make install or make devinstall, we may see the following message:

Error: /home/iocuser/epics/base-7.0.6.1/require/4.0.0/siteMods/asyn/4.41.0+0/lib/linux-x86_64 already exists.
Note: If you really want to overwrite then uninstall first.
make[3]: *** [install] Error 1

Solution

require will not overwrite a module where the version matches the major.minor.patch+revision format. To reinstall a module version, you need to do the following:

$ make uninstall
$ make install