From 2c9cf0f8cd021c711cbd297d0f5b21fc6f39e35b Mon Sep 17 00:00:00 2001 From: Marty Kraimer Date: Tue, 2 Jun 1998 18:28:29 +0000 Subject: [PATCH] More4 changes for beta12 --- src/makeBaseApp/iocAppBuildSRcontrol.html | 738 +++++++++++++--------- 1 file changed, 446 insertions(+), 292 deletions(-) diff --git a/src/makeBaseApp/iocAppBuildSRcontrol.html b/src/makeBaseApp/iocAppBuildSRcontrol.html index b752aa285..445f69e2d 100644 --- a/src/makeBaseApp/iocAppBuildSRcontrol.html +++ b/src/makeBaseApp/iocAppBuildSRcontrol.html @@ -17,7 +17,7 @@ Source Release Control

Marty Kraimer and Janet Anderson 
Argonne National Laboratory, Advanced Photon Source 
-May 29, 1998 
+June 1, 1998 
EPICS Release 3.13.0.beta12

@@ -25,7 +25,8 @@ EPICS Release 3.13.0.beta12
Acknowledgements Between release 3.13.0.beta11 and 3.13.0.beta12 makeBase App was changed from one very long perl script to a four page perl script plus template -files. In addition other improvements were made including support for capfast. +files. It supports templates in addition to those supplied with epics base. +In addition other improvements were made including support for capfast. The following people contributed to this effort: Ralph Lange (BESSY),  Rozelle Wright (LANL, and Thomas Birke (BESSY).
@@ -56,6 +57,10 @@ Index
  • makeBaseApp
  • +
  • +Application templates supplied +with base
  • +
  • ST.CMD
  • @@ -70,12 +75,6 @@ Index
  • CVS
  • - -
  • -Templates
  • - -
  • -Multiple Top Level Applications
  • @@ -214,8 +213,8 @@ where:
    cd
     mkdir myapp
     cd myapp
    -/usr/local/epics/baseR3.13.0.beta11/bin/solaris/makeBaseApp.pl -t example example
    -/usr/local/epics/baseR3.13.0.beta11/bin/solaris/makeBaseApp.pl -i -t example example
    +/usr/local/epics/baseR3.13.0.beta12/bin/solaris/makeBaseApp.pl -t example example +/usr/local/epics/baseR3.13.0.beta12/bin/solaris/makeBaseApp.pl -i -t example example

    Inspect Files

    @@ -262,9 +261,9 @@ convenient to have the console port of the IOC attached to a scrolling window on your workstation.

    Test

    -See the description of the example given in section makeBaseApp below. -Also try some of the vxWorks shell commands described in chapter "IOC Test -facilities" of the Application Developer's Guide. +See the description of the example given in section  Templates +Supplied with base . Also try some of the vxWorks shell commands described +in chapter "IOC Test facilities" of the Application Developer's Guide.

    Introduction

    @@ -399,7 +398,11 @@ The application directory structure appears as follows:             ...             iocBoot/                 iocxxx/ -                ... +                ... +            bin/ +                <host_arch> +                <target_arch> +            ... Each <top> area is a separately managed set of applications. Separately managed means that each <top> can be using it's own release of software obtained from outside the application, e.g. a release @@ -410,10 +413,11 @@ a single iocBoot directory appear. The xxxApp areas are created by application developers as needed. The iocBoot directory contains a subdirectory for each ioc that belongs to that <top> area. No IOC belongs to more than one <top> area. All software components needed by -IOCs are built in the xxxApp directories. Each IOC is booted from it's -subdirectory under iocBoot. The only important source file in a boot directory -is the st.cmd file which is executed after vxWorks is started on an ioc. -The st.cmd file merely loads various files built in the xxxApp directories. +IOCs are built in the xxxApp directories. Each IOC is booted from bin/<target_arch> +and uses a startup file from it's subdirectory under iocBoot. The +only important source file in a boot directory is the st.cmd file +which is executed after vxWorks is started on an ioc. The st.cmd file +loads various files built in the xxxApp directories.

    Application developers decide what constitutes a <top>. For example, at APS, the Linac is completely contained in a single <top> @@ -452,11 +456,12 @@ Releases of share are created. A release contains built and installed object modules. Other <top> areas take things from releases of share rather then from share itself. -

    The releases of share, which are dependent on releases of epics -base, are named: +

    At aps the releases of share, which are dependent on releases +of epics base, are named:

        baseXXXshareYYY
    where XXX is the epics base release and YYY is a release of share -for that base release. The share releases are stored at locations: +for that base release. At aps the share releases are stored at +locations:
        /usr/local/iocapps/iocsys/baseXXXshareYYY
    If it is necessary to obtain a bug fix or enhancement to a single module from EPICS base or a share release, the application developer @@ -467,8 +472,6 @@ so that you remember to use the version from share after share is rebuilt.

    Note: Other software packages can be handled like share. -For example at APS/ASD our applications use releases of sharerf, -epicsHideos, and hideos.

    Tools

    The following tools are used: @@ -529,10 +532,9 @@ Structure             RULES_ARCHS             RULES_DIRS             RULES_TOP -            makeIoccdcmds.pl -            makeNfsCommands.pl +            makeIocCdCommands.pl         xxxApp/ -            src/ or xxxSrc +            src/ or xxxSrc or xxxsrc                 Makefile *               Makefile.Host *               Makefile.Vx @@ -542,7 +544,7 @@ Structure *               <example and/or user supplied code> *               <example and/or user supplied state programs> *               <user menu, recordtype, device, driver database defs> -            Db/ or xxxDb +            Db/ or xxxDb or xxxdb                 Makefile *               <record instance files> *               <record template and substitution files> @@ -553,6 +555,7 @@ Structure             iocxxx/ *               Makefile *               st.cmd +**              cdCommands **      dbd/             <installed database description files> **      include/ @@ -670,7 +673,7 @@ of Makefiles below. These files contain definitions included in the various makefiles.
    -CONFIG
    +CONFIG
    This is the file in which you add to or modify make variables in epics @@ -681,15 +684,16 @@ This specifies the vxWorks architecture to build. If your site builds base for multiple target architectures but your iocs only use a single architecture, overriding this variables saves build time.
    -CONFIG_APP
    +CONFIG_APP
    This file contains definitions for external products such as epics base and share. You should edit this file if you are using external products -besides epics_base,and  share.
    +besides epics_base,and  share.  Follow the +models already in the file.
    -RELEASE
    +RELEASE
    This file specifies the location of external products such as epics base. @@ -709,17 +713,24 @@ This variable must be defined.
    This variable which is optional, specifies the location of a release of a <top> area containing code that can be shared by other applications.
    + +
    +TEMPLATE_TOP
    + +
    +This variable specifies the location of the template top area for makeBaseApp.
    IMPORTANT:Each of the above variables must be specified with a full path name.
    -RULES.Db
    +RULES.Db
    -This file contains rules for building database files from templates.
    +This file contains rules for building database files from templates and +rules for capfast files.
    -RULES.Host
    +RULES.Host
    The template file includes the RULES.Host from base. If you want @@ -727,7 +738,7 @@ to add rules that apply to all Makefile.Host files then this is the place to add the rules.
    -RULES.Vx
    +RULES.Vx
    The template file includes the RULES.Vx from base. If you want @@ -735,44 +746,57 @@ to add rules that apply to all Makefile.Vx files then this is the place to add the rules.
    -RULES.ioc
    +RULES.ioc
    This is a file containing rules for the Makefiles in the directories from -which iocs are booted. It makes the soft links needed to boot an ioc. It -should not be necessary to modify this file.
    +which iocs are booted.
    -RULES.iocBoot
    +RULES.iocBoot
    This is a file containing rules for the Makefiles in the iocBoot directory. It should not be necessary to modify this file.
    -RULES_ARCHS
    +RULES_ARCHS
    This file includes the RULES_ARCHS from base. It is seldom necessary to modify this file.
    -RULES_DIRS
    +RULES_DIRS
    This file includes the RULES_DIRS from base. It is seldom necessary to modify this file.
    -RULES_TOP
    +RULES_TOP
    -All applications except SHARE just include SHARE/config/RULES_TOP.
    +This file includes RULES_TOP from base. If MASTER_IOCAPPS is defined it +also runs a utility that creates soft links to the master ioc. This feature +only works if the host operating system supports soft links. + +
    +makeIocCdCommands.pl
    + +
    +This is a perl script that generates a cdCommands file for use +by iocs.

    base.dbd and <app>Include.dbd

    -These files are used to configure database definitions for the following: +NOTE: A version of bases.dbd can be obtained from +
      +
    <epics_base>/templates/makeBaseApp/top/exampleApp/src.
    + + +

    These files are used to configure database definitions for the following:

    <top>/iocBoot/Makefile

    This executes make in each subdirectory.

    <top>iocBoot/iocxxx/Makefile

    -This makefile creates soft links used in the st.cmd file. make -sure that the definition: +This makefile has a rule to generate cdCommands. Make sure that the definition:
            ARCH = <arch>
    refers to the correct architecture for your ioc processor. + +

    Since cdCommands is generated the user generated and/or modified files +are independent of location even though cdCommands contains full path names.

    CVS

    @@ -1831,103 +2083,5 @@ can be imported into the repository via the command: -
    -

    -TEMPLATES

    -The following directory structure contains templates for Makefiles and -for rules: -
        iocsys/
    -        template/
    -            share/
    -                Makefile
    -                config/
    -                    CONFIG
    -                    CONFIG_APP
    -                    RELEASE
    -                    RULES.Db
    -                    RULES.Host
    -                    RULES.Vx
    -                    RULES.ioc 
    -                    RULES_ARCHS
    -                    RULES_DIRS
    -                    RULES_TOP
    -                    makeSoftLinks
    -                db/
    -                    Makefile
    -                    xxiocstatus.db
    -                xxxApp/
    -
    -            top/
    -                Makefile
    -                config/
    -                    CONFIG
    -                    CONFIG_APP
    -                    RELEASE
    -                    RULES.Db
    -                    RULES.Host
    -                    RULES.Vx
    -                    RULES.ioc 
    -                    RULES_ARCHS
    -                    RULES_DIRS
    -                    RULES_TOP
    -                xxxApp/
    -                    Makefile
    -                    src/
    -                        Makefile
    -                        Makefile.Host
    -                        Makefile.Vx
    -                        base.dbd
    -                        baseLIBOBJS
    -                    xxxDb/
    -                        Makefile
    -                iocBoot/
    -                    Makefile
    -                    nfsCommands
    -                    iocxxx/
    -                        Makefile
    -                        st.cmd
    -A set of template files can be obtained via the WWW epics software distribution -facility at APS. -
    -

    -Multiple Top Level Applications

    -APS/ASD manages its entire set of <top> level applications -under a single directory structure: -
        /usr/local/iocapps/
    -        CVSROOT/
    -        iocsys/
    -            <share releases>
    -            ascf/
    -            share/
    -            sharerf/
    -            linac/
    -            booster/                
    -            par/
    -            parrf/
    -            boosterrf/                      
    -            srrf/
    -            srbpm/
    -            srfb/
    -            time/
    -            sitesys/
    -            sr/
    -where - -