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

Subject: RE: multiple levels of substitution in msi
From: "Allison, Stephanie" <[email protected]>
To: "John Dobbins" <[email protected]>, "EPICS Tech-Talk" <[email protected]>
Date: Tue, 8 Jan 2008 12:23:18 -0800
Hi John,

> Is there a way to get MSI to deal with multiple levels of 
> substitution?

I divide my Db directory into sub-directories and build them in the proper order.  For example:

xxxApp/Db/first contains Makefile, first.db, and firstAll.substitions:
	Makefile has:
		DB += firstAll.db
	firstAll.substitutions which looks something like this:
	file first.db 
	{
	pattern { DEV       , CARD , NAME    , ID ,P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,VME}
		  { $(DEVICE) ,   0  , NAME1   ,  1 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 1 }
		  { $(DEVICE) ,   0  , NAME2   ,  2 , 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 1 }
		...
		  { $(DEVICE) ,   0  , NAME15  , 12 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 1 , 1 }
	}	
	

xxxApp/Db/second contains Makefile, second.substitutions:
	Makefile has:
		DB += second.db
	second.substitutions looks something like this:
	file firstAll.db 
	{
	pattern { DEVICE  }
		  { device1 }
		  { device2 }
		...
		   {device30}
	}

and xxxApp/Db/Makefile looks like:
	TOP = ../..
	include $(TOP)/configure/CONFIG
	# first must be first since second will need for the .db file created by first
	DIRS += first 
	DIRS += second
	include $(TOP)/configure/RULES_DIRS

The RULES.Db files that come with epics 3.14.8.2 will do the MSI properly - I don't think we had to change RULES.Db for this.

If you don't like sub-directories, just create more *Db directories under xxxApp:
	xxxApp/CommonDb1
	xxxApp/CommonDb2
	xxxApp/Db  (which depends on CommonDb1 and CommonDb2 being built first)
	xxxApp/Makefile must enforce proper build order

Note there is a bug in the RULES somewhere that requires the "{" that comes after the "file xxxx.db" to be on the next line if xxxx.db comes from another module listed in your RELEASE file.
	Doesn't work:
	file xxxx.db {
	Works: 
	file xxxx.db
	{

Hope this helps more than confuses...

Stephanie Allison


Replies:
Re: multiple levels of substitution in msi John Dobbins
References:
multiple levels of substitution in msi John Dobbins

Navigate by Date:
Prev: Soft IOC VME access Robert Ellis
Next: pilatusROI R1-3 released Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: multiple levels of substitution in msi John Dobbins
Next: Re: multiple levels of substitution in msi John Dobbins
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  <20082009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·