SlideShare a Scribd company logo
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

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

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

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
Jose Emilio Labra Gayo
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
Alec 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 Services
Marcel Offermans
 
Ab initio training Ab-initio Architecture
Ab initio training Ab-initio ArchitectureAb initio training Ab-initio Architecture
Ab initio training Ab-initio Architecture
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
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 Tutorial
Fu 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/SystemTap
Padraig O'Sullivan
 
BizTalk Application Deployment
BizTalk Application DeploymentBizTalk Application Deployment
BizTalk Application Deployment
Daniel Toomey
 
Building the VM
Building the VMBuilding the VM
Building the VM
ESUG
 
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_en
confidencial
 
Immutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar ProvisionImmutable Kubernetes with Digital Rebar Provision
Immutable Kubernetes with Digital Rebar Provision
RackN
 
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
inside-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
 
Build Automation 101
Build Automation 101Build Automation 101
Build Automation 101
Martin Jackson
 
Cmake kitware
Cmake kitwareCmake kitware
Cmake kitware
achintyalte
 

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

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

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