How to write a Meta-Build

What is a "Meta-Component"?

Consider a big component which can be split into smaller components (sub-components). Each of these components can be built separately and later packaged together to form the final big component then this resultant component can be termed as a "Meta-Component".

Why have "Meta-Builds"?

Meta-Build has following advantages -

How to build smaller components?

This step needs no further explanation. Refer User's Guide for details

How to run a Meta-Build?

For this you need to build the sub-components first. Once you have all the sub-components treat the Meta-Component as any other component. All the Meta-Build  requires to know is the runids of the sub-components. We use the nmi method for specifying the inputs and fetching the results of sub-components. For options available to "nmi" method refer the User's Guide. Write the glue scripts for the Meta-Component that have the logic behind combining the sub-components to form the Meta-Component.

Following is a sample nmi_submit file for Meta-Component consisting of 3 sub-components -

NMI submit file (cmdfile) - Meta-Component

description = Meta-Build

project = MyProject
project_release = 1.0

component = MetaComponent
component_version = 2.1

inputs = meta-component-glue.cvs, sub-components-result.nmi

platform_pre = platform_pre
remote_declare = remote_declare
remote_task = remote_task
remote_post = remote_post
platform_post = platform_post

platforms = x86_rh_9, x86_rh_7.2, sun4u_sol_5.9

prereqs = java-1.4.2_05, apache-ant-1.6.2, junit-3.8.1, perl-5.8.5, tar-1.14, patch-2.5.4, m4-1.4.1, binutils-2.15, flex-2.5.4a, make-3.80, byacc-1.9, bison-1.25, gzip-1.2.4

notify = parag@cs.wisc.edu

priority = 1

 

sub-components-result.nmi (inputs file)

method = nmi

# Assume following successful runs for sub-component builds
# sub-component-1 = 110
# sub-component-1 = 111
# sub-component-1 = 112

input_runids = 110, 111, 112
untar_results = true

All you have to do is run nmi_submit on the cmdfile above!!!