________________________________________
From: [email protected] [[email protected]] On Behalf Of Ralph Lange [[email protected]]
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
- Replies:
- Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Andrew Johnson
- 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
- Navigate by Date:
- Prev:
Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Ralph Lange
- Next:
Re: 3.14 v.s. 3.15 vs. v4 Andrew Johnson
- 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: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Ralph Lange
- Next:
Re: User Created File Types: FILE TYPE += ABC [EPICS R3-14-12] Andrew Johnson
- 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
|