g+
g+ Communities
Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  Index 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014 
<== Date ==> <== Thread ==>

Subject: Re: makeBaseApp.pl
From: Andrew Johnson <anj@aps.anl.gov>
To: Yves Lussignol <yves.lussignol@cea.fr>
Cc: Core-Talk <Core-Talk@aps.anl.gov>
Date: Tue, 13 Jan 2009 12:24:41 -0600
Hi Yves,

On Tuesday 13 January 2009 08:20:59 you wrote:
>
> I would like to report a problem I have got with the command
> makeBaseApp.pl and you are probably the right person.

I am...

> I am creating new templates for the control of the future accelerator
> SPIRAL2 (GANIL Caen - France). My boot template contains the following
> lines:
>
> PROD_IOC_vxWorks = _APPNAME_
> _APPNAME__LIBS += $(EPICS_BASE_IOC_LIBS)
>
> The problem is that makeBaseApp.pl replaces the tag _IOC_ !

Hmm, yes, it would; what's unusual is that you are trying to compile products 
in a boot template.  The makeBaseApp.pl script only replaces the _IOC_ tag 
when expanding boot templates (makeBaseApp.pl -i), and we don't use boot 
templates to compile products which is why we haven't seen this before.  
However you should be able to do so if you want to design your own 
installation structure, so I accept that there is a problem.

I was going to suggest that you just use
    PROD_vxWorks = _APPNAME_
instead, but that doesn't solve the $(EPICS_BASE_IOC_LIBS) variable being 
messed up too.

> So I had to replace the tag _IOC_ by _IOCNAME_ in makeBaseApp.pl. Do you
> think you could make this modification available in the EPICS Base?

I am reluctant to make that change in Base R3.14, which would break any 
templates that other sites might have created.  However we need to do some 
work on makeBaseApp.pl for R3.15 so eventually we'll have to fix this.

Here's an idea which should solve your problem without making any changes to 
Base:  A makeBaseApp template directory may contain a perl script called 
Replace.pl which makeBaseApp.pl loads automatically when it runs.  That 
script is expected to redefine the Perl subroutines ReplaceFilenameHook 
and/or ReplaceLineHook as needed, but it could redefine the subroutine 
ReplaceLine instead.  I suggest you extract the ReplaceLine subroutine out of 
makeBaseAppl.pl into a local Replace.pl script in the top of the template 
directory and make that _IOC_ to _IOCNAME_ tag name change there.

Thanks for the report,

- Andrew
-- 
The best FOSS code is written to be read by other humans -- Harold Welte

Navigate by Date:
Prev: Re: RTYP field through the PV Gateway Andrew Johnson
Next: Do we have any plan to support non-fixed size array? Alex . Chen
Index: 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014 
Navigate by Thread:
Prev: Dates for a Codeathon at Brookhaven? Andrew Johnson
Next: Do we have any plan to support non-fixed size array? Alex . Chen
Index: 2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·