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 EAA28381; Sat, 22 Nov 2003 04:51:14 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id EAA28406 for ; Sat, 22 Nov 2003 04:51:13 +0100 (MET) Received: from dell.nogin.org (charter-242-037.caltech.edu [131.215.242.37]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id hAM3pC104489 for ; Sat, 22 Nov 2003 04:51:12 +0100 (MET) Received: from cs.caltech.edu (localhost.localdomain [127.0.0.1]) by dell.nogin.org (8.12.10/8.12.9) with ESMTP id hAM3p4kx008024; Fri, 21 Nov 2003 19:51:05 -0800 Message-ID: <3FBEDD28.80308@cs.caltech.edu> Date: Fri, 21 Nov 2003 19:51:04 -0800 From: Aleksey Nogin Organization: California Institute of Technology, Computer Science Department User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6a) Gecko/20031023 X-Accept-Language: ru, en-us, en MIME-Version: 1.0 To: sylvain.le-gall@polytechnique.org, Caml List Subject: Re: [Caml-list] Omake [Was: Building large and portable projects] References: <3FBE45D2.5070309@cs.caltech.edu> <20031121185542.GC1154@gallu.homelinux.org> <3FBE67D5.5040704@cs.caltech.edu> <20031121234859.GA1317@gallu.homelinux.org> In-Reply-To: <20031121234859.GA1317@gallu.homelinux.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 le-gall:01 ideally:01 findlib:01 findlib:01 helper:01 ocamlfind:01 ocamlc:01 ocamlc:01 usr:01 toplevels:01 ocamlfind:01 626:99 -package:01 -package:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk On 21.11.2003 15:48, sylvain.le-gall@polytechnique.org wrote: > 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... ). Well, included is a macro language that should (ideally) allow you to define things you want. If needed, you can relatively easily extend the language of built-in functions as well (which means you have to change omake source code, but it gives you access to full OCaml). > 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 ... [...] > I want ( just as i have posted before ) : > > let my_prog = { name = "my_prog";...;toplevels = [ "X.ml" ] } > in > add_target my_prog Well, does it really have to be written in OCaml? Note that if one would want to use omake for simple projects, all that [s]he would have to learn is couple of macros (which completely hide the notions of "target", "dependency", etc) and couple of standard variables. E.g, you'd need couple of line for the project: OCAMLC = ocamlfind ocamlc -package "fileutils" OCamlProgram(my_prog, X Y Z ...) Note that the standard macros are not in any way built-in (the way make has a big number of built-in rule), they just come from an include file (that can be studied and even modified if a small simple project ends up growing into a large and complicated one). Note - if in the example above you do not want to rely on external ocamlfind, you could add ocamlfind code to omake, changing the above to OCAMLINCLUDES += $(ocamlfind fileutils) OCamlProgram(my_prog, X Y Z ...) -- Aleksey Nogin Home Page: http://nogin.org/ E-Mail: nogin@cs.caltech.edu (office), aleksey@nogin.org (personal) Office: Jorgensen 70, tel: (626) 395-2907 ------------------- 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