# $Id: Portfile 32422 2007-12-30 21:26:26Z eridius@macports.org $ PortSystem 1.0 name caml-findlib version 1.2.1 distfiles findlib-${version}.tar.gz worksrcdir findlib-${version} categories devel ml maintainers eridius@macports.org 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://www.ocaml-programming.de/programming/findlib.html platforms darwin master_sites http://www.ocaml-programming.de/packages/ extract.suffix .tar.gz build.target all opt checksums sha1 04af3e36ccaa4a5ba41773ee6118b825fd1dff90 \ md5 fa580a4c1fc28c06fe79aa1c98b6ef2d livecheck.check regex livecheck.regex "findlib-(.*?).tar.gz" depends_lib port:ocaml configure.args -bindir ${prefix}/bin \ -mandir ${prefix}/share/man \ -sitelib ${prefix}/lib/ocaml/site-lib configure.pre_args "" destroot.destdir prefix=${destroot} post-destroot { # `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] file mkdir ${destroot}${ocamlfind_destdir} # make a turd file so the directory doesn't get pruned when installing # I suppose I don't actually know if it prunes before or after this phase # but better to be safe than sorry close [open ${destroot}${ocamlfind_destdir}/.turd_${name} w] } post-activate { # Add our stublibs dir path to ld.conf set ocamlfind_destdir [file normalize ${prefix}/lib/ocaml/site-lib/stublibs] set ldconfpath [exec ${destroot}${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} { 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 doesn't actually exist # which annoys me, because it means I can't remove the line I added to ld.conf #pre-deactivate { # # remove our stublibs dir path from ld.conf # set ocamlfind_destdir [file normalize ${prefix}/lib/ocaml/site-lib/stublibs] # set ldconfpath ${destroot}[exec ${destroot}${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 { configure.args-append -with-toolbox depends_lib bin:lablgtk:lablgtk }