![]() |
Telelogic SYNERGY (steve huntington) | ![]() |
Topic Title: ObjectMake - what is it? Topic Summary: Created On: 19-Oct-2004 13:49 Status: Read Only |
Linear : Threading : Single : Branch |
![]() |
![]()
|
![]() Answer: As far as I know ObjectMake is a Make-tool (like GNU-make or Borland Make) which is used to run batch processes when building software. ObjectMake has the speciality, that it can compile on an other machine. So you could use a high end compiler machine, let your users trigger the compilation process on some slow workstations and get the software compiled quickly. | |
![]() |
|
My department is cconsidering some CM Synergy training and the course literature mentions 'ObjectMake' as a topic in the Build Mangers course. Can someone give an overview on what the utility does? ie it's purpose/benefits etc.
|
|
![]() |
|
![]() |
|
As far as I know ObjectMake is a Make-tool (like GNU-make or Borland Make) which is used to run batch processes when building software. ObjectMake has the speciality, that it can compile on an other machine.
So you could use a high end compiler machine, let your users trigger the compilation process on some slow workstations and get the software compiled quickly.
|
|
![]() |
|
![]() |
|
Some more detail here:
http://www.telelogic.com/products/synergy/objectmake/index.cfm Dom ------------------------- Dominic Tavassoli Director Product Marketing Telelogic |
|
![]() |
|
![]() |
|
ObjectMake (OM) is a make tool like any other, except, it has a deep understanding of the source-controlled files. Some time ago, I wrote a response that explains a number of features to ObjectMake -- perhaps you'll find these of interest as well!
Enjoy... ---------------------------- 1. Understanding of controlled objects in the CM system OM knows that if a target in the makefile is a CM-controlled product, OM will automatically checkout a new writeable version of the product if necessary (i.e. the product is still static at the time of build). Regular make programs would fail the build because the OS would see that the target being built is read-only and therefore, not be able to create a new product. 2. Sub-Project Support The CM Synergy product, by default, embeds the version of a project as part of the workarea path in the file system. We do this because we can have multiple versions or releases of a project. Since the path to the sources in a project can be physically located anywhere in the file system (i.e. not always relative), each time you checkout a new project hierarchy, the paths to the sources will change. Why is this important? The makefile looks for files by either an explicit path or a specific (absolute) path. If I checkout a new hierarchy, it implies that all makefiles would need to be updated. With OM, we can use the ${CCM_SUBPROJ} macro to dynamically determine the paths to the sources *without* having to modify the makefile. Since project hierarchy checkouts are a common operation, this feature alone saves a lot of time and effort and maintains build integrity. Example: -------------------- Building without OM: LOCAL_LIBS=/usr/home/anderson/ccm_wa/db/libs-1.0/libs/lib foo.exe: foo.obj ld ${OPTIONS} ${LOCAL_LIBS}, etc... -------------------- *Notice the requirement of including the path to the libs with version info (libs-1.0) -------------------- Building with OM and using the CCM_SUBPROJ macro: LOCAL_LIBS=${CCM_SUBPROJlibs}/lib foo.exe: foo.obj ld ${OPTIONS} ${LOCAL_LIBS}, etc... -------------------- *Notice the version of the project was not needed, only the project name (libs) was required. This means the makefile does not need to be updated when a new version of a project is created, or when the user changes the work area path for one or many projects. A very powerful feature indeed! 3. Incremental build support CM Synergy allows a user to 'use' a specific version of any file in a configuration. If a user were to 'use' an older version of source, regular make programs would not consider the product of that source 'out-of-date' because the timestamp on the source would still be older that the product (object). OM can tell through the 'bind-time' that the version of a source has changed and thus immediately consider it 'out-of-date' regardless of the timestamp in the file system. 4. Bill Of Materials OM generates a bill of materials that is stored as an attribute of the target product. It contains all the information about the build and build environment. 5. Foreign Build Support OM can support building on platforms where we do not have client support. In other words, a build can be started on a supported client and the actual build command can be configured to build on a remote (unsupported) platform. 6. Distributed/Parallel Build Support OM can distribute the building of a target across multiple build machines. OM has the ability to detect when a target is not dependent on other targets and then submit the build of this target to another machine in parallel (i.e. not build sequentially). 7. Dependency Checking OM performs the dependency analysis similar to the popular 'mkdepend' command. The results of the dependency check is then stored as an attribute on the project object; meaning the makefile does not need to explicitly include a generated source file from some 3rd party tool. 8. 3rd Party Make Support If required, OM can be set to use another make program if the makefile to build is not compatible with OM. 9. Project/Makefile Macro support OM can store make macros that have either makefile-level scope (defined within the scope of a single makefile) and project-level scope. This is very useful for *transient* macros that are set during development (e.g. Debug). Note: The reason I state 'transient' macros is because the project/makefile macros are stored as attributes and are therefore, not versioned. In other words, I cannot expect to track the changes to the macros over time. If macros need to be versioned/tracked, then the macro must be defined in the makefile itself, thus forcing a checkout of the makefile in order to update/change the value of a macro. ------------------------- David Anderson Managing Principal Telelogic North America |
|
![]() |
Telelogic SYNERGY
» SYNERGY/CM
»
ObjectMake - what is it?
|
![]() |
FuseTalk Standard Edition v3.2 - © 1999-2009 FuseTalk Inc. All rights reserved.