From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 790927FFB6 for ; Tue, 15 Mar 2016 23:57:04 +0100 (CET) IronPort-PHdr: 9a23:NfvaqREeiYBAY7+nKzA7951GYnF86YWxBRYc798ds5kLTJ75oMywAkXT6L1XgUPTWs2DsrQf27qQ6/mrADRIyK3CmU5BWaQEbwUCh8QSkl5oK+++Imq/EsTXaTcnFt9JTl5v8iLzG0FUHMHjew+a+SXqvnYsExnyfTB4Ov7yUtaLyZ/nh6bqotaKO01hv3mUX/BbFF2OtwLft80b08NJC50a7V/3mEZOYPlc3mhyJFiezF7W78a0+4N/oWwL46pyv+YJa6jxfrw5QLpEF3xmdjltvIy4/SXEGCCG439UdmQNjlIcCAHA6FT+X4ztmir8rOt0nieAa57YV7cxDBer7K5nVVe8iy4EPjIktmHehMV2haRSiB2krh17hYXTZdfGZ7JFYqrBcIZCFiJ6VcFLWnkEW9vkYg== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=kakadu.hafanana@gmail.com; spf=Pass smtp.mailfrom=kakadu.hafanana@gmail.com; spf=None smtp.helo=postmaster@mail-vk0-f41.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of kakadu.hafanana@gmail.com) identity=pra; client-ip=209.85.213.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of kakadu.hafanana@gmail.com designates 209.85.213.41 as permitted sender) identity=mailfrom; client-ip=209.85.213.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="kakadu.hafanana@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-vk0-f41.google.com) identity=helo; client-ip=209.85.213.41; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="kakadu.hafanana@gmail.com"; x-sender="postmaster@mail-vk0-f41.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0B4AQAekuhWkinVVdFeg2Q2bgaoOwQDhyKMZSOHIAc7EQEBAQEBAQEBEAEBAQEHCwsJIS+CLYItEQQZARseAxIQDwImAiQBEQEFASI1h28BAxIOn0aCB4ExPjGLNoFqgleFYwoZJw1RhB8BAQQKBW2MOoRhgToFjiqJJYIRg16IEoMmi1+NQREegQ82gkCBVDkuimMBAQE X-IPAS-Result: A0B4AQAekuhWkinVVdFeg2Q2bgaoOwQDhyKMZSOHIAc7EQEBAQEBAQEBEAEBAQEHCwsJIS+CLYItEQQZARseAxIQDwImAiQBEQEFASI1h28BAxIOn0aCB4ExPjGLNoFqgleFYwoZJw1RhB8BAQQKBW2MOoRhgToFjiqJJYIRg16IEoMmi1+NQREegQ82gkCBVDkuimMBAQE X-IronPort-AV: E=Sophos;i="5.24,341,1454972400"; d="scan'208";a="168831109" Received: from mail-vk0-f41.google.com ([209.85.213.41]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 15 Mar 2016 23:57:03 +0100 Received: by mail-vk0-f41.google.com with SMTP id e185so40619222vkb.1 for ; Tue, 15 Mar 2016 15:57:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to; bh=TFCRkC0TXFW2ff/3/Zg/r3P8eo73fq35XMsO+Jx5L0E=; b=tMjmpjTvLb1sQXfxJ88xjAJwUNsN05S71+VAQSxkI4lUQgcW8g2DQJ3IErqE5GJaZ1 Dm5++w/RqvV8rnaVFfZkEZSQpuX7SUv+hQ4wBTArJEScqdx+qhI9RFWgxAkhxlmgZFpl XauNTzKTftADS4y2Sc+HhJrAWBj/v2xmsCA///S4PuzqWOcsq8Hr0FRvQRhOPDeScZtW 0wz3M+3KM6W168Js4gGnyW7/R2uFUPdZ96gWCJ9hNtYWTPLGAVLo/YYlh2iIGjx1YzZ/ GmqtfSFChACfSAo1HEK4JL78DWHwhI0Rs0g0SOOrvlbci4d8t9ejhjg7nz34EP/MH9rU FRSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=TFCRkC0TXFW2ff/3/Zg/r3P8eo73fq35XMsO+Jx5L0E=; b=SCQlgAF3Lx0WR27ljywVMVbq32ldDpsboOhOcTesrPfUjb4yC1tmfyhIvBJN/om6eN wsuzXCzwp9DRsieSLJmJ63QLHOyti2OmGVWiiOBjgkIgvE4V/BvafBfqMpble+NNGpvr E0SUs+MshMgAnDlkHOht79m73aKsu+3rBI1u0LjYRk5iDLYMYfV2P19NWl0YZz9VEgTR bqwMgk5GljdPDKtGznCQIOmfYBSuW9boYqpbCG/XnZgZbAf3O40NzfoYpJu3ava48Gzp o1CyNHHbIhPAUhZHKCO1ju/EKd5g6eoo51h0guEvRdVIm7C3R+M3PPkxaCELHNTEMq6M DQEw== X-Gm-Message-State: AD7BkJLhNwDEmr2LH7kNleftoJGhI51Qa+WqLttLuqkT8nq4sJRbZHKoqyDW/eirxT80jTnDgo4RKXP/5gVhog== MIME-Version: 1.0 X-Received: by 10.31.58.83 with SMTP id h80mr634709vka.149.1458082621731; Tue, 15 Mar 2016 15:57:01 -0700 (PDT) Received: by 10.31.218.133 with HTTP; Tue, 15 Mar 2016 15:57:01 -0700 (PDT) Date: Wed, 16 Mar 2016 01:57:01 +0300 Message-ID: From: Kakadu To: Caml List Content-Type: text/plain; charset=UTF-8 Subject: [Caml-list] [OCamlbuild] Getting cmo's dependencies for linking Hey, folks. I'm experimenting with ocamlbuild to generate js_of_ocaml toplevel from my .cmo file. More precisely I'm rewriting js_of_ocaml toplevel demo [2] to use ocamlbuild as build system. The issue is that I can't understand how to get local cmos on which my main.cmo file depends. For example, the following rule definition doesn't link all dependent cmos to the .byte target let f env (_:builder) = let dep = env dep in let prod = env prod in let link_opts = link_opts prod in let tags = tags_of_pathname prod ++ "js_of_ocaml" in Cmd (S [A "jsoo_mktop"; (* T tags; *) (* S link_opts; *) A "-o"; Px prod; P dep]) in rule "js_of_ocaml toplevel: *.cmo -> .js" ~dep ~prod f; I looked a bit at ocamlbuild's sources for cmo -> byte target and it seems that it does some dark magic about reading dependencies generated by ocamldep and filtering only ones which have local cmo file or something like that [1]. I probably could copy and paste some functions from there to myocamlbuild.ml... but maybe there is more cleaner way? Regards, Kakadu [1] https://github.com/ocaml/ocamlbuild/blob/master/src/ocaml_compiler.ml#L264 [2] https://github.com/ocsigen/js_of_ocaml/tree/master/toplevel