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 UAA21566; Sat, 4 Sep 2004 20:27:48 +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 UAA22397 for ; Sat, 4 Sep 2004 20:27:46 +0200 (MET DST) Received: from mta09-svc.ntlworld.com (mta09-svc.ntlworld.com [62.253.162.49]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id i84IRknD002147 for ; Sat, 4 Sep 2004 20:27:46 +0200 Received: from [80.4.70.84] by mta09-svc.ntlworld.com (InterMail vM.4.01.03.37 201-229-121-137-20020806) with ESMTP id <20040904182845.EARP4370.mta09-svc.ntlworld.com@[80.4.70.84]>; Sat, 4 Sep 2004 19:28:45 +0100 Message-ID: <413A0921.7030607@ntlworld.com> Date: Sat, 04 Sep 2004 19:27:45 +0100 From: "chris.danx" User-Agent: Mozilla Thunderbird 0.7.3 (X11/20040803) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Nicolas Cannasse CC: Jason Hickey , caml-list@inria.fr Subject: Re: [Caml-list] Announcing the OMake build system version 0.9.1 References: <4139ECD3.1050708@cs.caltech.edu> <001e01c492a6$872c7280$19b0e152@warp> In-Reply-To: <001e01c492a6$872c7280$19b0e152@warp> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 413A0922.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Loop: caml-list@inria.fr X-Spam: no; 0.00; ntlworld:99 caml-list:01 cannasse:01 libs:01 autoconf:01 automake:01 autoconf:01 automake:01 cygwin:01 compiler:01 chris:01 chris:01 compilers:01 compilers:01 semantics:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Nicolas Cannasse wrote: >>OMake is a build system, similar to GNU make, but with many additional >>features. The home site for OMake is http://omake.metaprl.org/ > > > Interesting ! > However, I can't help thinking that I don't write to learn yet another > language for writing my Makefiles... Why not using directly OCaml for > writing Makefiles and exposing all nice OMake features through a library ? > You would benefit of a good tool for error checks which is the Ocaml > compiler. I've started to use ocamlconf! That is a nice tool for doing 'configuration' based builds (./configure && make && make install style builds). You specify what you want to do in OCaml using some libs, run ocamlconf which calls the base system and end up with a configure file. That's not the same as `just' using a makefile, but does provide a good example of a DSL embedded in OCaml for the purpose of building software, and it's done entirely with library based code. This seems to work well for me, although I've only just started. Makefiles became problematic for managing the code (finding libraries, including paths, etc) and previous detours into things like autoconf/automake were less than encouraging. Compared to autoconf/automake ocamlconf is a dream. My only concern is compiling on Windows, but Cygwin is available here so I'm hoping that's not going to be a big problem. One question that springs to mind is why hasn't anyone made a tool that does the build process based on the semantics of Ocaml? Or have they? I used to (and sometimes still do) program in Ada using Gnat and most of the compilation can be handled by tools like gnatmake which handles all the dependancies. The Ada language has some specific rules on compilation and recompilation. Perhaps this is the difference? Of course you had to manage some configuration issues, but for the majority of tasks it was possible to use the gnatmake program to manage vast portions of the build process and it was great!!! This is the only thing I miss when not developing with Ada compilers and isn't unique to ocaml compilers. Ada developers are spoiled in this regard. :) Regards, Chris ------------------- 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