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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout