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,MISSING_HEADERS autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 24ABCBC50 for ; Mon, 2 Oct 2006 17:39:04 +0200 (CEST) Received: from [128.93.8.195] (alceste.inria.fr [128.93.8.195]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id k92Fd3FZ007359 for ; Mon, 2 Oct 2006 17:39:03 +0200 Message-ID: <45213297.9010205@inria.fr> Date: Mon, 02 Oct 2006 17:39:03 +0200 From: Guillaume Rousse User-Agent: Thunderbird 1.5.0.7 (X11/20060915) MIME-Version: 1.0 Cc: caml-list@inria.fr Subject: Re: [Caml-list] findlib help: how to specify dependencies against non-findlib packages ? References: <4520DABC.8080409@inria.fr> <1159785192.13405.14.camel@localhost.localdomain> <4521145C.9020404@inria.fr> <1159800765.13405.34.camel@localhost.localdomain> In-Reply-To: <1159800765.13405.34.camel@localhost.localdomain> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Miltered: at discorde with ID 45213297.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; guillaume:01 guillaume:01 findlib:01 dependencies:01 gerd:01 stolpmann:01 gerd:01 stolpmann:01 camlimages:01 findlib:01 camlimages:01 lablgtk:01 lablgtk:01 linkopts:01 flags:01 Gerd Stolpmann wrote: > Am Montag, den 02.10.2006, 15:30 +0200 schrieb Guillaume Rousse: >> Gerd Stolpmann wrote: >>> Am Montag, den 02.10.2006, 11:24 +0200 schrieb Guillaume Rousse: >>>> I'm trying to add findlibsupport for camlimages. >>>> >>>> It has a dependency on graphics, which is easily handled by adding a >>>> require variable in META file, as graphics provides findlib support. >>>> >>>> However, camlimages can also get compiled with either lablgtk or >>>> lablgtk2 support (not both of them, as they have conflicting symbols), >>>> but none of those packages have findlib support. It means I can't >>>> ressort to smart dependency computation. I may eventually use the >>>> linkopts variable to add explicit linking flags (such as -I >>>> place/to/lablgtk2 lablgtk.cma), but this seem to be only possible for >>>> linking, not for compiling, whereas I also need to pass -I >>>> place/to/lablgtk2 option during compilation. >>>> >>>> So, is this just not possible at all ? >>> Of course, it is possible: ... > >> I'm speaking of incoming camlimages 3.0.0 release, not of camlimages >> packages in some distribution. I can't interfere with already existing >> lablgtk/lablgtk2 installation, unless there is a way to do it privately >> to camlimages itself. > > Sorry, I misunderstood you. > > In general, findlib assumes that prerequisite packages already have > findlib support. There is no clean built-in way to cope with the > situation, simply because if several packages depended on lablgtk and > fixed the missing META file in their own way it would not be possible to > resolve dependencies cleanly anymore. > > What you can still do is to define a subpackage > camlimages.lablgtk_substitute (syntax see below) and to depend on this > subpackage if you see that lablgtk is installed without META file > (otherwise just depend on lablgtk). This subpackage contains the > substitute for the missing META file. However, as said this is no really > clean solution but probably the best you can do. The cleaner solution would be to push META support to lablgtk maintainer directly. Does anyone already tried ? > You can define subpackages in META files with this syntax: > > > package "lablgtk_substitute" ( > > ) > > The subpackage can then be referred to as camlimages.lablgtk_substitute. > For a complete example see the camlp4 META file coming with findlib. > > As lablgtk is usually installed below the standard library directory, > you can refer to this directory using > > directory = "+lablgtk" > > Hope this helps. That was exactly what I needed, thanks. I just have to handle the conditional META support in lablgtk now. > You might also be interested in how GODI generates a > META file for the current version of camlimages (it assumes, however, > that lablgtk is installed _with_ META file): > > https://gps.dynxs.de/svn/godi-build/trunk/godi/godi-camlimages/create-META Well, I hope this won't be necessary anymore with next release, if I understood correctly how to generate it myself. You're welcome to checkout current CVS version of camlimages to check. -- Guillaume Rousse Projet Estime, INRIA Domaine de Voluceau Rocquencourt - B.P. 105 78153 Le Chesnay Cedex - France