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 89 90
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title>The OMake build system: Publications</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">
<a href="index.html">OMake Home</a><br>
<a href="manual/omake.html">Documentation</a><br>
<a href="download.html">Download</a><br>
<u>Publications</u></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>
<h2>OMake Publications</h2>
<h3>OMake: Designing a scalable build process.</h3>
<p>Jason Hickey and Aleksey Nogin.
<br><b>OMake: Designing a scalable build process.</b>
<br>In Luciano Baresi and Reiko Heckel, editors, <em>Fundamental
Approaches to Software Engineering, 9th International Conference,
FASE 2006</em>, volume 3922 of <em>Lecture Notes in Computer
Science</em>, pages 63–78. Springer, 2006.
<br>An extended version is available as California Institute of
Technology technical report CaltechCSTR:2006.001.
<br><br><em>Refereed version:</em> <a
href="http://mojave.cs.caltech.edu/papers/omake/fase06-final.pdf">PDF</a>,
<a
href="http://mojave.cs.caltech.edu/papers/omake/fase06-final.ps">PostScript</a>,
<a href="http://dx.doi.org/10.1007/11693017_7">Electronic Edition</a>
<br><em>Technical report version:</em> <a
href="http://mojave.cs.caltech.edu/papers/omake/fase06-tr.pdf">PDF</a>,
<a
href="http://mojave.cs.caltech.edu/papers/omake/fase06-tr.ps">PostScript</a>,
<a
href="http://resolver.caltech.edu/CaltechCSTR:2006.001">CaltechCSTR
Entry</a>
<h4>Abstract</h4>
<blockquote>
Modern software codebases are frequently large, heterogeneous, and
constantly evolving. The languages and tools for software
construction, including code builds and configuration management,
have not been well-studied. Developers are often faced with using 1)
older tools (like make) that do not scale well, 2) custom build
scripts that tend to be fragile, or 3) proprietary tools that are not
portable.
<p>In this paper, we study the build issue as a domain-specific
programming problem. There are a number of challenges that are
unique to the domain of build systems. We argue that a central goal
is compositionality—that is, it should be possible to specify a
software component in isolation and add it to a project with an
assurance that the global specification will not be compromised. The
next important goal is to cover the full range of
complexity—from allowing very concise specifications for the
most common cases to providing the flexibility to encompass projects
with unusual needs. Dependency analysis, which is a prerequisite for
incremental builds, must be automated in order to achieve
compositionality an reliability; it also spans the full range of
complexity.
<p>We develop a language for describing software builds and
configuration. We also develop an implementation (called OMake),
that addresses all the above challenges efficiently and portably. It
also provides a number of features that help streamline the
edit/compile development cycle.
<p>OMake is freely available under the GNU General Public License,
and is actively being used in several large projects.
</blockquote>
</body>
</html>
|