Makeit

Makeit is a wrapper (a front end) to make. Makeit simplifies the builds and provides consistency. It can traverse project hierarchies and convert makefile descriptions to real makefiles (by calling CreateMake).

Installation

Makeit is located in /usr/taligent/bin and requires no installation. Make sure this directory is in your command search path if Makeit fails to run.

Makeit has only a few options; however, it passes all other options to make. So in effect, Makeit has the same options as make, plus its own options.

Syntax

    Makeit [options] [Targets]
Makeit passes any unrecognized arguments on to make.

Arguments -c Does not build subprojects. By default, Makeit operates recursively on subprojects from the bottom up, executing targets at every project it finds in a subproject{} block.
-D Does not rebuild a makefile, even if it is out-of-date.
-i Does not stop when errors are encountered. This is passed to make as -i.
-fast CreateMake option; Makeit passes this option to CreateMake.
-M Forces all makefiles to be rebuilt on the fly by calling CreateMake even if files are up-to-date.
-T Traverses the project tree, but does not build anything.
VAR=value Assigns value to the variable named VAR. Makeit passes this expression to make to alter makefile variable usage.
-vers Echoes the current version and copyright information to stderr.
Targets The targets to build. If you omit this option, Makeit builds each target in the current project (includes, objects, exports, and binaries) and the necessary dependencies. You can also specify complete to build the four targets. Makefiles is a special target that generates a new makefile, but does not build anything. Use this for debugging. Makeit Makefiles

Usage

Go through each build process target (Includes, Objects, Exports, and Binaries) and build the necessary dependencies.

    Makeit 
To build DemoApp and its subprojects:

    Makeit DemoApp
A common mistake is to build one target (as in the previous example), and not realize that Makeit is going to make all subprojects of DemoApp--many of which do not have a target DemoApp. To prevent Makeit from building subprojects, include -c:

    Makeit -c DemoApp
To require Makeit to execute only the Includes and Exports targets in each directory.

    Makeit Includes Exports

Passing options to make

Makeit accepts (and passes) all options to make. You can use this feature to pass options to make. For example, if you want make to continue building even if an error occurs, include -i for make:

    Makeit -i Objects
This works similarly for any make option; Makeit correctly passes arguments for options too. For example, you can override variables in makefiles as you can with make. To override the COPTS (compiler options) variable in the makefile:

    Makeit COPTS=-g Binaries

Creating makefiles

Makeit can build makefiles while it is running. Makeit rebuilds a makefile if:

Makeit uses CreateMake to translate the makefile descriptions (*.PinkMake) to UNIX makefiles (*.Make).

Preventing duplication

To prevent duplication in each makefile, and to allow for more flexibility, CreateMake includes Universal.Make in every makefile (*.Make). Universal.Make contains global targets and rules, such as Includes, Objects, Exports, and Binaries.

Other global targets

In addition to the global targets previously mentioned, other global targets are also useful because they are applied only to the projects in the build and not to every directory in the hierarchy. These targets will not be applied to those projects:

Global target Task
clean Removes all .o and .e files, and libraries that were built.
complete Expands into the four standard targets: Includes, Objects, Exports,
and Binaries.
makefiles Allows you to traverse the directory and rebuild makefiles as needed.


[Contents] [Previous] [Next]
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.

Generated with WebMaker