Subject: |
Re: Version strings to track not only EPICS BASE but other IOC modules/components |
From: |
Rod Nussbaumer <[email protected]> |
To: |
[email protected] |
Date: |
Tue, 24 Sep 2013 08:20:01 -0700 |
Ernest:
Here at TRIUMF, we put do-nothing string variables into C source code,
and the content of the strings are macros that get expanded by CVS when
it is committed to the repository. Something like this:
static char *devVmic4800_c = "\ndevVmic4800.c $Revision: 1.2 $ $Date: 2009/09/04 23:10:38 $\n";
When the module gets built into a binary library or executable, the
revision strings are all there to find with the 'strings' command on
Linux/Unix.
We also have an extension to the makeBaseApp utility that automatically
creates these strings in source files that are created, as well as
creating iocShell functions to display the revision strings at run time,
which looks like this:
epics> laserStabMainRevShow
laserStabMain.c $Revision: 1.1.1.1 $ $Date: 2011/08/10 20:49:46 $
RELEASE_DIR_laserStab /usr1/local/epics/iocApp/laserStabApp/R1_2_EPICS3_14_11/src/O.linux-x86
RELEASE_DATE_laserStab Wed May 15 13:58:37 PDT 2013
RELEASE_KERNEL_laserStab Linux icdeb6 2.6.32-5-686
RELEASE_COMPILER_laserStab gcc (Debian 4.4.5-8) 4.4.5
RELEASE_BUILDER_laserStab yogendran
RELEASE_EPICS_laserStab R3.14.11
It is left to the discipline of the developer to ensure that CVS commits
are performed *before* the code is built and released to production, so
the proper revision info gets embedded.
Rod Nussbaumer
ISAC Controls, TRIUMF
Vancouver, Canada
On 09/24/2013 07:25 AM, Williams Jr., Ernest L. wrote:
Hi everyone,
How might one use the same scheme to supply a version string to reflect the version of a software module?
Does EPICS Toolkit support this for Driver/Device Support?
Would also be nice to have a version string supported for IOC applications as well.
Can this be done in a standardized way such as dbior()?
For example, EPICS BASE uses:
"$EPICS_BASE_RELEASE/configure/CONFIG_SITE"
Variable NAME = EPICS_SITE_VERSION
Then at the ioc shell coreRelease() will print out the version string.
So, for an EPICS module maybe:
<moduleName>Release()
For an IOC Application:
<iocAppName>Release()
This would be very useful and can also be place in a PV :)
Anyone already doing this? If so, can we get it standardized as part of the EPICS BASE and templates?
Cheers,
Ernest
- References:
- Version strings to track not only EPICS BASE but other IOC modules/components Williams Jr., Ernest L.
- Navigate by Date:
- Prev:
Re: EPICS base Installation Error- Need Help Andrew Johnson
- Next:
Re: Version strings to track not only EPICS BASE but other IOC modules/components Michael Davidsaver
- 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:
Version strings to track not only EPICS BASE but other IOC modules/components Williams Jr., Ernest L.
- Next:
Re: Version strings to track not only EPICS BASE but other IOC modules/components Michael Davidsaver
- 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
|