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
|
Go through each build process target (Includes, Objects, Exports, and Binaries) and build the necessary dependencies.
Usage
To build DemoApp and its subprojects:Makeit
A common mistake is to build one target (as in the previous example), and not realize that Makeit DemoApp
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:
To require Makeit -c DemoApp
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:
This works similarly for any Makeit -i Objects
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:
*.Make file does not exist.
*.PinkMake file is newer than the *.Make file.
-M to override the automatic makefile generation.
Makeit uses CreateMake to translate the makefile descriptions (*.PinkMake) to UNIX makefiles (*.Make).
| 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. |