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.7 required=5.0 tests=AWL,RCVD_IN_SORBS_WEB autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 2CD67BC50; Mon, 2 Oct 2006 16:52:57 +0200 (CEST) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id k92Eqsmq007504; Mon, 2 Oct 2006 16:52:56 +0200 Received: from [84.58.138.78] (helo=gate.lan.gerd-stolpmann.de) by mrelayeu.kundenserver.de (node=mrelayeu4) with ESMTP (Nemesis), id 0ML21M-1GUP9z4AEI-0002mv; Mon, 02 Oct 2006 16:52:48 +0200 Received: from flakew.lan.gerd-stolpmann.de (fw.lan.gerd-stolpmann.de [192.168.1.1]) by gate.lan.gerd-stolpmann.de (Postfix) with ESMTP id A89A1C35E; Mon, 2 Oct 2006 16:52:45 +0200 (CEST) Subject: Re: [Caml-list] findlib help: how to specify dependencies against non-findlib packages ? From: Gerd Stolpmann To: Guillaume Rousse Cc: caml-list@inria.fr In-Reply-To: <4521145C.9020404@inria.fr> References: <4520DABC.8080409@inria.fr> <1159785192.13405.14.camel@localhost.localdomain> <4521145C.9020404@inria.fr> Content-Type: text/plain Date: Mon, 02 Oct 2006 16:52:44 +0200 Message-Id: <1159800765.13405.34.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Provags-ID: kundenserver.de abuse@kundenserver.de login:a6865a839c0178d9aa0ce41878507ea2 X-Miltered: at concorde with ID 452127C6.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; findlib:01 dependencies:01 gerd:01 stolpmann:01 guillaume:01 gerd:01 stolpmann:01 guillaume:01 camlimages:01 findlib:01 camlimages:01 lablgtk:01 lablgtk:01 linkopts:01 flags:01 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. 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. 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 Gerd -- ------------------------------------------------------------ Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany gerd@gerd-stolpmann.de http://www.gerd-stolpmann.de Phone: +49-6151-153855 Fax: +49-6151-997714 ------------------------------------------------------------