Stephanie,
I haven't changed any build RULES. I looked at several working IOCs that use
substitution and they never seem to call MSI with the /db directories from
device support, so I definitely do not get the DBFLAGS you describe.
e.g.
make[3]: Entering directory
`/a/erp101/nfs/erl/erp/epics/R3.14.9/ioc/l0_phase1a/l0_phase1aApp/Db/O.linux-x86'
Inflating database from ../eos900.substitutions ../eos900.template
msi -I. -I.. -I../O.Common -S../eos900.substitutions ../eos900.template > msi.tmp
mv msi.tmp ../O.Common/eos900.db
Inflating database from ../MAGNET.substitutions ../MAGNET.template
msi -I. -I.. -I../O.Common -S../MAGNET.substitutions ../MAGNET.template > msi.tmp
mv msi.tmp ../O.Common/MAGNET.db
Inflating database from ../MAGPOL.substitutions ../MAGPOL.template
msi -I. -I.. -I../O.Common -S../MAGPOL.substitutions ../MAGPOL.template > msi.tmp
mv msi.tmp ../O.Common/MAGPOL.db
Inflating database from ../MAGPS.substitutions ../MAGPS.template
msi -I. -I.. -I../O.Common -S../MAGPS.substitutions ../MAGPS.template > msi.tmp
There aren't any templates in these device support /db directories so it has
never been as issue.
Any ideas how could my build rules could get broken?
John
Allison, Stephanie wrote:
Hi John,
Your rule for inflating the database isn't properly using DBFLAGS so it doesn't have the directories with "db" in the include list. Is it possible you are using a rule that is different from the one in base/configure/RULES.Db?
Here is an example from my build (I have several modules included in my RELEASE which is why the long list of potential areas to find database files):
Inflating database from ../evrEventAll.substitutions
/nfs/slac/g/lcls/build/epics/extensions/extensions-R3-14-8-2/bin/linux-x86/msi
-I. -I.. -I ../../../../db -I /nfs/slac/g/lcls/build/epics/modules/generalTime/generalTime-R1-2-1/db
-I /nfs/slac/g/lcls/build/epics/modules/sSubRecord/sSubRecord-R1-0-1/db
-I /nfs/slac/g/lcls/build/epics/modules/miscUtils/miscUtils-R1-0-1/db
-I /nfs/slac/g/lcls/build/epics/base/base-R3-14-8-2-lcls2/db
-I../O.Common -S../evrEventAll.substitutions > msi.tmp
mv msi.tmp ../O.Common/evrEventAll.db
If you are using your own rule, you may need to add the "db" in front of the file name. For example:
file db/firstAll.db
{
pattern { DEVICE }
{ device1 }
{ device2 }
...
{device30}
}
Stephanie
-----Original Message-----
From: John Dobbins [mailto:[email protected]]
Sent: Tuesday, April 15, 2008 12:21 PM
To: Allison, Stephanie
Cc: EPICS Tech-Talk
Subject: Re: multiple levels of substitution in msi
Stephanie,
Using your suggestion (from January) I tried unsuccessfully
to get MSI to do
multiple levels of substitution. I am using 3.14.9 but I
assume that is not the
issue.
Setup:
#1 xxx
#2 Makefile
#3 configure/
#4 iocBoot/
#5 xxxApp/
#6 Makefile
#7 Db/
#8 first/
#9 Makefile
#10 firstAll.substitutions
#11 firstAll.template
#12 second/
#13 Makefile
#14 second.substitutions
#15 src/
Fails with:
Inflating database from ../second.substitutions
msi -I. -I.. -I../O.Common -S../second.substitutions > msi.tmp
Could not open firstAll.db
firstAll.db exists but not in any of the places MSI is
looking. How do I get
MSI to find it?
Details:
#6 Makefile is:
TOP=../..
include $(TOP)/configure/CONFIG
DIRS += first
DIRS += second
include $(TOP)/configure/RULES_DIRS
#9 Makefile is:
TOP=../../..
include $(TOP)/configure/CONFIG
DB = firstAll.db
include $(TOP)/configure/RULES
#13 Makefile is:
TOP=../../..
include $(TOP)/configure/CONFIG
DB = second.db
include $(TOP)/configure/RULES
Thanks,
John Dobbins
Cornell University
Lab for Elementary Particle Physics
Allison, Stephanie wrote:
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 Allison, Stephanie
- References:
- multiple levels of substitution in msi John Dobbins
- RE: multiple levels of substitution in msi Allison, Stephanie
- Re: multiple levels of substitution in msi John Dobbins
- RE: multiple levels of substitution in msi Allison, Stephanie
- Navigate by Date:
- Prev:
RE: multiple levels of substitution in msi Allison, Stephanie
- 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
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
RE: multiple levels of substitution in msi Allison, Stephanie
- Next:
RE: multiple levels of substitution in msi Allison, Stephanie
- 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
2021
2022
2023
2024
|