Revision: 96033 https://trac.macports.org/changeset/96033 Author: mww@macports.org Date: 2012-07-29 06:04:47 -0700 (Sun, 29 Jul 2012) Log Message: ----------- ocaml3-findlib: new port -- clone ocaml-findlib for ocaml3 Added Paths: ----------- trunk/dports/devel/ocaml3-findlib/ trunk/dports/devel/ocaml3-findlib/Portfile trunk/dports/devel/ocaml3-findlib/files/camlp4find Removed Paths: ------------- trunk/dports/devel/ocaml3-findlib/Portfile Deleted: trunk/dports/devel/ocaml3-findlib/Portfile =================================================================== --- trunk/dports/devel/ocaml-findlib/Portfile 2012-07-02 08:39:58 UTC (rev 94908) +++ trunk/dports/devel/ocaml3-findlib/Portfile 2012-07-29 13:04:47 UTC (rev 96033) @@ -1,108 +0,0 @@ -# $Id$ - -PortSystem 1.0 - -name ocaml-findlib -version 1.3.2 -revision 2 -distname findlib-${version} -categories devel ml -maintainers mww openmaintainer -platforms darwin -license MIT -description Objective Caml library management system -long_description The findlib library provides a scheme to manage reusable \ - software components (packages), and includes tools that support \ - this scheme. Packages are collections of OCaml modules for which \ - metainformation can be stored. The packages are kept in the filesystem \ - hierarchy, but with strict directory structure. The library contains \ - functions to look the directory up that stores a package, to query \ - metainformation about a package, and to retrieve dependency information \ - about multiple packages. There is also a tool that allows the user to \ - enter queries on the command-line. In order to simplify compilation and \ - linkage, there are new frontends of the various OCaml compilers that \ - can directly deal with packages. -homepage http://projects.camlcity.org/projects/findlib.html -master_sites http://download.camlcity.org/download/ -checksums rmd160 74045383f9e1f46c56dd2596199f8f7071705960 \ - sha256 056450c2449aee2a61335cfa1d96f2fb1a14ad50bcd99d7ddf9308307ba90bc3 - -livecheck.type regex -livecheck.regex "findlib-(.*?).tar.gz" - -depends_lib port:ocaml - -patchfiles patch-site-lib-src-camlp4.310-META.in.diff - -configure.args -bindir ${prefix}/bin \ - -mandir ${prefix}/share/man \ - -sitelib ${prefix}/lib/ocaml/site-lib - -configure.pre_args "" - -use_parallel_build no -build.target all opt - -destroot.destdir prefix=${destroot} - -universal_variant no - -# `ocamlfind printconf destdir` returns nothing if the dir isn't in place -# but we know it's the same as our site-lib dir -set ocamlfind_destdir [file normalize ${prefix}/lib/ocaml/site-lib/stublibs] -destroot.keepdirs ${destroot}${ocamlfind_destdir} -post-destroot { - file mkdir ${destroot}${ocamlfind_destdir} -} - -post-activate { - # Add our stublibs dir path to ld.conf - set ldconfpath [exec ${prefix}/bin/ocamlfind printconf ldconf] - # ld.conf should exist since ocaml is installed, but lets just be safe anyway - if {[file exists $ldconfpath]} then { - # make sure ld.conf doesn't already have this line, so if the user installs, - # uninstalls, then installs again, we won't duplicate it - set has_line 0 - set ldconf [open $ldconfpath r+] - while {[gets $ldconf line] != -1 && !$has_line} { - if {[string equal $line $ocamlfind_destdir]} then { - set has_line 1 - } - } - if {!$has_line} { - if {${registry.format} == "receipt_flat"} { - ui_msg "## Adding line `${ocamlfind_destdir}' to file ${ldconfpath}" - ui_msg "## Be sure to remove this line if you uninstall ${name}" - } - puts $ldconf $ocamlfind_destdir - } - close $ldconf - } else { - ui_warn "File ${ldconfpath} doesn't seem to be installed." - ui_warn "Is ocaml installed properly?" - } -} - -pre-deactivate { - # remove our stublibs dir path from ld.conf - set ocamlfind_destdir [file normalize ${prefix}/lib/ocaml/site-lib/stublibs] - set ldconfpath [exec ${prefix}/bin/ocamlfind printconf ldconf] - set ldconfoutpath [file dirname $ldconfpath]/.[file tail $ldconfpath]~ - if {[file exists $ldconfpath]} then { - set ldconf [open $ldconfpath r] - set ldconfout [open $ldconfoutpath w] - while {[gets $ldconf line] != -1} { - if {![string equal $line $ocamlfind_destdir]} { - puts $ldconfout $line - } - } - close $ldconfout - close $ldconf - file rename -force $ldconfoutpath $ldconfpath - } -} - -variant toolbox description {build the toolbox wizard, requires labltk} { - configure.args-append -with-toolbox - depends_lib bin:lablgtk:lablgtk -} Copied: trunk/dports/devel/ocaml3-findlib/Portfile (from rev 95084, trunk/dports/devel/ocaml-findlib/Portfile) =================================================================== --- trunk/dports/devel/ocaml3-findlib/Portfile (rev 0) +++ trunk/dports/devel/ocaml3-findlib/Portfile 2012-07-29 13:04:47 UTC (rev 96033) @@ -0,0 +1,112 @@ +# $Id$ + +PortSystem 1.0 + +name ocaml3-findlib +version 1.3.2 +distname findlib-${version} +categories devel ml +maintainers mww openmaintainer +platforms darwin +license MIT +description Objective Caml library management system +long_description The findlib library provides a scheme to manage reusable \ + software components (packages), and includes tools that support \ + this scheme. Packages are collections of OCaml modules for which \ + metainformation can be stored. The packages are kept in the filesystem \ + hierarchy, but with strict directory structure. The library contains \ + functions to look the directory up that stores a package, to query \ + metainformation about a package, and to retrieve dependency information \ + about multiple packages. There is also a tool that allows the user to \ + enter queries on the command-line. In order to simplify compilation and \ + linkage, there are new frontends of the various OCaml compilers that \ + can directly deal with packages. +homepage http://projects.camlcity.org/projects/findlib.html +master_sites http://download.camlcity.org/download/ +checksums rmd160 74045383f9e1f46c56dd2596199f8f7071705960 \ + sha256 056450c2449aee2a61335cfa1d96f2fb1a14ad50bcd99d7ddf9308307ba90bc3 + +livecheck.type regex +livecheck.regex "findlib-(.*?).tar.gz" + +depends_lib port:ocaml3 + +patchfiles patch-site-lib-src-camlp4.310-META.in.diff + +configure.env-append PATH=${prefix}/libexec/ocaml3:$env(PATH) +configure.args -bindir ${prefix}/libexec/ocaml3 \ + -mandir ${prefix}/share/man \ + -sitelib ${prefix}/lib/ocaml3/site-lib \ + -config ${prefix}/etc/ocaml3/findlib.conf + +configure.pre_args "" + +use_parallel_build no +build.env-append PATH=${prefix}/libexec/ocaml3:$env(PATH) +build.target all opt + +destroot.destdir prefix=${destroot} + +universal_variant no + +# `ocamlfind printconf destdir` returns nothing if the dir isn't in place +# but we know it's the same as our site-lib dir +set ocamlfind_destdir ${prefix}/lib/ocaml3/site-lib/stublibs +destroot.keepdirs ${destroot}${ocamlfind_destdir} +post-destroot { + xinstall -m 755 -d ${destroot}${ocamlfind_destdir} + xinstall -m 755 ${filespath}/camlp4find ${destroot}${prefix}/libexec/ocaml3/camlp4find + delete ${destroot}${prefix}/share/man +} + +post-activate { + # Add our stublibs dir path to ld.conf + set ldconfpath [exec ${prefix}/libexec/ocaml3/ocamlfind printconf ldconf] + # ld.conf should exist since ocaml is installed, but lets just be safe anyway + if {[file exists $ldconfpath]} then { + # make sure ld.conf doesn't already have this line, so if the user installs, + # uninstalls, then installs again, we won't duplicate it + set has_line 0 + set ldconf [open $ldconfpath r+] + while {[gets $ldconf line] != -1 && !$has_line} { + if {[string equal $line $ocamlfind_destdir]} then { + set has_line 1 + } + } + if {!$has_line} { + if {${registry.format} == "receipt_flat"} { + ui_msg "## Adding line `${ocamlfind_destdir}' to file ${ldconfpath}" + ui_msg "## Be sure to remove this line if you uninstall ${name}" + } + puts $ldconf $ocamlfind_destdir + } + close $ldconf + } else { + ui_warn "File ${ldconfpath} doesn't seem to be installed." + ui_warn "Is ocaml installed properly?" + } +} + +pre-deactivate { + # remove our stublibs dir path from ld.conf + set ocamlfind_destdir [file normalize ${prefix}/lib/ocaml3/site-lib/stublibs] + set ldconfpath [exec ${prefix}/libexec/ocaml3/ocamlfind printconf ldconf] + set ldconfoutpath [file dirname $ldconfpath]/.[file tail $ldconfpath]~ + if {[file exists $ldconfpath]} then { + set ldconf [open $ldconfpath r] + set ldconfout [open $ldconfoutpath w] + while {[gets $ldconf line] != -1} { + if {![string equal $line $ocamlfind_destdir]} { + puts $ldconfout $line + } + } + close $ldconfout + close $ldconf + file rename -force $ldconfoutpath $ldconfpath + } +} + +variant toolbox description {build the toolbox wizard, requires labltk} { + configure.args-append -with-toolbox + depends_lib bin:lablgtk:lablgtk +} Copied: trunk/dports/devel/ocaml3-findlib/files/camlp4find (from rev 95032, trunk/dports/devel/ocaml-findlib/files/camlp4find) =================================================================== --- trunk/dports/devel/ocaml3-findlib/files/camlp4find (rev 0) +++ trunk/dports/devel/ocaml3-findlib/files/camlp4find 2012-07-29 13:04:47 UTC (rev 96033) @@ -0,0 +1,69 @@ +#!/bin/sh + +# A camlp4o/ocamlfind combo +# Public Domain. Use at your own risk. +# Please report bugs and fixes to Martin Jambon <martin_jambon@emailuser.net> +# Thanks to Gerd Stolpmann + +src='' +pkg='' +syntax='camlp4o' +libfiles='' + +usage(){ + echo 'camlp4find is a preprocessing command which can be used instead +of camlp4o or camlp4r in order to use ocamlfind packages. + +Usage: camlp4find [camlp4o|camlp4r] [packages] [files to parse] + camlp4find -echo + camlp4find -help + +A "file to parse" can be specified as follows: + somefile.ml + somefile.mli + -impl anyfile + -intf anyfile + +-echo displays the command which should be executed and exits + +-help displays this message + +Example: + +The following command assumes that the packages pa_tryfinally, pa_openin +and micmatch_pcre are installed. pr_o.cmo is the standard module which +will generate a human-readable output for the preprocessed OCaml code. +The file to process does not end in .ml, so we have to use the -impl +option exactly like with camlp4o: + + camlp4find pa_tryfinally pa_openin micmatch_pcre pr_o.cmo -impl somefile.mml +' 1>&2 + exit 2 +} + +while : ; do + case "$1" in + "") break;; + camlp4o) syntax=camlp4o;; + camlp4r) syntax=camlp4r;; + -impl) shift; src="$src -impl $1";; + -intf) shift; src="$src -intf $1";; + *.ml) src="$src $1";; + *.cmo|*.cma) libfiles="$libfiles $1";; + -echo) echo=true;; + -*) usage;; + *) pkg="$pkg $1";; + esac + shift +done + +i_options=`ocamlfind query -predicates "syntax,preprocessor,$syntax" \ +$pkg -i-format` +a_options=`ocamlfind query -predicates "syntax,preprocessor,$syntax" \ +$pkg -a-format` + +cmd="$syntax $i_options $a_options -I +camlp4 $libfiles $src" +if [ -z "$echo" ] +then exec $cmd +else echo $cmd +fi
participants (1)
-
mww@macports.org