EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: src/ reorganization
From: "Davidsaver, Michael" <[email protected]>
To: "EPICS core-talk" <[email protected]>
Date: Mon, 6 Dec 2010 15:34:15 -0500
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  <20102011  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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·