From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id SAA19433; Sat, 4 Sep 2004 18:27:04 +0200 (MET DST) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id SAA19412 for ; Sat, 4 Sep 2004 18:27:03 +0200 (MET DST) Received: from yukon.yapper.org (adsl-67-120-175-89.dsl.lsan03.pacbell.net [67.120.175.89]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i84GR2Z3025231 for ; Sat, 4 Sep 2004 18:27:02 +0200 Received: from [67.120.175.90] (kenai.yapper.org [67.120.175.90]) by yukon.yapper.org (Postfix) with ESMTP id EBE77502; Sat, 4 Sep 2004 09:26:59 -0700 (PDT) Message-ID: <4139ECD3.1050708@cs.caltech.edu> Date: Sat, 04 Sep 2004 09:26:59 -0700 From: Jason Hickey User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040616 X-Accept-Language: en-us, en MIME-Version: 1.0 To: caml-list@inria.fr Subject: [Caml-list] Announcing the OMake build system version 0.9.1 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 4139ECD6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; hickey:01 spanning:01 digests:01 cygwin:01 moderately:01 python:01 indentation:01 foo:01 baz:01 foo:01 baz:01 flags:01 libx:01 clibs:01 libx:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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