Experimental Physics and
| |||||||||||||||||
|
Hey all, I'm using Base 7.0.3.1 and have noticed a small Problem. I tried building calc, asyn, stream and iocStats modules (in this order) using a `$(TOP)/../RELEASE.local` file, so I do not have to make site specific modifications to any of the git repos. My RELEASE.local looks like this: ## Module directory SUPPORT = /opt/epics/modules ## unused "optional" dependencies undefine IPAC undefine SNCSEQ undefine SSCAN undefine PCRE ## Modules ASYN = $(SUPPORT)/asyn CALC = $(SUPPORT)/calc IOCSTATS = $(SUPPORT)/iocStats STREAM = $(SUPPORT)/stream ## EPICS BASE EPICS_BASE = /opt/epics/base Now building calc, asyn, and stream works just fine, but building iocStats failed with
perl -CSD /opt/epics/base/bin/linux-x86_64/convertRelease.pl checkRelease Looking at ${BASE}/lib/perl/EPICS/Release.pm, the script looks only for definitions like "<macro> = <path>", but is ignoring "undefine" statements which leads to above error. Attached is a small patch to also handle those undefine statements. In my test environment it works but further testing would not hurt! Cheers,
-- Ruhr-Universität Bochum AG der Experimentalphysik I Dr. Florian Feldbauer NB 2/131 / Fach 125 Universitätsstr. 150 D-44801 Bochum Office: NB 2/134 Phone: (+49)234 / 32-23563 Fax: (+49)234 / 32-14170 https://paluma.ruhr-uni-bochum.de From bd0f12a058d1892aa4cd22d8a253061b573991b5 Mon Sep 17 00:00:00 2001 From: Florian Feldbauer <florian at ep1.ruhr-uni-bochum.de> Date: Tue, 18 Aug 2020 10:27:46 +0200 Subject: [PATCH] checkRelease ignores undefine macro checkRelease has thrown errors when the value for a macro was different in two modules although the macro was undefined in a local release file. --- src/tools/EPICS/Release.pm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tools/EPICS/Release.pm b/src/tools/EPICS/Release.pm index 6ae0dbd9a..ebe1dab50 100644 --- a/src/tools/EPICS/Release.pm +++ b/src/tools/EPICS/Release.pm @@ -71,6 +71,13 @@ sub readRelease { $Rmacros->{$macro} = $val; next; } + + # Handle "undefine <macro>" statements + my ($undefmacro) = m/^ \s* undefine \s* (\w+) /x; + if ($undefmacro ne '') { + delete $Rmacros->{$undefmacro} if exists $Rmacros->{$undefmacro} + } + # Handle "include <path>" and "-include <path>" syntax my ($op, $path) = m/^ \s* (-? include) \s+ (.*)/x; $path = expandMacros($path, $Rmacros); -- 2.27.0
| ||||||||||||||||
ANJ, 18 Aug 2020 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |