English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

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

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

OMake is a build system, similar to GNU make, but with many additional
features. The home site for OMake is http://omake.metaprl.org/ . OMake 
features include:

    o Support for projects spanning several directories or directory

    o Comes with a default configuration file providing support for
      OCaml, C and LaTeX projects, or a mixture thereof.
      Often, a configuration file is as simple as a single line

         OCamlProgram(prog, foo bar baz)

      which states that the program "prog" is built from the files
      foo.ml, bar.ml, and baz.ml.

    o Fast, reliable, automated, scriptable dependency analysis using
      MD5 digests.

    o Portability: omake provides a uniform interface on Win32 and
      on Unix systems including Linux and OSX.

    o Builtin functions that provide the most common features of programs
      like grep, sed, and awk.  These are especially useful on Win32.

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

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

    o A companion command interpreter, osh, that can be used

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 0.9.6 features a large number of major improvements and 
bug fixes, including:

   - Added "static" sections that are evaluated once (useful for
     configure-style scripts).
   - Added :value: dependencies, where a target depends on a computed
     value, rather than a file.
   - Changed the meaning of the .SCANNER rules.  .SCANNER rules
     are now much more similar to normal rules.
   - Added file locking for the .omakedb and .omc files.
   - Fixed issues where files were being expanded during the
     string->array conversion.
   - Rule execution now fails when any shell command fails, even those in
     nested sections.
   - Regular expressions now handle \(...\) arguments correctly.  Also,
     the lexer has better performance, searching is now roughly linear
   - Added .SUBDIRS bodies, which can be used instead of the OMakefile
     in a subdirectory.
   - Added the vmount function to define a "virtual mount" of one
     directory over another.
   - Better accessibility of the build rules and dependencies from OMake
   - Improved the latex-related rules.
   - The Map object is completely changed.
   - Other bug fixes and improvements.

For a more verbose change log, please visit 
http://omake.metaprl.org/changelog.html#0.9.6 .

Source and binary packages of OMake 0.9.6 may be downloaded from 
http://omake.metaprl.org/download.html . In addition, OMake may be 
obtained via the GODI packaging system (3.08, 3.07 and "dev" branches).

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

OMake 0.9.6 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 omake@metaprl.org and/or at http://bugzilla.metaprl.org/

Aleksey Nogin

Home Page: http://nogin.org/
E-Mail: nogin@cs.caltech.edu (office), aleksey@nogin.org (personal)
Office: Moore 04, tel: (626) 395-2200