Date: Mon, 31 Jul 2006 18:19:09 +0400 (MSD) From: Stanislav Sedov <ssedov@mbsd.msk.ru> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/101100: [NEW PORT] devel/ocaml-camlidl: A stub code generator for using C/C++ libraries from ocaml Message-ID: <20060731141909.D065711F64@fonon.realnet> Resent-Message-ID: <200607311420.k6VEK9Gj073399@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 101100 >Category: ports >Synopsis: [NEW PORT] devel/ocaml-camlidl: A stub code generator for using C/C++ libraries from ocaml >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Jul 31 14:20:09 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Stanislav Sedov >Release: FreeBSD 7.0-CURRENT i386 >Organization: MBSD labs, Inc. >Environment: System: FreeBSD fonon.realnet 7.0-CURRENT FreeBSD 7.0-CURRENT #7: Sun Jun 18 20:51:36 MSD 2006 >Description: CamlIDL is a stub code generator and COM binding for Objective Caml. CamlIDL comprises two parts: * A stub code generator that generates the C stub code required for the Caml/C interface, based on an MIDL specification. (MIDL stands for Microsoft's Interface Description Language; it looks like C header files with some extras annotations, plus a notion of object interfaces that look like C++ classess without inheritance.) * A (currently small) library of functions and tools to import COM components in Caml applications, and export Caml code as COM components. WWW: http://caml.inria.fr/pub/old_caml_site/camlidl/ I've decided to add bsd.ocaml.mk to ditribution, since it was't committed to HEAD yet. >How-To-Repeat: >Fix: --- ocaml-camlidl-1.05.shar begins here --- # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # ocaml-camlidl # ocaml-camlidl/pkg-descr # ocaml-camlidl/Makefile # ocaml-camlidl/pkg-plist # ocaml-camlidl/bsd.ocaml.mk # ocaml-camlidl/distinfo # echo c - ocaml-camlidl mkdir -p ocaml-camlidl > /dev/null 2>&1 echo x - ocaml-camlidl/pkg-descr sed 's/^X//' >ocaml-camlidl/pkg-descr << 'END-of-ocaml-camlidl/pkg-descr' XCamlIDL is a stub code generator and COM binding for Objective Caml. X XCamlIDL comprises two parts: X X * A stub code generator that generates the C stub code required for the XCaml/C interface, based on an MIDL specification. (MIDL stands for Microsoft's XInterface Description Language; it looks like C header files with some extras Xannotations, plus a notion of object interfaces that look like C++ classess Xwithout inheritance.) X X * A (currently small) library of functions and tools to import COM Xcomponents in Caml applications, and export Caml code as COM components. X XWWW: http://caml.inria.fr/pub/old_caml_site/camlidl/ END-of-ocaml-camlidl/pkg-descr echo x - ocaml-camlidl/Makefile sed 's/^X//' >ocaml-camlidl/Makefile << 'END-of-ocaml-camlidl/Makefile' X# New ports collection makefile for: camlidl X# Date created: 2006-07-31 X# Whom: Stanislav Sedov <ssedov@mbsd.msk.ru> X# X# $MBSDlabs$ X# $FreeBSD$ X# X XPORTNAME= camlidl XPORTVERSION= 1.05 XCATEGORIES= devel XMASTER_SITES= http://caml.inria.fr/distrib/bazar-ocaml/ XPKGNAMEPREFIX= ocaml- XDISTFILES+= ${PORTNAME}-${PORTVERSION}.doc.html.tar.gz XEXTRACT_ONLY= ${PORTNAME}-${PORTVERSION}${EXTRACT_SUFX} X XMAINTAINER= ssedov@mbsd.msk.ru XCOMMENT= A stub code generator for using C/C++ libraries from ocaml X XUSE_OCAML= yes XPORTDOCS= * X XMASTERPORT= ${PORTSDIR}/devel/ocaml-camlidl X X.include <bsd.port.pre.mk> X.include "${MASTERPORT}/bsd.ocaml.mk" X Xpost-extract: X @${REINPLACE_CMD} -e "s,^\(OCAMLLIB=\).*,\1${PREFIX}/lib/ocaml,g" \ X -e "s,^\(BINDIR=\).*,\1${PREFIX}/bin,g" \ X -e "s,^CFLAGS=.*,#\&,g" \ X -e "s,^\(CPP=\).*,\1/usr/bin/cpp,g" \ X ${WRKSRC}/config/Makefile.unix X X @${REINPLACE_CMD} -e \ X "/^install/,/^$$/s,\([ \t]*\)cp,\1${INSTALL_SCRIPT},g" \ X ${WRKSRC}/compiler/Makefile X X @${REINPLACE_CMD} -e \ X "/^install/,/^$$/s,\([ \t]*\)cp,\1${INSTALL_DATA},g" \ X ${WRKSRC}/lib/Makefile ${WRKSRC}/runtime/Makefile.unix X X @${LN} -sf ${WRKSRC}/config/Makefile.unix ${WRKSRC}/config/Makefile X Xpre-install: X.if !exists(${PREFIX}/lib/ocaml) X ${MKDIR} ${PREFIX}/lib/ocaml X @${ECHO_CMD} "@dirrm lib/ocaml" >> ${TMPPLIST} X.endif X X.if !exists(${PREFIX}/lib/ocaml/caml) X ${MKDIR} ${PREFIX}/lib/ocaml/caml X @${ECHO_CMD} "@dirrm lib/ocaml/caml" >> ${TMPPLIST} X.endif X Xpost-install: X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR} X ${TAR} -C ${DOCSDIR} -xf \ X ${_DISTDIR}/${PORTNAME}-${PORTVERSION}.doc.html.tar.gz X ${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${DOCSDIR} X ${FIND} ${DOCSDIR}/ -type f -exec chmod ${SHAREMODE} {} \; X.endif X Xtest: X @${ECHO_CMD} "Testing IDL library" X @${REINPLACE_CMD} -e "s,^\(CCPP=\).*,\1${CXX},g" \ X ${WRKSRC}/tests/Makefile X cd ${WRKSRC}/tests && ${SETENV} ${MAKE_ENV} ${MAKE} all X X.include <bsd.port.post.mk> END-of-ocaml-camlidl/Makefile echo x - ocaml-camlidl/pkg-plist sed 's/^X//' >ocaml-camlidl/pkg-plist << 'END-of-ocaml-camlidl/pkg-plist' Xbin/camlidl Xlib/ocaml/caml/camlidlruntime.h Xlib/ocaml/com.a Xlib/ocaml/com.cma Xlib/ocaml/com.cmi Xlib/ocaml/com.cmxa Xlib/ocaml/libcamlidl.a END-of-ocaml-camlidl/pkg-plist echo x - ocaml-camlidl/bsd.ocaml.mk sed 's/^X//' >ocaml-camlidl/bsd.ocaml.mk << 'END-of-ocaml-camlidl/bsd.ocaml.mk' X# ex:ts=4 X# X# $MBSDlabs: portmk/bsd.ocaml.mk,v 1.14 2006/07/29 18:54:54 stas Exp $ X# $FreeBSD$ X# X# bsd.ocaml.mk - Support for the Objective Caml language packages X# X# Author: Stanislav Sedov <ssedov@mbsd.msk.ru> X# X# Feel free to send any comments and suggestions to maintainer. X# X# Currently recognised variables are: X# X# USE_OCAML - Set if your port uses OCaml to build/install. X# NO_OCAML_BUILDDEPENDS - Don't add ocamlc to BUILD|EXTRACT|PATCH_DEPENDS. X# NO_OCAML_RUNDEPENDS - Don't add ocamlc to RUN_DEPENDS. X# USE_OCAML_FINDLIB - Set if your port uses ocamlfind to install X# packages. Package direcories will be X# automatically deleted. X# USE_OCAML_LDCONFIG - Set if your port installs shared libraries X# into ocaml site-lib dir. OCaml ld.conf file X# will be automatically processed. X# OCAML_PKGDIRS - Directories under site-lib to be processed X# if USE_OCAML_FINDLIB specified. X# Default: ${PORTNAME} X# OCAML_LDLIBS - Directories under PREFIX to be automatically X# added/removed from ld.conf X# Default: ${OCAML_SITELIBDIR}/${PORTNAME} X X.if !defined(OCAML_include) X XOCAML_MAINTAINER= ssedov@mbsd.msk.ru XOCAML_include= bsd.ocaml.mk X X# X# OCaml programs location X# XOCAMLC?= ${LOCALBASE}/bin/ocamlc XOCAMLC_OPT?= ${LOCALBASE}/bin/ocamlc.opt XOCAMLCP?= ${LOCALBASE}/bin/ocamlcp XOCAMLFIND?= ${LOCALBASE}/bin/ocamlfind X X# X# Where to install site libraries X# XOCAML_SITELIBDIR?= lib/ocaml/site-lib X X# X# OCaml compiler port dependency X# XOCAMLC_PORT?= ${PORTSDIR}/lang/ocaml XOCAMLC_DEPEND?= ${OCAMLC}:${OCAMLC_PORT} X X# X# OCaml package manager port dependency X# XOCAMLFIND_PORT?= ${PORTSDIR}/devel/ocaml-findlib XOCAMLFIND_DEPEND?= ${OCAMLFIND}:${OCAMLFIND_PORT} X X# X# Location of OCaml ld.conf file X# XOCAML_LDCONF?= lib/ocaml/ld.conf X XOCAMLFIND_DESTDIR?= ${PREFIX}/${OCAML_SITELIBDIR} XOCAMLFIND_LDCONF?= ${PREFIX}/${OCAML_LDCONF} X X.if defined(USE_OCAML) X. if !defined(NO_OCAML_BUILDDEPENDS) XEXTRACT_DEPENDS+= ${OCAMLC_DEPEND} XPATCH_DEPENDS+= ${OCAMLC_DEPEND} XBUILD_DEPENDS+= ${OCAMLC_DEPEND} X. endif X. if !defined(NO_OCAML_RUNDEPENDS) XRUN_DEPENDS+= ${OCAMLC_DEPEND} X. endif XPLIST_SUB+= OCAML_SITELIBDIR="${OCAML_SITELIBDIR}" X.endif X X.if defined(USE_OCAML_FINDLIB) || defined(USE_OCAML_LDCONFIG) X. if !target(post-install-script) Xpost-install-script: ocaml-findlib ocaml-ldconfig X. endif X.endif X X.if defined(USE_OCAML_FINDLIB) X# X# We'll additionally add ocamlfind to RUN_DEPENDS, since X# if the port requires ocamlfind to install - it requires X# some ocaml libraries and these libraries RUN_DEPENDS on X# ocamlfind X# XBUILD_DEPENDS+= ${OCAMLFIND_DEPEND} XRUN_DEPENDS+= ${OCAMLFIND_DEPEND} XMAKE_ENV+= OCAMLFIND_DESTDIR="${OCAMLFIND_DESTDIR}" \ X OCAMLFIND_LDCONF="${OCAMLFIND_LDCONF}" X X# X# Directories under site-lib to process automatically X# XOCAML_PKGDIRS?= ${PORTNAME} X. if !target(pre-install-script) Xpre-install-script: X.if !exists(${OCAMLFIND_DESTDIR}) X @${MKDIR} "${PREFIX}/${OCAML_SITELIBDIR}" X.endif X. endif X. if !target(ocaml-findlib) Xocaml-findlib: X. for DIR in ${OCAML_PKGDIRS} X @${ECHO_CMD} "@unexec rmdir %D/${OCAML_SITELIBDIR}/${DIR} 2>/dev/null || true" >> ${TMPPLIST} X @${ECHO_CMD} "@unexec ${OCAMLFIND} remove ${DIR} 2>/dev/null" \ X >> ${TMPPLIST} X. endfor X. endif X.endif X X.if defined(USE_OCAML_LDCONFIG) X# X# Directories under PREFIX for appending to ld.conf X# XOCAML_LDLIBS?= ${OCAML_SITELIBDIR}/${PORTNAME} X. if !target(ocaml-ldconfig) Xocaml-ldconfig: X. for LIB in ${OCAML_LDLIBS} X @${ECHO_CMD} "${PREFIX}/${LIB}" >> "${PREFIX}/${OCAML_LDCONF}" X @${ECHO_CMD} "@exec ${ECHO_CMD} "%D/${LIB}" >> %D/${OCAML_LDCONF}" \ X >> ${TMPPLIST} X @${ECHO_CMD} "@unexec ${SED} -i \"\" -e '/${LIB:S#/#\/#g}/d' %D/${OCAML_LDCONF}" >> ${TMPPLIST} X. endfor X. endif X.endif X X.if !target(ocaml-findlib) Xocaml-findlib: X @${DO_NADA} X.endif X X.if !target(ocaml-ldconfig) Xocaml-ldconfig: X @${DO_NADA} X.endif X X.endif END-of-ocaml-camlidl/bsd.ocaml.mk echo x - ocaml-camlidl/distinfo sed 's/^X//' >ocaml-camlidl/distinfo << 'END-of-ocaml-camlidl/distinfo' XMD5 (camlidl-1.05.doc.html.tar.gz) = b7c7dad3ba62ddcc0f687bdebe295126 XSHA256 (camlidl-1.05.doc.html.tar.gz) = 00ac7822ec73cb3cb5cb23b5d34879436366d979887eb3a312e1adcae8c1c32c XSIZE (camlidl-1.05.doc.html.tar.gz) = 45945 END-of-ocaml-camlidl/distinfo exit --- ocaml-camlidl-1.05.shar ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060731141909.D065711F64>