From: <sylvain.le-gall@polytechnique.org>
To: Jason Hickey <jyh@cs.caltech.edu>
Cc: caml-list@inria.fr, Martin Jambon <martin_jambon@emailuser.net>
Subject: Re: [Caml-list] Building large and portable projects
Date: Fri, 21 Nov 2003 19:55:42 +0100 [thread overview]
Message-ID: <20031121185542.GC1154@gallu.homelinux.org> (raw)
In-Reply-To: <3FBE45D2.5070309@cs.caltech.edu>
On Fri, Nov 21, 2003 at 09:05:22AM -0800, Jason Hickey wrote:
> Martin Jambon wrote:
> >Is there a convenient way to develop OCaml code, and be sure that
> >this code will be configurable, compilable, installable and
> >executable without changes, on any environment where OCaml is available?
>
> We have been using omake to build several large projects, primarily on
> Linux and Windows. omake is written in OCaml, and provides a build
> system with syntax similar to make, but project-wide dependency
> analysis. Here are some features:
>
> - omake runs on Unix, Windows, MacOS, and presumably
> other architectures where OCaml is available.
> - dependency analysis is project-wide (like cons),
> based on MD5 digests
> - automated dependency analysis
> - there is builtin support for OCaml and C code,
> and it is easy to add support for other kinds
> of files (just like make).
> - the OMakefile syntax is similar to GNU make, but
> - omake has user-defined functions
> - OMakefile programs are functional
> - the .SUBDIRS target is used to define
> the project hierarchy
> - different parts of the project can have
> different configuration.
>
> omake is available by anonynous CVS from cvs.metaprl.org.
> % cvs -d :pserver:anoncvs@cvs.metaprl.org:/cvsroot login
> The password is anoncvs.
> % cvs -d :pserver:anoncvs@cvs.metaprl.org:/cvsroot checkout omake
>
> Alternatively, RPMs are available at rpm.nogin.org.
>
> Here is a short description. Every project must have an OMakeroot file
> in the project root. It is usually boilerplate; this is typical:
>
> # Include the standard configuration
> include $(STDROOT)
>
> # Include the OMakefile
> .SUBDIRS: .
>
> The project commands are then placed in an OMakefile. To build a
> standalone OCaml program from files a.ml b.ml and c.ml, you just need
> one line. The OCamlProgram function is defined in the system OMakeroot.
>
> OCamlProgram(foo, a b c)
>
> You can choose the byte-compiler, native-code compiler, or both.
>
> BYTE_ENABLED = true
> NATIVE_ENABLED = true
> OCamlProgram(foo, a b c)
>
> Maybe you have some C files you need to include in your compile as well.
> Perhaps f.c is a generated file.
>
> f.c: f1.c f2.c
> cat $+ > $@
> StaticCLibrary(bar, d e f)
> LIBS = bar
> OCamlProgram(foo, a b c)
>
> Perhaps you use the C-preprocessor on some .mlp files:
>
> %.ml: %.mlp
> $(CPP) $*.mlp > $@
>
> The system sources contain more examples, and the MetaPRL system, also
> available at cvs.metaprl.org, provides a very large, complex, example.
>
> Jason
>
Hello,
It seems great to me...
Is there way to define camlp4 syntax ? ( for example XXX.ml needs camlp4
with cmo zoggy.cmo or something like that )
Is there a kind of configure in it ?
Can you use META files.
(... a lot of other question but i will take a look at it before asking
).
Kind regad
Sylvain LE GALL
-------------------
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 prev parent reply other threads:[~2003-11-21 18:55 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-20 18:47 Martin Jambon
2003-11-20 19:56 ` sylvain.le-gall
2003-11-21 1:45 ` Nicolas Cannasse
2003-11-21 5:25 ` David Brown
2003-11-21 5:48 ` Nicolas Cannasse
2003-11-21 6:45 ` David Brown
2003-11-21 6:49 ` sylvain.le-gall
2003-11-21 16:12 ` skaller
2003-11-21 17:53 ` Eric Dahlman
2003-11-22 14:45 ` skaller
2003-11-21 19:04 ` sylvain.le-gall
2003-11-22 14:34 ` skaller
2003-11-22 18:50 ` sylvain.le-gall
2003-11-22 14:32 ` Martin Berger
2003-11-22 14:55 ` skaller
2003-11-22 17:08 ` David Brown
2003-11-22 16:48 ` skaller
2003-11-23 3:25 ` Nicolas Cannasse
2003-11-23 4:29 ` David Brown
2003-11-23 17:21 ` skaller
2003-11-22 17:13 ` David Brown
2003-11-24 18:02 ` Ken Rose
2003-11-24 19:04 ` Christian Lindig
2003-11-21 16:32 ` Martin Jambon
2003-11-21 18:57 ` sylvain.le-gall
2003-11-21 9:14 ` Christian Lindig
2003-11-21 9:28 ` Richard Jones
2003-11-21 15:35 ` skaller
2003-11-21 17:05 ` Jason Hickey
2003-11-21 18:55 ` sylvain.le-gall [this message]
2003-11-21 19:30 ` [Caml-list] Omake [Was: Building large and portable projects] Aleksey Nogin
2003-11-21 20:39 ` Damien
2003-11-22 3:30 ` Aleksey Nogin
2003-11-21 23:48 ` sylvain.le-gall
2003-11-22 1:32 ` Nicolas Cannasse
2003-11-22 3:51 ` Aleksey Nogin
2003-11-28 16:29 ` [Caml-list] Building large and portable projects David Brown
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=20031121185542.GC1154@gallu.homelinux.org \
--to=sylvain.le-gall@polytechnique.org \
--cc=caml-list@inria.fr \
--cc=jyh@cs.caltech.edu \
--cc=martin_jambon@emailuser.net \
/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