OCaml language support in ports

Stanislav Sedov ssedov at mbsd.msk.ru
Sat Jul 29 19:42:08 UTC 2006


        We have a lot of OCaml ports that provides additional language
        packages for OCaml language. Installing of such pacakge requites
        a lot of steps, e.g. running ocamlfind utility on install/deinstall
        with correct enviropment, updating OCaml-specific ld.conf on
        install/deinstall and other. As result ports become a bit complex
        and very large. You can see working examples in devel/ocaml-equeue,
        devel/ocaml-sem etc. This ports do similar work "by-hand" via
        pmake constructs and pkg-install script.

	I have submitted include to support OCaml language recently
	(http://www.freebsd.org/cgi/query-pr.cgi?pr=101029).

        This include simplifies creation on such ports. For example, the
        port for ocaml-xstr might look like this (this port isn't in
        ports collection yet):
        PORTNAME=       xstr
        PORTVERSION=    0.2.1
        CATEGORIES=     devel
        MASTER_SITES=   http://www.ocaml-programming.de/packages/
        PKGNAMEPREFIX=  ocaml-

        MAINTAINER=     ssedov at mbsd.msk.ru
        COMMENT=        Thread-safe implementation of string searching/matching

        WRKSRC=         ${WRKDIR}/${PORTNAME}
        USE_GMAKE=      yes
        USE_OCAML=      yes
        USE_OCAML_FINDLIB=      yes
        USE_OCAML_LDCONFIG=     yes

        .include <bsd.port.mk>

	And pkg-plist:
	%%OCAML_SITELIBDIR%%/xstr/META
	%%OCAML_SITELIBDIR%%/xstr/xstr.cma
	%%OCAML_SITELIBDIR%%/xstr/xstr_match.cmi
	%%OCAML_SITELIBDIR%%/xstr/xstr_match.mli
	%%OCAML_SITELIBDIR%%/xstr/xstr_search.cmi
	%%OCAML_SITELIBDIR%%/xstr/xstr_search.mli
	%%OCAML_SITELIBDIR%%/xstr/xstr_split.cmi
	%%OCAML_SITELIBDIR%%/xstr/xstr_split.mli

        Simple, isn't it? Compare with ocaml-sem - it does the same steps.

        The include doesn't interfere with ports available, and sufficient
        for ocaml-* ports needs (hopely).

	I paid a great deal of attention to make ports to honor PREFIX - 
	current findlib ports doesn't do this. This include will automatically
	honor PREFIX - but in case of non-standard on you should handle
	SITELIBDIR deletion by hand. Additionally, include automatically
	adds OCAML_SITELIBDIR to PLIST_SUB.

	It would be nice to have your opinions/suggestions/blames/flames
	here. Especially, ocaml-* ports maintainers.

	Thanks!

-- 
Stanislav Sedov         MBSD labs, Inc.         <ssedov at mbsd.msk.ru>
Россия, Москва         http://mbsd.msk.ru

--------------------------------------------------------------------
If the facts don't fit the theory, change the facts.  -- A. Einstein
--------------------------------------------------------------------
PGP fingerprint:  F21E D6CC 5626 9609 6CE2  A385 2BF5 5993 EB26 9581
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20060729/d589b0ed/signature.pgp


More information about the freebsd-ports mailing list