Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: RE: Problem building base-7.0.1 with Windows on a Linux file system
From: Mark Rivers <rivers@cars.uchicago.edu>
To: "'core-talk@aps.anl.gov'" <core-talk@aps.anl.gov>
Date: Mon, 4 Dec 2017 23:55:06 +0000

Never mind, I came up with a simple solution.  I edited modules/RELEASE.local to pull in architecture-specific version from that location:

 

EPICS_BASE = /usr/local/epics/base-7.0.1

-include $(TOP)/../RELEASE.local.$(EPICS_HOST_ARCH)

 

That works fine, and involves editing just that file and adding the new RELEASE.local.$(EPICS_HOST_ARCH) files.

 

This second line might be added when modules/RELEASE.local is created.  It would save others having to reinvent what I just did.

 

Mark

 

 

From: Mark Rivers
Sent: Monday, December 04, 2017 5:39 PM
To: core-talk@aps.anl.gov
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[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

 


References:
Problem building base-7.0.1 with Windows on a Linux file system Mark Rivers

Navigate by Date:
Prev: Problem building base-7.0.1 with Windows on a Linux file system Mark Rivers
Next: Re: Problem building base-7.0.1 with Windows on a Linux file system Andrew Johnson
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: Problem building base-7.0.1 with Windows on a Linux file system Mark Rivers
Next: Re: Problem building base-7.0.1 with Windows on a Linux file system Andrew Johnson
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 04 Dec 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·