OMAKE(1)                         Build Tools                          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 digests.


DESCRIPTION
       omake is designed for building projects that might have source files in
       several  directories.   Projects are normally specified using an OMake-
       file 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 subdirectories. When omake runs, it walks the configura-
       tion tree, evaluating 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) pro-
       gram. omake addresses this by adding the .SCANNER target, which  speci-
       fies a command to produce dependencies. For example, 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 determine 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 dependency infor-
       mation in a file called .omakedb in the project root directory. When  a
       rule  is  considered  for execution, the command is not executed if the
       target, dependencies, and command sequence are unchanged since the last
       run  of omake.  As an optimization, 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 specification of how
              to build C, OCaml, and LaTeXprograms.

       omake-language
               The omake language, including a description of objects, expres-
              sions, and values.

       omake-shell
               Using the omake shell for command-line interpretation.

       omake-rules
               Using omake rules to build program.

       omake-base
               Functions and variables in the core standard library.

       omake-system
               Functions on files, input/output, and system commands.

       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 License as published  by  the
       Free  Software Foundation; either version 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  warranty  of MER-
       CHANTABILITY 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 Software 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                        OMAKE(1)
