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