From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=AWL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id 59CE3BBAF for ; Fri, 9 Jan 2009 18:15:36 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkBAFsVZ0nVJFBblGdsb2JhbACUEQEBAQEJCwgJEQO8CYVv X-IronPort-AV: E=Sophos;i="4.37,239,1231110000"; d="scan'208";a="21263699" Received: from mx-out.libertysurf.net (HELO mail.libertysurf.net) ([213.36.80.91]) by mail3-smtp-sop.national.inria.fr with ESMTP; 09 Jan 2009 18:15:36 +0100 Received: from [192.168.1.2] (91.168.179.177) by mail.libertysurf.net (7.3.118.8) id 4965E06E00063271 for caml-list@yquem.inria.fr; Fri, 9 Jan 2009 19:28:50 +0100 From: Florent Monnier To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Toplevel - loading dependencies Date: Fri, 9 Jan 2009 18:14:07 +0100 User-Agent: KMail/1.9.10 References: <49675DE7.5030000@uj.edu.pl> In-Reply-To: <49675DE7.5030000@uj.edu.pl> MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200901091814.08168.fmonnier@linux-nantes.fr.eu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAAXNSR0IArs4c6QAAAA9QTFR FJiYmQUFBV1dXbW1tjY2NSZvrPgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAA HdElNRQfZAQMCBS8DEnxrAAAB80lEQVQ4y11UUZbDIAjE7AXA9ADR9ACNeoBN5f5n2gGTblI/8l4 ZZ4ABS6raVKuMs1acktfaSP1sBxCzH6ADeMt5olFq6wPoCaHkd1cd2kOq21UZQeRr9qUO5kaeeMQ 1PR0wPhMFkQpFDk2X1Sh0HpmBi1DNadYLACXwhKlsaT4YkgLk9wK9KNzeMZ4Mi+u7sCUSlJg+UlZ GIjHB2Kck7QosFECJeaMyfRgJ7UmggBZjovl5qQrqbFVRFJraHZCAJFNicSX1uwOwT8LtPABxYPK viMkXPb0aAJF3DCBfGFAhswhebxyuXrGQzdu650lv7lIt1bl0B4jWzlb4Qj93QGrbEZ93mr8YtSQ reKdhO/9LFdsJ7UG+GHPNvhFZ2lfymrNtSP0CQgXgC+LG3ABEJa1NZsz3Cvh2U6yS9eUtX4Bel1g xyIXQpoyKg+mj4pxlMm8e+j5ayb7NPeU0qtcDCXgaiOe0Lm5lqfaehhYoHUrmMdNuc3vyaN2k1rw 4UFCc9oWmIz0oyaWCxKctqJUd4VT15MEHYbsu/iPkkvFwz57hf+dpCdGL5pg9o00H0sy/Q+ADoI3 w0A7XD2P2cAL6gtbmS8q2IRxOoEOryzJvzAwjXiOz/2M8UBf9dJlb1b79A77geKzbw35cGLqjrnc uPtMD+AMLc4hTV6yzxwAAAABJRU5ErkJggg== Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Spam: no; 0.00; toplevel:01 dependencies:01 recompile:01 ocamlc:01 recompile:01 makefile:01 cmo:01 ocamlc:01 cmo:01 dependencies:01 cmi:01 caml-list:01 cma:01 cma:01 modules:02 > If I put everything into one big cma, then I have to recompile it every > small change. It takes so long time, that it would make no sense to use > the interpreter at all. in case you're doing so this way: ocamlc -o my.cma mod1.ml mod2.ml mod3.ml mod4.ml this will recompile everything, but you can use in your makefile: %.cmo: %.ml ocamlc.opt -c $< my.cma: mod1.cmo mod2.cmo mod3.cmo mod4.cmo ocamlc.opt -a -o $@ $^ then you don't recompile everything, only the modified module if there are dependencies between modules, just add additional rules: modfoo.cmo: modfoo.ml modbar.cmi