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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions