<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2003/11/6cb4163c04ade05bfaa283746117ab71"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T23:49:08"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]"
  prev="2003/11/46ea3589d5d0e286856c16c29dc2c525"
  next="2003/11/002147abdef4f6fe5248093cd8c75a75"
  prev-in-thread="2003/11/93fa547f5886c55641dd9dca462afc87"
  next-in-thread="2003/11/8735a2fea9467afd546bac476fdcf022"
  prev-thread="2003/11/5e21cd78e94318bd8f496dda39b97d60"
  next-thread="2003/11/f2a734a210920bee1d5c93213738f959"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Building large and portable projects">
<msg 
  url="2003/11/ac68477a0da5d7dbb8ba9e0bbe74e550"
  from="Martin Jambon &lt;martin_jambon@e...&gt;"
  author="Martin Jambon"
  date="2003-11-20T18:46:34"
  subject="[Caml-list] Building large and portable projects">
<msg 
  url="2003/11/ccf9db74e478acb20cab489c2fb02092"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-20T19:56:20"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/7ef01ee5b5128354554f6850ad2b377d"
  from="Nicolas Cannasse &lt;warplayer@f...&gt;"
  author="Nicolas Cannasse"
  date="2003-11-21T01:45:57"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/7aa942a68105af8e690f486fea4fc402"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-11-21T05:26:06"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/918088b71b6718cd6d59e19ffbbd7f7d"
  from="Nicolas Cannasse &lt;warplayer@f...&gt;"
  author="Nicolas Cannasse"
  date="2003-11-21T05:48:25"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/85f43c4bd573158f0506da4ffabfd806"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-11-21T06:45:14"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/19dec71a1408195b6ab73942c80adf76"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T06:50:00"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/7743d7fb3969895760863a808bc9af19"
  from="Martin Jambon &lt;martin_jambon@e...&gt;"
  author="Martin Jambon"
  date="2003-11-21T16:31:53"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/d8e84a57831490d0dbb1c549a02056cb"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T18:57:34"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
<msg 
  url="2003/11/ced35df8149cebe71e7f4373aa08fb23"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-21T17:13:55"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/858f36de355923c2f9a2d21aa942a760"
  from="Eric Dahlman &lt;edahlman@a...&gt;"
  author="Eric Dahlman"
  date="2003-11-21T17:54:14"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/3d625f533942d81c8980a24c8ef6b993"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-22T15:46:13"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
<msg 
  url="2003/11/45c74c49bce3bf90b74e048cf0f12405"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T19:04:59"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/77f7d979d60a0de0241677e16ebb9af6"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-22T15:34:51"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/33980c9a0530b2caf98b1a8df1a3d33a"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-22T18:50:31"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
</msg>
<msg 
  url="2003/11/e83c4157c43ac28d050e4afb28346c25"
  from="Martin Berger &lt;martinb@d...&gt;"
  author="Martin Berger"
  date="2003-11-22T14:33:30"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/e0c7b4ad964ab34eb1d8dc95ecfef1b2"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-22T15:55:40"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
<msg 
  url="2003/11/f190d240db31726d6e7cb25f062a47f2"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-11-22T17:09:06"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/f19e19de9a7a2d4ffa21c089a816b928"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-22T17:49:07"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/9df9833869f3455d0566de36f53553c0"
  from="Nicolas Cannasse &lt;warplayer@f...&gt;"
  author="Nicolas Cannasse"
  date="2003-11-23T03:25:40"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/1ca1b8c753d52f322fb52fa0cb099487"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-11-23T04:29:40"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/2ea9e2faafc3e01b6720e94a0ace03ce"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-23T18:22:13"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
</msg>
<msg 
  url="2003/11/8c306ba3549ad409799276405cebd920"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2003-11-22T17:13:48"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/e45e6ee9f1c352122edfbe83a7956ebc"
  from="Ken Rose &lt;kenrose@t...&gt;"
  author="Ken Rose"
  date="2003-11-24T18:02:39"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/4d7d822942745b392e762eca2bf717c0"
  from="Christian Lindig &lt;lindig@c...&gt;"
  author="Christian Lindig"
  date="2003-11-24T19:04:09"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/11/f48dc0c8dcb5bfd5547a2d8750bd454f"
  from="Christian Lindig &lt;lindig@c...&gt;"
  author="Christian Lindig"
  date="2003-11-21T09:15:03"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/11/d516e3f24a0897f022c2c74d642473df"
  from="Richard Jones &lt;rich@a...&gt;"
  author="Richard Jones"
  date="2003-11-21T09:28:29"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/be91a61f7033646f9301d5de206fc31b"
  from="skaller &lt;skaller@o...&gt;"
  author="skaller"
  date="2003-11-21T16:35:45"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
<msg 
  url="2003/11/9df36749b91cbf1ae99c832a13bb0042"
  from="Jason Hickey &lt;jyh@c...&gt;"
  author="Jason Hickey"
  date="2003-11-21T17:05:30"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/055a86f520c0a5e1034e3ad3277ce35d"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T18:55:50"
  subject="Re: [Caml-list] Building large and portable projects">
<msg 
  url="2003/11/cc773ee315e1384534f3a2b2880e0397"
  from="Aleksey Nogin &lt;nogin@c...&gt;"
  author="Aleksey Nogin"
  date="2003-11-21T19:30:34"
  subject="[Caml-list] Omake [Was: Building large and portable projects]">
<msg 
  url="2003/11/63a1efbac21c5d9bf7cfb4bb9fb0888b"
  from="Damien &lt;Damien.Pous@e...&gt;"
  author="Damien"
  date="2003-11-21T20:40:00"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]">
<msg 
  url="2003/11/93fa547f5886c55641dd9dca462afc87"
  from="Aleksey Nogin &lt;nogin@c...&gt;"
  author="Aleksey Nogin"
  date="2003-11-22T03:30:26"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]">
</msg>
</msg>
<msg 
  url="2003/11/6cb4163c04ade05bfaa283746117ab71"
  from="sylvain.le-gall@p..."
  author="sylvain.le-gall@p..."
  date="2003-11-21T23:49:08"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]">
<msg 
  url="2003/11/8735a2fea9467afd546bac476fdcf022"
  from="Nicolas Cannasse &lt;warplayer@f...&gt;"
  author="Nicolas Cannasse"
  date="2003-11-22T01:32:38"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]">
</msg>
<msg 
  url="2003/11/6c14c7f915d495d8d5e63b68c0a1fb83"
  from="Aleksey Nogin &lt;nogin@c...&gt;"
  author="Aleksey Nogin"
  date="2003-11-22T03:51:14"
  subject="Re: [Caml-list] Omake [Was: Building large and portable projects]">
</msg>
</msg>
</msg>
</msg>
<msg 
  url="2003/11/7142c51e2f8ab4fd19aa7b40ee02e63c"
  from="David Brown &lt;davidb@d...&gt;"
  author="David Brown"
  date="2003-11-28T16:29:15"
  subject="Re: [Caml-list] Building large and portable projects">
</msg>
</msg>
</msg>
</thread>

<contents>
Hello, again

On Fri, Nov 21, 2003 at 11:30:29AM -0800, Aleksey Nogin wrote:
&gt; On 21.11.2003 10:55, sylvain.le-gall@polytechnique.org wrote:
&gt; 
&gt; &gt;Is there way to define camlp4 syntax ? ( for example XXX.ml needs camlp4
&gt; &gt;with cmo zoggy.cmo or something like that )
&gt; 
&gt; Yes, the syntax would be something like
&gt; 
&gt; if true
&gt;    OCAMLFLAGS += -pp "camlp4 zoggy.cmo"
&gt;    XXX.cmx XXX.o:
&gt;    XXX.cmo:
&gt; 
&gt; The idea is the following:
&gt; - variables inside the "if" statements are locally scope (unless you 
&gt; explicitly export the variable environment back to the parent scope), so 
&gt; we use the "if true" as a synonym for "local". So, the above tells omake 
&gt; to add a preprocessor flag to ocamlc/ocamlopt when compiling XXX.cmx, 
&gt; XXX.o and XXX.cmo.
&gt; 
&gt; Alternatively, you could define a helper macro:
&gt; 
&gt; UseCamlp4(modules, files) =
&gt;    OCAMLFLAGS += -pp "camlp4 $(addsuffix .cmo, $(modules))"
&gt;    $(addsuffix .cmx, $(modules)) $(addsuffix .o, $(modules)):
&gt;    $(addsuffix .cmo, $(modules)):
&gt; 
&gt; UseCamlp4(zoggy, XXX)
&gt; 
&gt; Actually, it might be a good idea to add such a macro to the global 
&gt; rules file included with omake - I filed 
&gt; http://cvs.metaprl.org:12000/bugzilla/show_bug.cgi?id=119 on this.
&gt; 
&gt; &gt;Is there a kind of configure in it ?
&gt; 
&gt; There are a number of mechanisms for hooking to an external one. For 
&gt; example, you could specify dependencies and commands when including file as:
&gt; 
&gt; 
&gt; .INCLUDE: foo
&gt;    bla bla &gt; foo
&gt; 
&gt; .INCLUDE: foo: foo.in
&gt;    bla bla bla bla &lt; foo.in &gt; foo
&gt; 

Ok. But i am looking for something included in it ( think that in your
very large project, you have a library that builds against an external
one, i want that the makefile system detect it and output that it needs
this library... ).

&gt; 
&gt; if $(not $(equal $(OSTYPE), Win32))
&gt;     OMakefile: OMakefile.in config.status
&gt;    @echo "*** Build system is out-of-date, rebuilding ***"
&gt;    $(DOT)config.status
&gt;    @echo "*** OMakefile was rebuilt, session should restart ***"

In fact i want to get rid of it ( no $(DOT)config.status ). Autools et
al are very well made but i think that it is too much complicated (
having try to understand how it is build but most of the time i really
can t get into it ).

&gt; 
&gt; &gt;Can you use META files.
&gt; 
&gt; Not sure what those are.
&gt; 

META file comes with findlib. Findlib is an helper to configure ocaml
compilation :
ocamlfind ocamlc -package "fileutils" xxx.ml 
will run ocamlc -I /usr/lib/ocaml/fileutils ...

Gerd Stolpmann write it ( www.ocaml-programming.de ). Sorry to the
author if i mistyped his name...

I take a quick glance to you OMakefile...

Well i think it is very powerfull and very interesting... But ( there is
always a but ), i am looking for something between your very complete
suite and ocamake which is light and permits to do fast job for ocaml
stuff. 

I know, i will run into problem if not targeting all people... But, i
cannot choose all options. I want something enough powerfull to build
little to medium ocaml project -- with some C binding. I don't want to
rebuild make. The ideal project ( in size ) will be cameleon ( fully
written in ocaml ) or mldonkey ( mostly ocaml with some C ). I don't
really want to be able to compile C, python, Ada...

I want to use some kind of ocaml script ( let say makefile.ml which will
contain the instruction to build, explains the dependency etc ) to
enable user to be fully consistent with their project ( they learn ocaml
and not makefile syntax ). I think it should be necessary to have a
plugin system ( through dynlink or topfind, don't know yet ) to enable them 
to develop their own set of rules ( if they want to compile specific
things ).

What i have read in you omakefile is a kind of full rewrite of make ( ie
you have construct of function, dependency etc ). I precisely don't want 
to develop my own langage for this purpose, i want to have it written in
ocaml.

Just to give you an example, all the student i know have problem using
makefile because they don't want to spend two hours understanding this
big script... So they simply don't use it... How many times i have seen
one-file-project without makefile, or people using "ocamlc X.ml &amp;&amp;
ocamlc Y.ml &amp;&amp; ocamlc Z.ml..."

I want ( just as i have posted before ) :

let my_prog = { name = "my_prog";...;toplevels = [ "X.ml" ] }
in
add_target my_prog

and that's all. And i want to be able to do it on linux or win without
being needed to do if Win32 then ... else ... ( every time you write if
... else ..., it is a possible infinite source of error ).

I will have a deeper look to your omakefile ( understanding how it is
working, if i can learn from the rules to target process ... ). 

thanks for having helped me to find more project similar to mine.

Kind regard
Sylvain LE GALL

ps : i cannot find your project omakefile on humps
pps : if you have time you could take a look at cameleon CVS, branch
findlib : http://savannah.nongnu.org/projects/cameleon, there is a bunc
of ten lines makefile which are sufficient to define what to compile for
each directory... That is the mininum sums of information i want user to
give to have a fully working makefile system

-------------------
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

</contents>

</message>

