EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: How to write modules?
From: Zhichu Chen <[email protected]>
To: [email protected]
Date: Wed, 11 Feb 2009 07:39:32 +0800
Thank you Ron and Tim, I appreciate your explanations very much. Especially the
RELEASE string one which bothered me so much. I get it, just need to find a
weird unique name for the <top> directory.

Thank you again.

On Tue, Feb 10, 2009 at 11:02 PM, Tim Mooney <[email protected]> wrote:
> 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.
>



-- 
Best Regards
Chen
----------------------------------------------------------------

          Zhi-chu Chen | Shanghai Synchrotron Radiation Facility
         No. 2019 | Jialuo Rd. | Jiading | Shanghai | P.R. China
             tel: 086 21 5955 3405 | zhichu.chen.googlepages.com
                                               | www.sinap.ac.cn
----------------------------------------------------------------

References:
How to write modules? Zhichu Chen
Re: How to write modules? Tim Mooney

Navigate by Date:
Prev: Re: call to "assert (capacity != 0)" failed Andrew Johnson
Next: [no subject] Mi Qingru
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: How to write modules? Tim Mooney
Next: call to "assert (capacity != 0)" failed Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·