From: Jason Hickey <jyh@cs.caltech.edu>
To: caml-list@inria.fr
Subject: [Caml-list] Announcing the OMake build system version 0.9.1
Date: Sat, 04 Sep 2004 09:26:59 -0700 [thread overview]
Message-ID: <4139ECD3.1050708@cs.caltech.edu> (raw)
OMake is a build system, similar to GNU make, but with many additional
features. The home site for OMake is http://omake.metaprl.org/
o Support for large projects spanning several directories or
directory hierarchies.
o Builtin support for OCaml and C projects, or a mixture thereof.
o Fast, accurate, automated dependency analysis using MD5 digests.
o Portability: omake provides a consistent interface on Win32 and
on Unix systems including Linux, OSX, and Cygwin.
o Builtin functions that provide the most common features of programs
like grep, sed, and awk. These are especially useful on Win32.
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
interactively.
In the MetaPRL (http://www.metaprl.org) and Mojave
(http://mojave.caltech.edu) projects we develop and maintain several
moderately large systems consisting of a mixture of OCaml, C, and
theorem proving code. We developed OMake out of the need for a build
system that was simple, flexible, and reliable, especially for large
projects.
OMake preserves the 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.
To try it out, run the command "omake --install" in a project directory,
and edit the generated OMakefile. Often, an OMakefile 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. You may want to choose which compiler is
used (by default, omake builds native code). You can use the
BYTE_ENABLED and NATIVE_ENABLED flags to control this.
NATIVE_ENABLED = false
BYTE_ENABLED = true
OCamlProgram(prog, foo bar baz)
If you have C files (say file1.c file2.c file3.c) in your project, you
can add them using the StaticCLibrary function.
StaticCLibrary(libx, file1 file2 file3)
OCAML_CLIBS = libx
OCamlProgram(prog, foo bar baz)
If you have other directories in your project, you can include them with
the directive
.SUBDIRS: dir...
For further information see the documentation at
http://omake.metaprl.org/, especially the section on examples.
OMake 0.9.1 is 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
--
Jason Hickey http://www.cs.caltech.edu/~jyh
Caltech Computer Science Tel: 626-395-6568 FAX: 626-792-4257
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next reply other threads:[~2004-09-04 16:27 UTC|newest]
Thread overview: 87+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-04 16:26 Jason Hickey [this message]
2004-09-04 17:42 ` Nicolas Cannasse
2004-09-04 18:27 ` chris.danx
2004-09-04 19:59 ` Matthieu Dubuget
2004-09-05 5:20 ` skaller
2004-09-05 13:20 ` David Brown
2004-09-05 14:31 ` skaller
2004-09-05 16:02 ` David Brown
2004-09-05 16:14 ` Nicolas Cannasse
2004-09-05 15:07 ` chris.danx
2004-09-05 15:53 ` skaller
2004-09-06 0:25 ` chris.danx
2004-09-06 8:17 ` skaller
2004-09-05 13:38 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 14:50 ` chris.danx
2004-09-05 15:01 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 15:44 ` chris.danx
2004-09-05 16:10 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 17:38 ` skaller
2004-09-05 17:15 ` skaller
2004-09-05 16:11 ` skaller
2004-09-05 16:21 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 19:09 ` skaller
2004-09-05 15:08 ` skaller
2004-09-05 15:38 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 17:04 ` skaller
2004-09-05 18:45 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 20:12 ` skaller
2004-09-05 21:30 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 22:41 ` Brandon J. Van Every
2004-09-06 12:13 ` Marcin 'Qrczak' Kowalczyk
2004-09-05 16:09 ` David Brown
2004-09-05 18:31 ` skaller
2004-09-06 10:56 ` Andreas Rossberg
2004-09-06 15:51 ` skaller
2004-09-06 7:11 ` Christian Lindig
2004-09-06 12:20 ` Marcin 'Qrczak' Kowalczyk
2004-09-06 14:12 ` Christian Lindig
2004-09-06 1:06 ` Richard Jones
2004-09-06 1:50 ` Brandon J. Van Every
2004-09-06 9:09 ` skaller
2004-09-06 8:59 ` skaller
2004-09-04 23:58 ` Nicolas Cannasse
2004-09-05 1:18 ` james woodyatt
2004-09-05 1:26 ` [Caml-list] Perl Conjury (alternative to Unix make) james woodyatt
2004-09-05 2:03 ` [Caml-list] Announcing the OMake build system version 0.9.1 David Brown
2004-09-05 2:37 ` james woodyatt
2004-09-05 6:24 ` Nathaniel Gray
2004-09-05 20:38 ` Aleksey Nogin
2004-09-06 0:12 ` james woodyatt
2004-09-06 0:33 ` [Omake] " Aleksey Nogin
2004-09-06 3:54 ` Brian Hurt
2004-09-06 6:39 ` Jason Hickey
2004-09-06 8:10 ` james woodyatt
2004-09-06 7:50 ` [Omake] " Erik de Castro Lopo
2004-09-06 14:52 ` Brian Hurt
2004-09-06 17:20 ` skaller
2004-09-06 9:52 ` skaller
2004-09-06 15:10 ` Brian Hurt
2004-09-07 13:26 ` David Brown
2004-09-06 1:14 ` Brandon J. Van Every
2004-09-06 2:35 ` Jacques GARRIGUE
2004-09-06 9:38 ` skaller
2004-09-06 11:34 ` Jacques Garrigue
2004-09-06 16:28 ` skaller
2004-09-06 16:42 ` Christopher A. Watford
2004-09-06 16:59 ` Richard Jones
2004-09-07 2:21 ` Jacques GARRIGUE
2004-09-07 6:17 ` skaller
2004-09-07 8:24 ` Benjamin Geer
2004-09-07 13:35 ` David Brown
2004-09-06 7:51 ` Daniel Andor
2004-09-05 20:38 ` Aleksey Nogin
2004-09-05 22:57 ` Olivier Grisel
2004-09-06 0:17 ` Aleksey Nogin
2004-09-06 13:31 ` Olivier Grisel
2004-09-06 19:28 ` [Caml-list] Godi for OMake [Was: Announcing the OMake build system version 0.9.1] Aleksey Nogin
2004-09-06 20:18 ` Olivier Grisel
[not found] ` <41537DAE.1050601@cs.caltech.edu>
2004-09-24 13:50 ` Olivier Grisel
2004-09-24 18:37 ` [Caml-list] OCamlFind support in OMake [Was: Godi for OMake] Aleksey Nogin
2004-09-04 18:01 ` [Caml-list] Announcing the OMake build system version 0.9.1 Yaron Minsky
2004-09-05 1:38 ` Eray Ozkural
2004-09-05 6:12 ` Yamagata Yoriyuki
2004-09-05 12:48 ` Yaron Minsky
2004-09-05 20:39 ` Aleksey Nogin
2004-09-06 12:24 Jason Smith
2004-09-06 15:54 ` Christopher A. Watford
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4139ECD3.1050708@cs.caltech.edu \
--to=jyh@cs.caltech.edu \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox