epics-modules / std

APS BCDA synApps module:
http://epics-modules.github.io/std/
Other
5 stars 9 forks source link

databases & module dependencies #1

Closed kmpeters closed 6 years ago

kmpeters commented 8 years ago

Many databases in the std module include the sseq record, which comes from the calc module, but the calc module is not required to build the std module, nor does it appear in the std module's RELEASE file.

How should we document the fact that the calc module may be a dependency for an IOC if it uses certain components from the std module?

prjemian commented 8 years ago

First place is to update https://github.com/EPICS-synApps/support/Makefile

Documentation files might also need this change

On 3/28/2016 9:48 AM, Kevin Peterson wrote:

Many databases in the std module include the sseq record, which comes from the calc module, but the calc module is not required to build the std module, nor does it appear in the std module's RELEASE file.

How should we document the fact that the calc module may be a dependency for an IOC if it uses certain components from the std module?

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/epics-modules/std/issues/1

MarkRivers commented 8 years ago

I disagree about changing support/Makefile. That Makefile should only contain the dependencies required to actually build std, not to run it. By putting in dependencies that are not needed to build you reduce the efficiency of parallel make. One option is to put comments in std/configure/RELEASE that say what other modules may be needed to use std databases.

I like what has been done in areaDetector. For each module the structure is like this module configure RELEASE moduleApp src Db iocs exampleIOC configure RELEASE exampleApp src

module/configure/RELEASE and module/moduleApp/src/Makefile contain only the support modules required to build the library. In the case of std that would not include calc.

iocs/exampleIOC/configure/RELEASE and iocs/exampleIOC/exampleApp/src/Makefile contain the support modules to build a working IOC. In the case of std that would include calc.

MarkRivers commented 8 years ago

Sorry, the indents got lost when I posted. It should be

module
  configure
    RELEASE
  moduleApp
    src
  Db
  iocs
    exampleIOC
      configure
        RELEASE 
      exampleApp
        src
prjemian commented 8 years ago

good point

On 3/28/2016 10:18 AM, Mark Rivers wrote:

By putting in dependencies that are not needed to build you reduce the efficiency of parallel make.

we discussed at group meeting this AM and decided to add this to the RELEASE file

Another possibility would be to create some new documentation file that describes dependencies within any synApps module (for building the App or IOC or running the IOC). This will need some consideration.