EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: undefine variable in RELEASE.local
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: "Pearson, Matthew R." <pearsonmr at ornl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Tue, 26 Oct 2021 21:48:10 +0000
On Oct 26, 2021, at 4:13 PM, Pearson, Matthew R. <pearsonmr at ornl.gov> wrote:

That patch does indeed fix it, thanks!

Great, thanks for confirming that, I just committed the fix.


I should have mentioned that I was using base 7.0.6, and I didn’t realize I was using a new feature from 7.0.5, and I wasn’t too familiar with how the RELEASE files are parsed, but it makes sense now.

RELEASE files are parsed during the build by both GNU Make and our convertRelease.pl script which turns them into various other derived things needed by the build system.

Note that using the undefined keyword in a configure/RELEASE file needs GNU Make 3.82 or later. Anyone running on MacOS will have to install an updated version since Apple will never upgrade the version they ship past 3.81 (the last GPLv2 version). I recommend homebrew, which installs it as gmake.

- Andrew



 
From: Johnson, Andrew N. <anj at anl.gov> 
Sent: Tuesday, October 26, 2021 4:22 PM
To: Pearson, Matthew R. <pearsonmr at ornl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Subject: [EXTERNAL] Re: undefine variable in RELEASE.local
 
Hi Matt, 
 
On Oct 26, 2021, at 9:26 AM, Pearson, Matthew R. via Tech-talk <tech-talk at aps.anl.gov> wrote:
 
undefine SNCSEQ
EPICS_BASE=/home/controls/common/base/main

Although this causes errors like these when building asyn:

make[2]: Entering directory '/home/controls/common/asyn/main/iocBoot/ioctest'
perl -CSD /home/controls/common/base/main/bin/linux-x86_64/convertRelease.pl -t /home/controls/common/asyn/main envPaths
Use of uninitialized value $iocpath in substitution (s///) at /home/controls/common/base/main/bin/linux-x86_64/convertRelease.pl line 220.
Use of uninitialized value $path in -d at /home/controls/common/base/main/bin/linux-x86_64/convertRelease.pl line 221.
 
Oops! This patch to Base should fix the problem, please try it:
 
diff --git a/src/tools/EPICS/Release.pm b/src/tools/EPICS/Release.pm
index 7caa6f4c6..e6aaf1e0c 100644
--- a/src/tools/EPICS/Release.pm
+++ b/src/tools/EPICS/Release.pm
@@ -67,6 +67,7 @@ sub readRelease {
         my ($uvar) = m/^ undefine \s+ ($MVAR)/x;
         if ($uvar ne '') {
             delete $Rmacros->{$uvar};
+            @$Rapps = grep($_ ne $uvar, @$Rapps);
             next;
         }
 
 


Do you know what's causing these errors? I suppose the script just isn't silently dealing with the 'undefine' syntax? 
 
Yup, and I evidently didn’t test the code properly when I added support forundefine (in Base 7.0.5 I believe).
 
Thanks,
 
- Andrew
 
-- 
Complexity comes for free, simplicity you have to work for.

-- 
Complexity comes for free, simplicity you have to work for.


References:
undefine variable in RELEASE.local Pearson, Matthew R. via Tech-talk
Re: undefine variable in RELEASE.local Johnson, Andrew N. via Tech-talk
RE: undefine variable in RELEASE.local Pearson, Matthew R. via Tech-talk

Navigate by Date:
Prev: RE: undefine variable in RELEASE.local Pearson, Matthew R. via Tech-talk
Next: synApps motor build Siddons, David via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
Navigate by Thread:
Prev: RE: undefine variable in RELEASE.local Pearson, Matthew R. via Tech-talk
Next: Control System Engineer position at ALS in LBNL Miroslaw Dach via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  <20212022  2023  2024 
ANJ, 27 Oct 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·