makeBaseApp.pl makes a module. All it lacks is a documentation
directory and a directory for display files, which we normally add
as <module>/documentation, and <module>/<module>App/op/adl (or edl, etc.)
There is another difference between the product of makeBaseApp.pl and
the modules we've made from it, and that is a distinction between
files installed by the module for its own use (i.e., for use by its
iocBoot directory), and files installed for export to other modules.
We've settled into a pattern: <module>Support.dbd is for export, and
contains only stuff made by the module, while <module>.dbd is for
internal use, and so includes stuff from base, etc., that is needed to
boot an ioc. Library files intended for external use are normally named
<module>.lib, if there's only one such library, but this doesn't matter
as much, because libraries are the same whether they're used internally
or exported.
Historically, we've viewed a module's iocBoot directory as an example,
and a place to test the module. This is a good thing, but if the module
imports from other modules solely to implement the iocBoot directory,
you can end up with module-version interdependencies that are dominated
by the needs of iocBoot directories.
Your other question, about RELEASE files: I think any string defined in
a RELEASE files is viewed by the build system as a resource from which
lib and dbd files might be gotten. Thus, you don't want two modules
making things with identical names.
Zhichu Chen wrote:
Hi,
Just curiosity, is there any manuals that I can follow? I have written a
device support and I would love to make a module version so that
maintenance would be easier for me. I can't find any clue in the
AppDevGuide, so I checked the snc/seq module and now I'm trying
to follow it.
May some of you guys explain the basic steps for me? Like is there
a makeModuleApp.pl script to create a template (I don't want to write
all those Makefile files and CONFIG files), how should I construct
the directory structure tree, how to make the application find it (I
find that I can just add "SNCSEQ=/path/to/seq" to the RELEASE
file to make the app know where to find the lib files, why? Can I
use a random name there like "MYLIB"?).
--
Tim Mooney ([email protected]) (630)252-5417
Beamline Controls & Data Acquisition Group
Advanced Photon Source, Argonne National Lab.
- Replies:
- Re: How to write modules? Zhichu Chen
- References:
- How to write modules? Zhichu Chen
- Navigate by Date:
- Prev:
Re: How to write modules? Ron Sluiter
- Next:
Re: call to "assert (capacity != 0)" failed 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: How to write modules? Ron Sluiter
- Next:
Re: How to write modules? Zhichu Chen
- 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
|