Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Announcing OMake
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2006-04-11 (20:05)
From: Aleksey Nogin <nogin@c...>
Subject: Announcing OMake
We are proud to announce the latest release of the OMake Build System -
OMake version

OMake is a build system designed for scalability and portability. It 
uses a syntax similar to make utilities you may have used, but it 
features many additional enhancements, including the following.

   - Support for projects spanning several directories or directory

   - Fast, reliable, automated, scriptable dependency analysis using MD5
     digests, with full support for incremental builds.

   - Fully scriptable, includes a library that providing support for
     standard tasks in C, C++, OCaml, and LaTeX projects, or a mixture

     Often, a configuration file is as simple as a single line

     .DEFAULT: OCamlProgram(prog, foo bar baz)

     which states that the program "prog" is built from the files,, and This one line will also invoke the default
     standard library scripts for discovering implicit dependencies in
     OCaml files.

   - Full native support for rules that build several files at once.

   - Portability: omake provides a uniform interface on Linux/Unix
     (including 64-bit architectures), Win32, Cygwin, Mac OS X, and other
     platforms that are supported by OCaml.

   - Built-in functions that provide the most common features of programs
     like grep, sed, find, and awk. These are especially useful on Win32.

   - Active filesystem monitoring, where the build automatically restarts
     whenever you modify a source file. This can be very useful during
     the edit/compile cycle.

   - A built-in command-interpreter osh that can be used interactively.

OMake preserves the style of syntax and rule definitions used in 
Makefiles, making it easy to port your project to OMake. There is no 
need to code in Perl (cons), or Python (scons). However, there are a few 
things to keep in mind:

  1. Indentation is significant, but tabs are not required.
  2. The OMake language is functional: functions are first-class and
     there are no side-effects apart from I/O.
  3. Scoping is dynamic.

OMake is licensed under a mixture of the GNU GPL license (OMake engine 
itself) and the MIT-like license (default configuration files).

OMake version in minor bugfixes/feature enhancements release. 
The changes in this version include:

    - Significantly improved C++ support; minor improvements in OCaml
    - Significantly updated the default (sample) OMakefile.
    - Significantly improved the performance of the built-in find
    - Several other bug fixes and improvements.
    - A number of documentation fixes and improvements.

For a more verbose change log, please visit .

Source and binary packages of OMake may be downloaded from (Windows and OS X binaries are 
not there yet,  but should become available soon). In addition, OMake 
may be obtained via the GODI packaging system (release lines "3.08", 
"3.09" and "dev").

To try it out, run the command "omake --install" in a project directory, 
and modify the generated OMakefile.

OMake is still an alpha release.  While we have made an effort 
to ensure that it is bug-free, it is possible some functions may not 
behave as you would expect.  Please report any comments and/or bugs to 
the mailing list and/or at

Aleksey Nogin

Home Page:
E-Mail: (office), (personal)
Office: Moore 04, tel: (626) 395-2200