From: Mark Rivers
Sent: Monday, December 04, 2017 5:39 PM
Subject: Problem building base-7.0.1 with Windows on a Linux file system
I am having trouble building for EPICS_HOST_ARCH=windows-x64-static on a Linux file server. Previously when building EPICS base there were no RELEASE or RELEASE.local
files to worry about. This is not the case with 7.0.1.
The file modules/RELEASE.local contains
EPICS_BASE = /usr/local/epics/base-7.0.1
which is where I put it on Linux.
I tried creating a new file in that directory, RELEASE.local.windows-x64-static. It contains:
EPICS_BASE = H:/epics/base-7.0.1
which is the correct path for Windows. However, that file does not seem to get included and I get this error when I build:
make: Entering directory 'H:/epics/base-7.0.1/modules/libcom'
configure/CONFIG:19: /usr/local/epics/base-7.0.1/configure/CONFIG: No such file or directory
configure/RULES_TOP:2: /usr/local/epics/base-7.0.1/configure/RULES_TOP: No such file or directory
make: *** No rule to make target '/usr/local/epics/base-7.0.1/configure/RULES_TOP'. Stop.
make: Leaving directory 'H:/epics/base-7.0.1/modules/libcom'
../configure/RULES_DIRS:84: recipe for target 'libcom.install' failed
make: *** [libcom.install] Error 2
make: Leaving directory 'H:/epics/base-7.0.1/modules'
configure/RULES_DIRS:84: recipe for target 'modules.install' failed
make: *** [modules.install] Error 2
I was able to work around the problem by going to the modules/libcom/configure directory and changing RELEASE as follows:
corvette:modules/libcom/configure>git diff .
diff --git a/configure/RELEASE b/configure/RELEASE
index 4a0b99a..bc22d30 100644
@@ -35,3 +35,5 @@
# without having to modify the configure/RELEASE file itself.
This involves editing the RELEASE file, which is discouraged. The alternative is to create:
which contains the lines I added to RELEASE above.
I think this solution is quite ugly. I need to build for many following Windows architectures:
This means that for 7.0.1 I would need to create at least 5 new RELEASE.$(EPICS_HOST_ARCH).Common files in each of these directories:
That is 45 new files I need to create.
It seems like it would be much cleaner if the distributed RELEASE file in each of those directories was changed as I showed above.
Perhaps it needs to be more complex, to also include $(TOP)/../RELEASE.local.$(EPICS_HOST_ARCH).$(T_A), etc.?
It would be very nice if all I need to do is to create modules/RELEASE.local.$(EPICS_HOST_ARCH) to define EPICS_BASE and everything else just built out of the box. As
it is now I need to edit configure/RELEASE in 9 directories.
Perhaps I am missing something?