Skip to content
This repository was archived by the owner on Sep 3, 2022. It is now read-only.
This repository was archived by the owner on Sep 3, 2022. It is now read-only.

synApps build requirements #1

@rsluiter

Description

@rsluiter

@anjohnson

Directory Notation:

  • <synApps> refers to the directory of a generic version of synApps; e.g., synApps_5_6.
  • <support> refers to the /support top level directory of the synApps directory structure
  • <module> refers to the top level directory of a generic EPICS support module directory structure.
  • <ioc> refers to the top level directory of an IOC's directory structure.

synApps Build Requirements

  1. Running "make release" from the <support> directory will rewrite all the <module>/configure/RELEASE files specified in the <support>/configure/RELEASE file, thereby making all the support modules consistent with regard to support module versions.
  2. A synApps user can “cd” to any synApps support module and build that module at any supported directory level; e.g. <module>/iocBoot/<ioc> or <module>/<module>App/src.
  3. An IOC can be built based on the synApps standard support module versions specified in the <support>/configure/RELEASE file by including these lines;
    #Define the path to the synApps support directory and uncomment.
    SUPPORT=/APSshare/epics/synApps_5_6/support
    #Specify the standard synApps configuration.
    include $(SUPPORT)/configure/RELEASE
    in the IOC’s <ioc>/configure/RELEASE file. Or, alternatively, the <support>/configure/RELEASE file can be copied to <ioc>/configure/RELEASE and customized by adding and/or omitting support modules; or, in limited cases, changing support module versions.
  4. An IOC can override the standard support module versions specified in <support>/configure/RELEASE file by adding lines like the following;
    # Batchscan must be built with this version or higher
    SNCSEQ=$(SUPPORT)/seq-2-1-5
    in the IOC’s <ioc>/configure/RELEASE file, typically, after the standard synApps support module versions are included. For example,
    SUPPORT=/APSshare/epics/synApps_5_6/support
    include $(SUPPORT)/configure/RELEASE
    SNCSEQ=$(SUPPORT)/seq-2-1-5
  5. CROSS_COMPILER_TARGET_ARCHS for a synApps build is inherited from that version of EPICSbase specified by EPICS_BASE= in the <support>/configure/RELEASE file. At one time, the EPICSbase CROSS_COMPILER_TARGET_ARCHS could be overridden in the synApps build by specifying CROSS_COMPILER_TARGET_ARCHS in <support>/configure/CONFIG_SITE. That function stopped working at some point and should be restored.

synApps build implementation notes

  1. The "make release" command (which was based on a Janet Anderson's perl script) is implemented in <support>/configure/makeReleaseConsistent.pl.
  2. The support module build order is specified in <support>/Makefile. Support modules are grouped into tiers (currently, 6 tiers) based on their dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions