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  <20142015  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  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: 3.15.1 DB Build Issue
From: "Dudley, David" <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Date: Thu, 4 Dec 2014 15:43:22 +0000

And finally, I’m down to where the problem comes from.

 

1.       I don’t have to have MSI defined in either makefile, but they work differently.

2.       If I have a  <dbname>_TEMPLATE defined, then when msi is executed, the FIRST FILENAME in that variable is passed as a parameter to the MSI program in 3.15.1.  That causes the utility program to use ONLY that template file, and all sections in the file are expanded using that file, regardless of what the substitutions file says.

3.       In 3.14.12.4 the exact same thing happens, but I originally didn’t have the _TEMPLATE definition in there (I’m working on that IOC, and trying to get everything in the MAKEFILE right).

4.       Defining a <dbname>_DEPENDS in the Makefile does not cause the problem to occur, because the filename is not passed to the MSI program.

 

So, I can’t use <dbname>_TEMPLATE definitions in the Makefile, because (if I had considered it, it probably have made more sense) according to 4.6.10, <name>_TEMPLATE can only have a single template file name.  Not sure that makes too much sense to me, as I don’t think I have a single substation file that only uses 1 template file.

Also it seems that <name>_DEPENDS is no longer supported (at least it’s definition in 4.6.10 has been deleted.

 

Does the mkmf.pl program understand substitution file dependencies, so I don’t have to list the template files in the Makefile?

 

Later-

 

David Dudley

Controls Engineer III

Facility for Rare Isotope Beams

Michigan State University

640 South Shaw Lane

East Lansing, MI 48824, USA

Tel. 517-908-7133

Email: [email protected]

 

 

FRIB Logo

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Dudley, David
Sent: Thursday, December 04, 2014 10:19 AM
To: EPICS Tech-Talk
Subject: RE: 3.15.1 DB Build Issue

 

OK, here goes.  I found what’s going on.

 

With the 3.14.12.4 extension MSI program, things work fine.  The file is generated with no errors, and all the template files are expanded correctly.

 

Moving to 3.15.1 however, the included MSI program does not generate the file correctly.  It only works with the first template file, and doesn’t use the proper template files in subsequent blocks, instead using only the first template file for all blocks.

 

If I define MSI in the RELEASE file (or the Makefile, either place), to use the old MSI program, things work fine, but defining things to use the new MSI file causes it to fail.

 

Looks like the problem is with the new MSI program.  Looking at the 6.22.3 example, this file uses the same template file multiple times, which I hope was not intentional.

 

Later-

 

David Dudley

Controls Engineer III

Facility for Rare Isotope Beams

Michigan State University

640 South Shaw Lane

East Lansing, MI 48824, USA

Tel. 517-908-7133

Email: [email protected]

 

 

FRIB Logo

 

 

From: [email protected] [mailto:[email protected]] On Behalf Of Ralph Lange
Sent: Thursday, December 04, 2014 9:47 AM
To: EPICS Tech-Talk
Subject: Re: 3.15.1 DB Build Issue

 

Hi David,

mkmf.pl is the tool that creates the dependencies, i.e. scans through hierarchies of files using #include directives, and creates Makefile snippets from what it finds.
(This is why it is always used regardless of msi being anywhere - it is not doing what msi does and only slightly related.)

The msi tool is an extension under 3.14, and it has been integrated into Base in 3.15.

>From the release notes:

MSI included with Base
An enhanced version of the Macro Substitution and Include program msi has been included with Base. Both this new version of msi and the IOC's dbLoadTemplates command now support setting global macros in substitution files, and dbLoadTemplates can now take a list of global macro settings as the second argument on its command line. The substitution file syntax is documented in the Application Developers Guide.


Try removing the definition for MSI from the RELEASE file.

Cheers,
~Ralph

On 04/12/2014 15:20, Dudley, David wrote:

And so the plot thickens... (and I'm sitting kinda funny...)
 
In my RELEASE file I have a definition for MSI like:
MSI=/usr/bin/msi (which is also in the path).
 
Under 3.14.12.4 (after setting the proper environment...dah!) either with or without the MSI definition, it calls the msi program, and everything is happy.  Files are created OK, and the world is great.
 
Under 3.15.1 (again... get the environment right!), the build process uses the mkmf.pl program regardless of where msi is in the path, or defined in the RELEASE file, or defined in the Makefile... basically it uses the mkmf.pl program no matter what.  And that's where the problem lies.
 
Question:
3.15.1 Release notes state that dbLoadTemplate can now handle macros on the call to the function.  Does it handle the full MSI definition, or the limited mkmf.pl definition???
 
Got any idea how to make 3.15.1 use the msi program?
 
Later-
 
David Dudley
Controls Engineer III
Facility for Rare Isotope Beams
Michigan State University
640 South Shaw Lane
East Lansing, MI 48824, USA
Tel. 517-908-7133
Email: [email protected]
 
 
 
 
 
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Dudley, David
Sent: Thursday, December 04, 2014 9:03 AM
To: EPICS Tech-Talk
Subject: RE: 3.15.1 DB Build Issue
 
I stand (ok... sit) corrected (and look silly doing it).
 
The substitution file works correctly through the MSI program, but doesn't work on either the 3.14  or 3.15 build systems.  Seems that maybe the mkmf.pl program doesn't allow more than one template file???
 
Sort of breaks my substitution files, and I'll have to think of where to go from here.
 
Later-
 
David
 
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Dudley, David
Sent: Thursday, December 04, 2014 8:43 AM
To: EPICS Tech-Talk
Subject: RE: 3.15.1 DB Build Issue
 
Andrew,
 
Changing the template references in the DB Make file from _DEPENDS to _TEMPLATE didn't change a thing about the functions of the make.  I'm not sure it would have made a difference anyway, from the definition in 4.6.10 of the AppDevGuide.
 
However, I've run across a much more serious issue.
 
It seems that in my substitutions file, I can only have a single template file referenced.  I have a single substitution file that has sections for ai, ao, bi, and bo records.  All substitution lines in this file seem to use the first template definition file when the substitutions get expanded.
 
This worked on 3.14.12.4, but doesn't work in the new 3.15.1 software.
 
Included is the substitution file, and all sections of this file seem to use the first template definition.
 
Later-
 
David Dudley
Controls Engineer III
Facility for Rare Isotope Beams
Michigan State University
640 South Shaw Lane
East Lansing, MI 48824, USA
Tel. 517-908-7133
Email: [email protected]
 
 
 
 
 
-----Original Message-----
From: Andrew Johnson [mailto:[email protected]]
Sent: Wednesday, December 03, 2014 6:11 PM
To: Dudley, David
Subject: Re: DB Build Issue
 
Hi David,
 
On 12/03/2014 04:52 PM, Dudley, David wrote:
I'm creating 2 .db files using substitution files and 4-template files 
(ai,ao,bi,bo,...).
 
In the Makefile, I have these lines (different because I was trying to 
diagnose what's going on):
 
quoted text as image, how confusing...
 
When I change the first template file template file, both output files 
generate fine.
 
When I change any of the other template files, only the second output 
file generates.
 
I originally had all the templates on a single line, as in the second 
file definition, but that didn't work either.
 
Looking at the definition in 4.6.10, it seems that perhaps I shouldn't 
be able to define more than one template file anyway????
 
Ideas would be appreciated.
 
Shouldn't those variables be spelled _TEMPLATE, not _DEPENDS?
 
- Andrew
 
--
People everywhere confuse what they read in newspapers with news.
-- A. J. Liebling
 
 

 


Replies:
Re: 3.15.1 DB Build Issue Ralph Lange
References:
RE: 3.15.1 DB Build Issue Dudley, David

Navigate by Date:
Prev: RE: 3.15.1 DB Build Issue Dudley, David
Next: Re: 3.15.1 DB Build Issue Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: 3.15.1 DB Build Issue Dudley, David
Next: Re: 3.15.1 DB Build Issue Ralph Lange
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·