Now that the Base repository is being tracked with a tool which
understands renames I think that it is time to consider reorganizing the
source tree. To that end I would like to propose the following. First,
to change the directory structure to better reflect the different
components in Base. Second, to merge the many *Ioc libraries.
The first change could be made transparently to outside users. The
second will present problems for those not using $(EPICS_BASE_IOC_LIBS).
But with 3.15 on the horizon this is the time for such things.
If we are going to do something like this it should be done early in the
release cycle to minimize the impact.
= src/ reorganization
When I look at the src/ directory I see seven categories:
tools - Build system helpers
libCom - Things with no dependence on IOCs or CA
template - the make*App.pl scripts and templates
ioc - Everything related to PDB mechanics
std - Standard record definitions and soft device supports
ca - CA client library
cas - portable CA server
== Dependencies
tools :
libCom : tools
template : tools
ioc : ca tools
std : ioc
ca : libCom
cas : ca
And a diagram:
https://pubweb.bnl.gov/~mdavidsaver/files/base-reorg.png
The missing pieces here are dependencies from 'catools', 'cap5', and
'cas' on some header files from dbStatic including alarm.h. This isn't
a problem since everything is in one source tree, but perhaps there
should be a module for common epics definitions? Could this be part of
libCom (ie 'libCom/epics/')?
== Full list of renames
tools = tools (perhaps "buildtools"?)
libCom = libCom
toolsComm = libCom/tools
as = ioc/as
bpt = ioc/bpt
db = ioc/db
dbStatic = ioc/dbStatic
dbtools = ioc/dbtemplate
misc = ioc/misc
registry = ioc/registry
rsrv = ioc/rsrv
RTEMS = ioc/RTEMS
vxWorks = ioc/vxWorks
dev = std/dev
rec = std/rec
softIoc = std/softIoc
ca = ca
cap5 = ca/perl
catools = ca/tools
cas = cas
excas = cas/ex
gdd = cas/gdd
makeBaseApp= template/base
makeBaseExt= template/ext
util (split up. ca_test in ca/test, logserver in libCom/tools)
= Library mergers
>From what I can tell most of the *Ioc libraries can't really be used
independently of one another.
It seems to me that they fall into three groups.
dbBase = asIoc, dbIoc, dbStaticIoc, dbtoolsIoc, miscIoc, rsrvIoc,
registryIoc
The basic processing mechanisms which operate on dbCommon.
dbStd = recIoc, softDevIoc, testDevIoc
The standard recordtypes
dbHost = asHost, dbStaticHost
Host tools like dbExpand use this
- Replies:
- Re: src/ reorganization Stephen Lewis
- RE: src/ reorganization Jeff Hill
- Re: src/ reorganization Andrew Johnson
- RE: src/ reorganization Davidsaver, Michael
- Navigate by Date:
- Prev:
[Bug 641365] Re: Incorporate macLibREADME text into 19.16 Andrew Johnson
- Next:
Re: src/ reorganization Stephen Lewis
- Index:
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:
[Bug 586399] Re: AppDevGuide does not appropriately document ellLib Andrew Johnson
- Next:
Re: src/ reorganization Stephen Lewis
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
<2010>
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|