g+
g+ Communities
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  <20122013  2014  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
<== Date ==> <== Thread ==>

Subject: Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12]
From: Andrew Johnson <anj@aps.anl.gov>
To: tech-talk@aps.anl.gov
Date: Fri, 2 Nov 2012 13:38:27 -0500
Hi Guys,

The fact that both Ernest and Ralph want to be able to install files in an 
IOC-specific directory tells me that the build system needs to be able to do 
something like this, but it's not clear what the requirements are or where the 
files should go.  The install path ioc/<name> is an obvious target location, 
but whatever we come up with will need to support the current way of building 
IOCs as well.

Janet has taken a look at Ernest's original request and says it's not going to 
work without making build system changes, so I think we/you should agree on 
what we want to achieve before we fiddle with the current system too much.

IIRC Gemini has been using a build system that installs st.cmd files among 
others for quite a long time, and I hope someone from there will pipe up with 
what your requirements are or how your current application builds work so we 
can consider them as well.

In the mean-time, it is possible for any application to override the build 
rules in Base (it actually overrides the setting of the CONFIG variable that 
gnumake uses to find the files) without having to make any changes to Base 
itself or without having to have a private copy of those rules.  You just set 
the RULES variable in your RELEASE file to point to a top area that contains a 
configure directory with your local version of the files CONFIG, RULES, 
RULES_DIRS, RULES_TOP and RULES.ioc.

Hoping for some collaboration here, although I know you're all busy.

- Andrew

On 2012-11-01 Williams Jr., Ernest L. wrote:
> ________________________________________
> From: tech-talk-bounces@aps.anl.gov [tech-talk-bounces@aps.anl.gov] On
>  Behalf Of Ralph Lange [Ralph.Lange@gmx.de] Sent: Thursday, November 01,
>  2012 8:12 AM
> To: EPICS Tech Talk
> Subject: Re: User Created File Types:  FILE TYPE += ABC [EPICS R3-14-12]
> 
> Hi Ernest,
> 
> the main issue behind this:
> In the traditional EPICS build system, IOC startup files (actually
>  everything under iocBoot) are considered source files. Other than for
>  libraries, databases etc., these sources are not compiled in any way, and
>  they do not create any products that are installed. Without an
>  installation step, $(INSTALL_LOCATION) does not apply. ====
> ELW
> ====
> =================================================================
> I think this is actually wrong and should be addressed.
> They are indeed products built in the IOC area:
> (1) envPaths or for vxWorks "cdCommands"
> (2) The st.cmd is simply an ASCII text file; like a very simple database
>  needing no MACRO expansion. In other words the st.cmd needs to be simply
>  installed.
> 
> Bottom line: Anything that is loaded by an IOC should be an installable set
>  of libraries, files, etc...
> 
> Not having this of course, breaks symmetry. :(
> 
> Although, I know it has always been this way.  My INSTALLATION_TOP has
>  always been right along side my APP. Now, I really want to push the
>  products to a different location.
> ===================================================================
> 
> 
> 
> 
> 
> For our HZB/BESSY developments, we are creating the startup files
>  programmatically in an ...App directory, so we changed our rules to treat
>  .../iocBoot as an installation directory (much like lib, bin, ...), and
>  install the created startup scripts there. In this setting, there is an
>  installation step for these files, and $(INSTALL_LOCATION) works as
>  expected. ======
> ELW
> ======
> ===============================================================
> I recommend that this become part of the EPICS main distribution for the
>  reasons I stated above. This would everyone creating their own solution.
> In this case, for backward compatability can we leave "iocBoot" in tact and
>  create such as "ioc" ?
>  ================================================================
> 
> 
> Trying to select the relevant configuration parts....
> 
> 
> Our CONFIG contains:
> 
> INSTALL_BOOT := $(INSTALL_LOCATION)/iocBoot
> UNINSTALL_DIRS += $(INSTALL_BOOT)
> 
> 
> The ...App Makefile uses this by setting:
> 
> IOCS = $( /* database call to get ioc names */ )
> STCMD_INSTALLS = $(IOCS:%=$(INSTALL_BOOT)/ioc%/st.cmd)
> 
> build: $(STCMD_INSTALLS)
> 
> $(STCMD_INSTALLS): $(INSTALL_BOOT)/ioc%/st.cmd: $(COMMON_DIR)/st.cmd.%
>         @echo "Installing $@"
>         @$(CP) $< st.cmd
>         @$(INSTALL) -d -m 644 st.cmd $(@D)
>         @$(RM) st.cmd
> 
> $(COMMON_DIR)/st.cmd.%: ../%.st.cmd
>         @$(CP) $< $@
> 
> 
> Hope this shows the general direction...
> =================================================
> =====
> ELW
> =====
> ==================================================
> Thanks, this is the direction we would like to go in.
> Just be nice to get this into EPICS BASE as well.
> Everything loaded on the IOC is a product. :)
> ==================================================
> 
> 
> Thanks again.
> 
> Cheers,
> Ernest
> 
> 
> 
> 
> 
> Cheers,
> ~Ralph
> 
> 
> On 30.10.2012 16:51, Ernest L. Williams Jr. wrote:
> Hi Janet,
> 
> How is it going?
> 
> For IOC Application deployment; I would like to take advantage of the
>  $(INSTALL LOCATION). The only problem is that IOC Startup files do not get
>  installed along with other products such as databases, libraries, etc...
> 
> So, I tried to do something like the following:
> 
> In my  $IOC_APP_TOP/iocBoot/<iocName>
> 
> Create CONFIG_STARTUP:
> ============ CONFIG_STARTUP ========================
> FILE_TYPE +=  STARTUP
> INSTALL_EDL = $(INSTALL_LOCATION)/ioc/vioc-b34-cd39
> =====================================================
> 
> Add to Makefile:
> 
> ========== Makefile =====================================
> TOP = ../..
> include $(TOP)/configure/CONFIG
> # =====================================================
> # Config for installing IOC startup related files:
> # =====================================================
> CFG +=  CONFIG_STARTUP
> 
> ARCH = linuxRT-x86
> TARGETS = envPaths
> INSTALL_STARTUP += envPaths rtPrioritySetup.cmd st.cmd
> include $(TOP)/configure/RULES
> include $(TOP)/configure/RULES.ioc
> # =====================================================
> 
> 
> The above does not work.
> 
> [ernesto@cdlx01 vioc-b34-cd39]$ make
> /afs/slac/g/lcls/epics/base/base-R3-14-12/configure/RULES_DIRS:72: ***
>  target file `clean' has both : and :: entries.  Stop.
> 
> 
> Can you recommend a way to achieve this in the context of the EPICS
>  Make/Build system?
> 
> Cheers,
> Ernest
> 


- Andrew
-- 
READ CAREFULLY. By reading this email, you agree, on behalf of your
employer, to release me from all obligations and waivers arising from
any and all NON-NEGOTIATED agreements, licenses, terms-of-service,
shrink-wrap, click-wrap, browse-wrap, confidentiality, non-disclosure,
non-compete and acceptable use policies ("BOGUS AGREEMENTS") that I
have entered into with your employer, its partners, licensors, agents
and assigns, in perpetuity, without prejudice to my ongoing rights
and privileges. You further represent that you have the authority to
release me from any BOGUS AGREEMENTS on behalf of your employer.

Replies:
Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Bruce Hill
References:
User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Ernest L. Williams Jr.
Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Ralph Lange
RE: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Williams Jr., Ernest L.

Navigate by Date:
Prev: Re: vdct and info tags Williams Jr., Ernest L.
Next: Re: vdct and info tags Michael Davidsaver
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
Navigate by Thread:
Prev: RE: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Williams Jr., Ernest L.
Next: Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Bruce Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICSv4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·