SlideShare a Scribd company logo
1 of 6
Download to read offline
Build Generation



                                                      Version 1.0
                                                    July 26, 2005




PathMATE Technical Notes



                                         Pathfinder Solutions LLC
                                     33 Commercial Drive, Suite 2
                                         Foxboro, MA 02035 USA
                                          www.PathfinderMDA.com
                                                   888-662-7284




          ©2005 by Pathfinder Solutions
Table Of Contents
1.   Introduction........................................................................................... 1
     Context ................................................................................................. 1

2.   Projectfile/Makefile Generation ............................................................. 1

3.   Build Directory Layout ........................................................................... 1
     Defaults................................................................................................. 1
     User Selections ....................................................................................... 2
     Obsolete Properties ................................................................................. 2

4.   Makefile Command Line ......................................................................... 3

5.   What's Different from Old Build File Generation?................................... 3
     Specifying Realized Code Locations ............................................................ 3




                                                      ii
33 Commercial Street, Suite 2
                                                        Foxboro, Massachusetts 02035 U.S.A
                                                                    www.PathfinderMDA.com
                                                                          +1 508-543-7222




1. Introduction
This tech note outlines makefile and project file generation, and how generated code
and build directories are arranged in the Q2-2005 release.

       Context
       The Q2-2005 release eliminates the gencpp.bat/genproject.bat approach with
       a move to PathMATE GUI-based transformation for both RSM and Rose based
       developers. This provides an opportunity to replace the genproject.bat
       approach and refine the build directory structure.


2. Projectfile/Makefile Generation
A new PathMATE platform model is provided with a transformation map for
build_top.arc. This template examines the specified TargetOS and the deployed
process topology, and then generates the required projectfiles or makefiles. After
the Q2-2005 release, the PathMATE GUI will be able to specify TargetOS on a per-
process basis, and this structure will allow build_top.arc to easily handle
heterogenous deployments.


3. Build Directory Layout
       Defaults
       Working from the PathMATE GUI from within Eclipse, all transformations are
       done within a transformation project, with a project workspace directory.
       Default locations for all generated output and build directories are relative to
       the project workspace. The tree has the overall structure:


<project workspace> /
       gc/                                         Generated code tree
              <domain name>/                       Generated domain code
              sys/                                 Generated system infrastructure
       <process name>/                             Build area for process
              <makefiles or projectfiles for this process' executable>
              <target os>_<build type>/            Build area for specific target OS
                     GeneratedInfrastructure/      Build output for gc/sys
                     PathMATEMechanisms/           Build output for design/*/mechanisms
                     SystemMechanisms/             Build output for design/*/system



Technical Note: Build Generation                                                          1
33 Commercial Street, Suite 2
                                                                        Foxboro, Massachusetts 02035 U.S.A
                                                                                    www.PathfinderMDA.com
                                                                                          +1 508-543-7222



                                    <domain name>/                  Build output for domain


                     For single process systems, a single process area for MAIN will result. For
                     multi-process systems, a process area for each process is generated.

                     User Selections
                     The following properties control the layout and population of the build area:

Marking name               PIM Element     Default Value                           Effect
                                                                                   Realized include file directories
AdditionalIncludes         System          <blank>                                 (list separated by ";").
                                                                                   For makefiles, defines compiler
Compiler                   System          gcc                                     program name.
                                                                                   Compiler installation location;
CompilerInstall            System          c:/cygwin                               (Currently Cygwin only.)
                                                                                   Additional compiler symbol
Defines                    System          <blank>                                 definitions.
                                                                                   Specifies where the generated
GeneratedPath              System          <project workspace>/gc                  code is.
                                                                                   Sets up language extensions, and
                                                                                   appropriate defaults for
                                                                                   mechanism and system files. Use
ImplementationLanguage     System          none                                    c, cpp, or java.
                                                                                   Indicates location of SW
MechanismsPath             System          PATHMATE_MAP_<language>/mechanisms      mechanism files.
                                                                                   Directory where makefile builds
                                                                                   mechanisms files from in the case
MechanismsTargetPath       System          <MechanismsPath>                        of a remote build tree.
                                                                                   Realized include and
                                                                                   implementation file directories
                                                                                   (list separated by ";"). All
                                                                                   implementation files found in
                                                                                   these directories are added to the
                                                                                   project compartment for the
RealizedPath               System,Domain   <blank>                                 system/domain as appropriate.
                                                                                   Indicates location of realized
SysUmlPath                 System          PATHMATE_MAP_<language>/system          system files.
                                                                                   Directory where makefile builds
                                                                                   system files from in the case of a
SysUmlTargetPath           System          <SysUmlPath>                            remote build tree.
                                                                                   When TargetOS == Win32,
                                                                                   project files for Visual Studio are
                                                                                   generated. This property
                                                                                   determines what version of Visual
                                                                                   Studio the generated files are for:
                                                                                   "VS7" targets version 7 (.NET),
                                                                                   and "VS6" targets version 6. For
                                                                                   TargetOS values other than
TargetIDE                  System          VS7                                     "Win32", this property is ignored.
                                                                                   Win32, Cygwin, Solaris, Mercury,
TargetOS                   System          Win32                                   Linux
                                                                                   Explicit compiler symbol
Undefines                  System          <blank>                                 undefinitions.



                     Obsolete Properties


            Technical Note: Build Generation                                                                 2
33 Commercial Street, Suite 2
                                                       Foxboro, Massachusetts 02035 U.S.A
                                                                   www.PathfinderMDA.com
                                                                         +1 508-543-7222



Obsolete
elements                Notes
AnalysisDir            no longer needed
                       spotlight, debug, or release; set via makefile variable
                       (from command line) or within compiler IDE; default
BuildType              is spotlight
PathMATEInstallDir     no longer needed
CygwinRoot             Renamed to CompilerInstall


4. Makefile Command Line
Generated makefiles (TargetOS == Cygwin, Solaris, Mercury or Linux) have standard
targets to help you manage your system:
make -f <makefile>: Builds the default target - <system>.exe
make -f <makefile> <system>.exe : Builds <system>.exe
make -f <makefile> libs : Builds the library file for each domain
make -f <makefile> dirs : Create required output directories in build area
make -f <makefile> clean : Delete all output files (.o, .a)

Command line control over target type:
make -f <makefile> BUILDTYPE=spotlight {targets...}: Turn on -g and
Spotlight debugging (default)
make -f <makefile> BUILDTYPE=debug {targets...}: Turn on -g debugging only
(no Spotlight instrumentation)
make -f <makefile> BUILDTYPE=release {targets...}: Turn off all debug and
instrumentation


5. What's Different from Old Build File
   Generation?
If you are familiar with language-specific project file or makefile generation from
PathMATE Maps version 5.02 or earlier, here's a summary of the marking changes
required to use build_top:
    - Specify your ImplementationLanguage and TargetOS
   -   Add ../ to any relative RealizedPath markings (see below)

       Specifying Realized Code Locations
       The RealizedPath marking for domains is used to specify an optional directory
       to get realized code files. This is a pathname relative to the build directory -
       where the projectfile or makefile is generated to, and where the build is done.
       Historically for single-process systems the default build directory has been the
       <system>/project/<lang>. For multi-process systems each process has its
       own build directory: <system>/project/<lang>/<process>.




Technical Note: Build Generation                                                         3
33 Commercial Street, Suite 2
                                                     Foxboro, Massachusetts 02035 U.S.A
                                                                 www.PathfinderMDA.com
                                                                       +1 508-543-7222



      The new build generation capabilities have unified the default build directory
      location by having single process systems generate to the MAIN process area
      - just like a multi-process system. This change for single process systems
      requires all RealizedPaths that were originally specified relative to the
      <system>/project/<lang> directory to add a ../ to the RealizedPaths value to
      account for the build directory mode to
      <system>/project/<lang>/<process>.
      For example, in the SimpleOven sample in C, the build directory was
      pathmate/samples/SimpleOven/rose/project/c, and the ExternalDeviceControl
      domain RealizedPath was:
      Domain,SimpleOven.ExternalDeviceControl,RealizedPath,realized_c

      Now the build directory is
      pathmate/samples/SimpleOven/rose/project/c/MAIN, and marking changes
      to:
      Domain,SimpleOven.ExternalDeviceControl,RealizedPath,../realized_c




Technical Note: Build Generation                                                       4

More Related Content

Viewers also liked

Viewers also liked (9)

Index Based Instance Identification
Index Based Instance IdentificationIndex Based Instance Identification
Index Based Instance Identification
 
Binary Instance Loading
Binary Instance LoadingBinary Instance Loading
Binary Instance Loading
 
PathMATE Transformation Maps Mutx Controls
PathMATE Transformation Maps Mutx ControlsPathMATE Transformation Maps Mutx Controls
PathMATE Transformation Maps Mutx Controls
 
Blending Realized Code
Blending Realized CodeBlending Realized Code
Blending Realized Code
 
Memory Pools for C and C++
Memory Pools for C and C++Memory Pools for C and C++
Memory Pools for C and C++
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
Distributed Deployment Model Driven Development
Distributed Deployment Model Driven DevelopmentDistributed Deployment Model Driven Development
Distributed Deployment Model Driven Development
 
Interprocess Message Formats
Interprocess Message FormatsInterprocess Message Formats
Interprocess Message Formats
 
Multi Process Message Formats
Multi Process Message FormatsMulti Process Message Formats
Multi Process Message Formats
 

Similar to Build Generation

Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and GitAlec Clews
 
Ctxaug 02 amd atlassian build pipeline
Ctxaug 02   amd atlassian build pipelineCtxaug 02   amd atlassian build pipeline
Ctxaug 02 amd atlassian build pipelinepraecipio
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro ServicesMarcel Offermans
 
Deploying Windows 7 With Configuration Manager 2007 R2
Deploying Windows 7 With Configuration Manager 2007 R2Deploying Windows 7 With Configuration Manager 2007 R2
Deploying Windows 7 With Configuration Manager 2007 R2Amit Gatenyo
 
CMake Tutorial
CMake TutorialCMake Tutorial
CMake TutorialFu Haiping
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat applicationKumar Gaurav
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapPadraig O'Sullivan
 
BizTalk Application Deployment
BizTalk Application DeploymentBizTalk Application Deployment
BizTalk Application DeploymentDaniel Toomey
 
Building the VM
Building the VMBuilding the VM
Building the VMESUG
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in EnglishOtavio Salvador
 
short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)Jérôme Esnault
 
09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_enconfidencial
 
Immutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionImmutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionRackN
 
SPACK: A Package Manager for Supercomputers, Linux, and MacOS
SPACK: A Package Manager for Supercomputers, Linux, and MacOSSPACK: A Package Manager for Supercomputers, Linux, and MacOS
SPACK: A Package Manager for Supercomputers, Linux, and MacOSinside-BigData.com
 
使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster 使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster inwin stack
 
Whats New in MSBuild 3.5 and Team Build 2008
Whats New in MSBuild 3.5 and Team Build 2008Whats New in MSBuild 3.5 and Team Build 2008
Whats New in MSBuild 3.5 and Team Build 2008wbarthol
 

Similar to Build Generation (20)

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 
Ctxaug 02 amd atlassian build pipeline
Ctxaug 02   amd atlassian build pipelineCtxaug 02   amd atlassian build pipeline
Ctxaug 02 amd atlassian build pipeline
 
Modular Architectures using Micro Services
Modular Architectures using Micro ServicesModular Architectures using Micro Services
Modular Architectures using Micro Services
 
Ab initio training Ab-initio Architecture
Ab initio training Ab-initio ArchitectureAb initio training Ab-initio Architecture
Ab initio training Ab-initio Architecture
 
Deploying Windows 7 With Configuration Manager 2007 R2
Deploying Windows 7 With Configuration Manager 2007 R2Deploying Windows 7 With Configuration Manager 2007 R2
Deploying Windows 7 With Configuration Manager 2007 R2
 
CMake Tutorial
CMake TutorialCMake Tutorial
CMake Tutorial
 
A project report on chat application
A project report on chat applicationA project report on chat application
A project report on chat application
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTap
 
BizTalk Application Deployment
BizTalk Application DeploymentBizTalk Application Deployment
BizTalk Application Deployment
 
Building the VM
Building the VMBuilding the VM
Building the VM
 
Yocto: Training in English
Yocto: Training in EnglishYocto: Training in English
Yocto: Training in English
 
short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)short_intro_to_CMake_(inria_REVES_team)
short_intro_to_CMake_(inria_REVES_team)
 
09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en09 basics operating and monitoring v1.00_en
09 basics operating and monitoring v1.00_en
 
Immutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionImmutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar Provision
 
SPACK: A Package Manager for Supercomputers, Linux, and MacOS
SPACK: A Package Manager for Supercomputers, Linux, and MacOSSPACK: A Package Manager for Supercomputers, Linux, and MacOS
SPACK: A Package Manager for Supercomputers, Linux, and MacOS
 
使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster 使用 Prometheus 監控 Kubernetes Cluster
使用 Prometheus 監控 Kubernetes Cluster
 
Whats New in MSBuild 3.5 and Team Build 2008
Whats New in MSBuild 3.5 and Team Build 2008Whats New in MSBuild 3.5 and Team Build 2008
Whats New in MSBuild 3.5 and Team Build 2008
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
 
Cmake kitware
Cmake kitwareCmake kitware
Cmake kitware
 

Recently uploaded

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Build Generation

  • 1. Build Generation Version 1.0 July 26, 2005 PathMATE Technical Notes Pathfinder Solutions LLC 33 Commercial Drive, Suite 2 Foxboro, MA 02035 USA www.PathfinderMDA.com 888-662-7284 ©2005 by Pathfinder Solutions
  • 2. Table Of Contents 1. Introduction........................................................................................... 1 Context ................................................................................................. 1 2. Projectfile/Makefile Generation ............................................................. 1 3. Build Directory Layout ........................................................................... 1 Defaults................................................................................................. 1 User Selections ....................................................................................... 2 Obsolete Properties ................................................................................. 2 4. Makefile Command Line ......................................................................... 3 5. What's Different from Old Build File Generation?................................... 3 Specifying Realized Code Locations ............................................................ 3 ii
  • 3. 33 Commercial Street, Suite 2 Foxboro, Massachusetts 02035 U.S.A www.PathfinderMDA.com +1 508-543-7222 1. Introduction This tech note outlines makefile and project file generation, and how generated code and build directories are arranged in the Q2-2005 release. Context The Q2-2005 release eliminates the gencpp.bat/genproject.bat approach with a move to PathMATE GUI-based transformation for both RSM and Rose based developers. This provides an opportunity to replace the genproject.bat approach and refine the build directory structure. 2. Projectfile/Makefile Generation A new PathMATE platform model is provided with a transformation map for build_top.arc. This template examines the specified TargetOS and the deployed process topology, and then generates the required projectfiles or makefiles. After the Q2-2005 release, the PathMATE GUI will be able to specify TargetOS on a per- process basis, and this structure will allow build_top.arc to easily handle heterogenous deployments. 3. Build Directory Layout Defaults Working from the PathMATE GUI from within Eclipse, all transformations are done within a transformation project, with a project workspace directory. Default locations for all generated output and build directories are relative to the project workspace. The tree has the overall structure: <project workspace> / gc/ Generated code tree <domain name>/ Generated domain code sys/ Generated system infrastructure <process name>/ Build area for process <makefiles or projectfiles for this process' executable> <target os>_<build type>/ Build area for specific target OS GeneratedInfrastructure/ Build output for gc/sys PathMATEMechanisms/ Build output for design/*/mechanisms SystemMechanisms/ Build output for design/*/system Technical Note: Build Generation 1
  • 4. 33 Commercial Street, Suite 2 Foxboro, Massachusetts 02035 U.S.A www.PathfinderMDA.com +1 508-543-7222 <domain name>/ Build output for domain For single process systems, a single process area for MAIN will result. For multi-process systems, a process area for each process is generated. User Selections The following properties control the layout and population of the build area: Marking name PIM Element Default Value Effect Realized include file directories AdditionalIncludes System <blank> (list separated by ";"). For makefiles, defines compiler Compiler System gcc program name. Compiler installation location; CompilerInstall System c:/cygwin (Currently Cygwin only.) Additional compiler symbol Defines System <blank> definitions. Specifies where the generated GeneratedPath System <project workspace>/gc code is. Sets up language extensions, and appropriate defaults for mechanism and system files. Use ImplementationLanguage System none c, cpp, or java. Indicates location of SW MechanismsPath System PATHMATE_MAP_<language>/mechanisms mechanism files. Directory where makefile builds mechanisms files from in the case MechanismsTargetPath System <MechanismsPath> of a remote build tree. Realized include and implementation file directories (list separated by ";"). All implementation files found in these directories are added to the project compartment for the RealizedPath System,Domain <blank> system/domain as appropriate. Indicates location of realized SysUmlPath System PATHMATE_MAP_<language>/system system files. Directory where makefile builds system files from in the case of a SysUmlTargetPath System <SysUmlPath> remote build tree. When TargetOS == Win32, project files for Visual Studio are generated. This property determines what version of Visual Studio the generated files are for: "VS7" targets version 7 (.NET), and "VS6" targets version 6. For TargetOS values other than TargetIDE System VS7 "Win32", this property is ignored. Win32, Cygwin, Solaris, Mercury, TargetOS System Win32 Linux Explicit compiler symbol Undefines System <blank> undefinitions. Obsolete Properties Technical Note: Build Generation 2
  • 5. 33 Commercial Street, Suite 2 Foxboro, Massachusetts 02035 U.S.A www.PathfinderMDA.com +1 508-543-7222 Obsolete elements Notes AnalysisDir no longer needed spotlight, debug, or release; set via makefile variable (from command line) or within compiler IDE; default BuildType is spotlight PathMATEInstallDir no longer needed CygwinRoot Renamed to CompilerInstall 4. Makefile Command Line Generated makefiles (TargetOS == Cygwin, Solaris, Mercury or Linux) have standard targets to help you manage your system: make -f <makefile>: Builds the default target - <system>.exe make -f <makefile> <system>.exe : Builds <system>.exe make -f <makefile> libs : Builds the library file for each domain make -f <makefile> dirs : Create required output directories in build area make -f <makefile> clean : Delete all output files (.o, .a) Command line control over target type: make -f <makefile> BUILDTYPE=spotlight {targets...}: Turn on -g and Spotlight debugging (default) make -f <makefile> BUILDTYPE=debug {targets...}: Turn on -g debugging only (no Spotlight instrumentation) make -f <makefile> BUILDTYPE=release {targets...}: Turn off all debug and instrumentation 5. What's Different from Old Build File Generation? If you are familiar with language-specific project file or makefile generation from PathMATE Maps version 5.02 or earlier, here's a summary of the marking changes required to use build_top: - Specify your ImplementationLanguage and TargetOS - Add ../ to any relative RealizedPath markings (see below) Specifying Realized Code Locations The RealizedPath marking for domains is used to specify an optional directory to get realized code files. This is a pathname relative to the build directory - where the projectfile or makefile is generated to, and where the build is done. Historically for single-process systems the default build directory has been the <system>/project/<lang>. For multi-process systems each process has its own build directory: <system>/project/<lang>/<process>. Technical Note: Build Generation 3
  • 6. 33 Commercial Street, Suite 2 Foxboro, Massachusetts 02035 U.S.A www.PathfinderMDA.com +1 508-543-7222 The new build generation capabilities have unified the default build directory location by having single process systems generate to the MAIN process area - just like a multi-process system. This change for single process systems requires all RealizedPaths that were originally specified relative to the <system>/project/<lang> directory to add a ../ to the RealizedPaths value to account for the build directory mode to <system>/project/<lang>/<process>. For example, in the SimpleOven sample in C, the build directory was pathmate/samples/SimpleOven/rose/project/c, and the ExternalDeviceControl domain RealizedPath was: Domain,SimpleOven.ExternalDeviceControl,RealizedPath,realized_c Now the build directory is pathmate/samples/SimpleOven/rose/project/c/MAIN, and marking changes to: Domain,SimpleOven.ExternalDeviceControl,RealizedPath,../realized_c Technical Note: Build Generation 4