caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
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


  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;
as well as URLs for NNTP newsgroup(s).