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  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Problem with msi rules in R3.14.12.2
From: Andrew Johnson <[email protected]>
To: Eric Norum <[email protected]>
Cc: EPICS Tech Talk <[email protected]>
Date: Tue, 20 Dec 2011 16:32:59 -0600
Hi Eric,

On 2011-12-19 Eric Norum wrote:
> I seem to recall some similar problems a while back, but this is new since
> I moved to R3.14.12.2.
> 
> After I do a 'make clean' I can run 'make' once and everything builds:
...
>  but on subsequent 'make' invocations I get:
> > make
> 
> make -C O.darwin-x86 -f ../Makefile TOP=../.. T_A=darwin-x86 install
> make[1]: *** No rule to make target `{', needed by `../O.Common/irmSup.db'.
>   Stop. make: *** [install.darwin-x86] Error 2

If you look at the generated O.darwin-x86/irmSup.db.d file when that happens 
you'll see where the "}" target name is coming from, so the bug exists in our 
script that generates the dependency data.

The best solution is to put single- or double-quotes around the filenames 
inside your .substitutions file:

  file "irmPerIRM.template" {
    ...
  }

In general I would recommend doing that anyhow, bareword strings have 
character limitations.

Oops, my bad — apparently I rewrote the makeDbDepends.pl script back in June 
to /allow/ the use of quotes around filenames inside a .substitutions file.  
The previous version didn't accept them at all, and also required the '{' to 
appear on the same line as the filename, so neither of our workarounds is 
backwards-compatible.

As long as we don't want to allow filenames to contain spaces, this solves 
that problem and one other possible issue:

=== modified file 'src/tools/makeDbDepends.pl'
--- src/tools/makeDbDepends.pl  2011-06-08 17:26:01 +0000
+++ src/tools/makeDbDepends.pl  2011-12-20 22:04:08 +0000
@@ -14,8 +14,8 @@
 my %depends;
 
 while (my $line = <>) {
-    $depends{$2}++ if $line =~ m/^\s*file\s*(["']?)(.*)\1/;
+    $depends{$2}++ if $line =~ m/^\s*file\s*(["']?)(\S*)\1/;
-    $depends{$1}++ if $line =~ m/^\s*include\s+"(.*)"/;
+    $depends{$1}++ if $line =~ m/^\s*include\s*"(.*)"/;
 }
 
 if (%depends) {

I've added that fix to the Known Problems page and committed it to the 3.14 
branch.

- Andrew
-- 
Optimization is the process of taking something that works and
replacing it with something that almost works, but costs less.
-- Roger Needham


References:
Problem with msi rules in R3.14.12.2 Eric Norum

Navigate by Date:
Prev: Re: [Eclipse] EPICS IDE plugin Andrew Johnson
Next: CA Watcher - an other camonitor Carsten Winkler
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Problem with msi rules in R3.14.12.2 Eric Norum
Next: Employment Opportunities at Varian Medical Systems Doug Murray
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·