omake(1)
NAME
- omake is a build system designed to scale from small
- projects to very large projects spanning many directories. omake
- uses a syntax similar to make(1), with many additional features,
- including accurate automated dependency analysis based on MD5 di
- gests.
DESCRIPTION
- omake is designed for building projects that might have
- source files in several directories. Projects are normally spec
- ified using an OMakefile in each of the project directories, and
- an OMakeroot file in the root directory of the project. The
- OMakeroot file specifies general build rules, and the OMakefiles
- specify the build parameters specific to each of the subdirecto
- ries. When omake runs, it walks the configuration tree, evaluat
- ing rules from all of the OMakefiles. The project is then built
- from the entire collection of build rules.
- AUTOMATIC DEPENDENCY ANALYSIS
- Dependency analysis has always been problematic with the
- make(1) program. omake addresses this by adding the .SCANNER tar
- get, which specifies a command to produce dependencies. For exam
- ple, the following rule
.SCANNER: %.o: %.c$(CC) $(INCLUDE) -MM $< - is the standard way to generate dependencies for .c files.
- omake will automatically run the scanner when it needs to deter
- mine dependencies for a file.
- CONTENT-BASED DEPENDENCY ANALYSIS
- Dependency analysis in omake uses MD5 digests to determine
- whether files have changed. After each run, omake stores the de
- pendency information in a file called .omakedb in the project
- root directory. When a rule is considered for execution, the com
- mand is not executed if the target, dependencies, and command se
- quence are unchanged since the last run of omake. As an opti
- mization, omake does not recompute the digest for a file that has
- an unchanged modification time, size, and inode number.
- See the following manual pages for more information.
- omake-quickstart
A quickstart guide to using omake.
- omake-options
- Command-line options for omake.
- omake-root
- The system OMakeroot contains the default specifi
- cation of how to build C, OCaml, and LaTeXprograms.
- omake-language
- The omake language, including a description of ob
- jects, expressions, and values.
- omake-shell
- Using the omake shell for command-line interpreta
- tion.
- omake-rules
- Using omake rules to build program.
- omake-base
- Functions and variables in the core standard li
- brary.
- omake-system
- Functions on files, input/output, and system com
- mands.
- omake-pervasives
- Pervasives defines the built-in objects.
- osh The osh command-line interpreter.
- omake-doc
- All the OMake documentation in a single page.
REFERENCES
- SEE ALSO
- omake(1), omake-quickstart(1), omake-options(1), omake
- root(1), omake-language(1), omake-shell(1), omake-rules(1),
- omake-base(1), omake-system(1), omake-pervasives(1), osh(1),
- make(1)
- VERSION
- Version: 0.9.6.9 of April 11, 2006.
- LICENSE AND COPYRIGHT
- (C)2003-2006, Mojave Group, Caltech
- This program is free software; you can redistribute it
- and/or modify it under the terms of the GNU General Public Li
- cense as published by the Free Software Foundation; either ver
- sion 2 of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be
- useful, but WITHOUT ANY WARRANTY; without even the implied war
- ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- the GNU General Public License for more details.
- You should have received a copy of the GNU General Public
- License along with this program; if not, write to the Free Soft
- ware Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- AUTHOR
- Jason Hickey et. al..br Caltech 256-80
Pasadena, CA 91125, USA
Email: omake-devel@metaprl.org WWW: http://www.cs.caltech.edu/~jyh - Build Tools April 11, 2006