1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta name="generator" content="Adobe GoLive 6">
<title>The OMake build system</title>
</head>
<body bgcolor="#ffffff" text="#000000">
<table><tr><td><img src="images/omake.gif" alt="" width="300" height="137" border="0"></td>
<td width="50px" valign="top"></td>
<td valign="top">
<u>OMake Home</u><br>
<a href="manual/omake.html">Documentation</a><br>
<a href="download.html">Download</a><br>
<a href="omake_papers.html">Publications</a></br>
<a href="omake_lists.html">Mailing lists</a><br>
<a href="contribs.html">User contributions</a><br>
<a href="omake_users.html">Users and projects</a><br>
<a href="http://bugzilla.metaprl.org/">Bugzilla</a><br>
<a href="http://svn.metaprl.org/viewcvs/mojave/omake-branches/0.9.8.x/">Browse sources</a><br>
Changelog
<a
href="http://svn.metaprl.org/viewcvs/*checkout*/mojave/omake-branches/0.9.8.x/CHANGELOG.txt">summary</a>,
<a href="changelog.html">verbose</a>
</td>
</tr></table>
<h3>News</h3>
<ul>
<li><a href="changelog.html#0.9.8.6">Version 0.9.8.6 Release
Candidate 1</a> (October 26, 2010)
<li><a href="http://omake.metaprl.org/prerelease/index.html">Version 0.9.9 Prerelease</a> (June 20, 2007)
</ul>
<h3>Overview</h3>
<p>OMake is a build system designed for scalability and portability. It uses a syntax similar
to <tt>make</tt> utilities you may have used, but it features many additional enhancements,
including the following.</p>
<ul>
<li>Support for projects spanning several directories or directory hierarchies.
<li>Fast, reliable, automated, scriptable dependency analysis using MD5 digests, with full
support for incremental builds.
<li>Dependency analysis takes the command lines into account —
whenever the command line used to build a target changes, the target
is considered out-of-date.
<li>Fully scriptable, includes a library that providing support for standard tasks in
C, C++, OCaml, and LaTeX projects, or a mixture thereof.
<p> Often, a configuration file is as simple as a single line
<pre>.DEFAULT: $(CProgram prog, foo bar baz)</pre>
which states that the program "<tt>prog</tt>" is built from the files <tt>foo.c</tt>,
<tt>bar.c</tt>, and <tt>baz.c</tt>. This one line will also invoke the default
standard library scripts for discovering implicit dependencies in C files (such as
dependencies on included header files).
</li>
<li>Full native support for rules that build several files at once.
<li>Portability: <tt>omake</tt> provides a uniform interface on Linux/Unix (including
64-bit architectures), Win32, Cygwin, Mac OS X, and other platforms that are supported by
<a href="http://www.ocaml.org/">OCaml</a>.
<li>Built-in functions that provide the most common features of programs
like <tt>grep</tt>, <tt>sed</tt>, and <tt>awk</tt>. These are especially useful on Win32.
<li>Active filesystem monitoring, where the build automatically restarts whenever you
modify a source file. This can be very useful during the edit/compile cycle.
<li>A built-in command-interpreter <tt>osh</tt> that can be used interactively.
</ul>
<p>OMake preserves the style of syntax and rule definitions used in <tt>Makefile</tt>s,
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:
<ol>
<li>Indentation is significant, but tabs are not required.
<li>The OMake language is functional: functions are first-class and there are no
side-effects apart from I/O.
<li>Scoping is dynamic.
</ol>
<p>OMake is licensed under a mixture of the GNU GPL license (OMake engine itself) and the
MIT-like license (default configuration files).</p>
<p>OMake is part of the <a href="http://mojave.cs.caltech.edu/">Mojave</a> and <a
href="http://metaprl.org/">MetaPRL</a> projects.</p>
<p></p>
</body>
</html>
|