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
>
> Allison,
>
> 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 John Dobbins
- Re: multiple levels of substitution in msi John Dobbins
- 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
- Navigate by Date:
- Prev:
Re: 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
<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 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
<2008>
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|