2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 <2017> 2018 2019 2020 2021 2022 2023 2024 | Index | 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 <2017> 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Problem building base-7.0.1 with Windows on a Linux file system |
From: | Mark Rivers <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Mon, 4 Dec 2017 23:38:36 +0000 |
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[2]: 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[2]: *** No rule to make target '/usr/local/epics/base-7.0.1/configure/RULES_TOP'. Stop. make[2]: Leaving directory 'H:/epics/base-7.0.1/modules/libcom' ../configure/RULES_DIRS:84: recipe for target 'libcom.install' failed make[1]: *** [libcom.install] Error 2 make[1]: 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 --- a/configure/RELEASE +++ b/configure/RELEASE @@ -35,3 +35,5 @@ # without having to modify the configure/RELEASE file itself. -include $(TOP)/../RELEASE.local -include $(TOP)/configure/RELEASE.local +-include $(TOP)/../RELEASE.local.$(EPICS_HOST_ARCH) +-include $(TOP)/configure/RELEASE.local.$(EPICS_HOST_ARCH) This involves editing the RELEASE file, which is discouraged. The alternative is to create: modules/libcom/configure/RELEASE.windows-x64-static.Common 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: win32-x86 win32-x86-static windows-x64 windows-x64-static windows-x64-static-vs2015 … 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: ./ca/configure ./database/configure ./libcom/configure ./normativeTypes/configure ./pvAccess/configure ./pvData/configure ./pvDatabase/configure ./pva2pva/configure ./pvaClient/configure 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? Thanks, Mark |