-    MAKE Build Management    

Build Management for Uniface

UD6 Option Pack for UD6 2.1 enables the automatic creation of a Makefile. With the included GNU MAKE (or Microsoft NMAKE) you can automatically re-build components when a related object changes.

What is Make?

When an include proc, entity or field changes it is possible to re-build only the affected components using the automatically generated MAKEFILE and either GNU MAKE (included) or Microsoft NMAKE.

UD6 Option Pack attempts to automatically determine the directories that the compiled forms are stored in by examining the ASN file. Alternatively the ASN filename can be specified with the ASNFILE setting in the USYS$UD6_PARAMS.

Related Objects

The makefile is created or updated every time that the UFORM record is written. Therefore every time that a developer modifies a form (and potentially changes the dependencies) the Makefile is re-calculated. This also means that the Makefile must be modifiable. It is wise to keep the Makefile "checked" in, but writable.

If the makefile exists but cannot be opened for write, then UD6 will wait until it is available. This behaviour can be controlled with the makefile nowait setting.

Minimum Rebuild

Some build systems integrate change control and make (eg: ClearCase/ClearMake).

In this case the build system only checks out the minimum number of files needed to build the components. The needed files are identified throught the dependency list in the makefile.

UD6 is NOT compatible with this type of build system, because not all the required dependencies are listed, eg: UDICVER or snippets or global procs. Global procs and snippets are usually compiled into UOBJ and so therefore the component is dependant on the compiled object as a row in the table UOBJ not on the source code in UPRC.

We are investigating if we can better support this type of build in future. Contact the sales team if you need this feature for your implementation.

MAKE and NMAKE

GNU Make is included free with UD6 2.1.05. It is a command line utility that checks that the compiled files are newer than the source files.


make -f makefile.mak

The command that is used to start the IDF can be changed by editing the makefile with NOTEPAD or any text editor. By default (on windows) the command used to start the IDF when the Makefile was first written is used. On Unix the $idf logical is used.

The makefile uses the March Hare supplied utility runidf.exe to run the IDF on windows. This ensures that the IDF.EXE returns the correct status code to the build manager. If there is an error, runidf.exe examines the transcript to determine the text of the first error and writes it to STDOUT.

Parallel builds

Some versions of make allow for parallel builds. The build of any component in Uniface is independant of other components, so make can build several components in parallel.

Alternatively you can use the MAKEFILES GROUP setting to generate targets for services, reports, DTD's separately and then perform builds for each group target in parallel.

Read more about Uniface Version Control

  •  1. UD6 Overview
  •  2. Basic Theory of Configuration Management
  •  3. Configuration Management applied to Uniface
  •  4. Comparison: VC-Link (PVCS-Uniface Bridge)
  •  5. Comparison: Uniface 8 (SCCI Bridge)
  •  6. Clustering: What is stored where in UD6
  •  7. NLS Support Overview
  •  8. UD6 Option Pack
  •  9. System Requirements
  •  10 UD6 Article Links
  •  11 Uniface 8 Migration
  •  12 XMLGREP Search and Replace
  •  13 UD6 Performance Optimisation
  •  15. UD6IDE: Eclipse editor for Uniface 6, 7, 8 and 9
  •  16. theu.info - You in Uniface
  • Read more about Searching and Replacing using XMLGREP

    $Revision$ $Date$[go to top]