svn commit: r383684 - in head/lang/pure: . files

Mikhail Teterin mi at FreeBSD.org
Fri Apr 10 00:54:13 UTC 2015


Author: mi
Date: Fri Apr 10 00:54:10 2015
New Revision: 383684
URL: https://svnweb.freebsd.org/changeset/ports/383684

Log:
  Unbreak by upgrading from 0.58 to 0.64 released last Autumn. The latest
  version supports all versions of LLVM except 3.6.
  
  While here:
  
  	* Make detection of the installed LLVM automatic, using the
  	  latest installed or 3.5 if none are present. It is possible
  	  to supply a different value by setting LLVM_VERSION.
  	  (Somebody ought to port llvm to the DEFAULT_VERSIONS framework.)
  	* Do not even download the docs, if the DOCS-option is off.
  	* If DOCS-option is on, do not install the *.tm files.
  	* Force the tool to look for documentation in ${DOCSDIR}.
  	* Add the functional regression-check target to Makefile.
  
  Approved by:	being condemned too often for too long

Added:
  head/lang/pure/files/patch-Makefile   (contents, props changed)
Modified:
  head/lang/pure/Makefile
  head/lang/pure/distinfo
  head/lang/pure/files/pkg-message.in
  head/lang/pure/pkg-plist

Modified: head/lang/pure/Makefile
==============================================================================
--- head/lang/pure/Makefile	Thu Apr  9 22:17:26 2015	(r383683)
+++ head/lang/pure/Makefile	Fri Apr 10 00:54:10 2015	(r383684)
@@ -2,12 +2,10 @@
 # $FreeBSD$
 
 PORTNAME=	pure
-PORTVERSION=	0.58
-PORTREVISION=	2
+PORTVERSION=	0.64
 CATEGORIES=	lang
 MASTER_SITES=	https://bitbucket.org/purelang/pure-lang/downloads/
-DISTFILES=	${PORTNAME}-${PORTVERSION}.tar.gz ${PORTNAME}-docs-${PORTVERSION}.tar.gz
-DIST_SUBDIR=	pure
+EXTRACT_ONLY=	${DISTNAME}.tar.gz
 
 MAINTAINER=	lichray at gmail.com
 COMMENT=	Modern-style functional programming language
@@ -15,24 +13,25 @@ COMMENT=	Modern-style functional program
 LICENSE=	GPLv3 LGPL3
 LICENSE_COMB=	dual
 
-LLVM_VERSION=	33
-
 LIB_DEPENDS=	libltdl.so:${PORTSDIR}/devel/libltdl \
 		libgmp.so:${PORTSDIR}/math/gmp \
-		libmpfr.so:${PORTSDIR}/math/mpfr
-BUILD_DEPENDS=	llvm-config${LLVM_VERSION}:${PORTSDIR}/devel/llvm${LLVM_VERSION}
-RUN_DEPENDS:=	${BUILD_DEPENDS}
+		libmpfr.so:${PORTSDIR}/math/mpfr \
+		libpcreposix.so:${PORTSDIR}/devel/pcre \
+		libLLVM-${LLVM_VERSION:C/./&./}.so:${PORTSDIR}/devel/llvm${LLVM_VERSION}
 
 SUB_FILES=	pkg-message
 
 USES=		gmake iconv pathfix pkgconfig
 GNU_CONFIGURE=	yes
 CONFIGURE_ARGS=	--with-libgmp-prefix=${LOCALBASE} --enable-release \
+		--with-pcre	\
 		--with-tool-prefix=${LOCALBASE}/llvm${LLVM_VERSION}/bin
+EXTRACT_AFTER_ARGS=--no-same-owner --no-same-permissions --exclude texmacs
 USE_LDCONFIG=	yes
 
 MAKE_ARGS+=	prefix=${PREFIX} mandir=${PREFIX}/man \
 		CC=${CC} CFLAGS="${CFLAGS}" \
+		PIC="-fPIC -DPIC" \
 		CXX=${CXX} CXXFLAGS="${CXXFLAGS}" \
 		CPPFLAGS+=-I${LOCALBASE}/include \
 		LDFLAGS+=-L${LOCALBASE}/lib
@@ -45,14 +44,43 @@ OPTIONS_DEFINE=	DOCS EMACS ETC EXAMPLES
 EMACS_DESC=	Compile pure-mode.el with Emacs
 ETC_DESC=	Copy Pure syntax highlighting to ${DATADIR}/etc
 
+.if !defined(LLVM_VERSION)
+.	for v in 33 34 35
+.		if exists(${LOCALBASE}/bin/llvm-config$v)
+LLVM_VERSION=	$v
+.		endif
+.	endfor
+.endif
+LLVM_VERSION?=	35	# Pure does not build with llvm36. Yet?
+SUB_LIST+=	LLVM_VERSION=${LLVM_VERSION}
+.if ${LLVM_VERSION} > 34
+CXXFLAGS+=	-std=c++11
+.endif
+
 OPTIONS_DEFAULT=	ETC
 
 OPTIONS_SUB=	yes
 
 EMACS_CONFIGURE_WITH=	elisp
 
+post-patch:
+	${REINPLACE_CMD} -e	\
+	    's,defcustom pure-docs-dir .*,defcustom pure-docs-dir "${DOCSDIR}",' \
+		${WRKSRC}/etc/pure-mode.el.in
+	${REINPLACE_CMD} \
+	    -e 's,default_doc =.*;$$,default_doc = "${DOCSDIR}/index.html";,' \
+	    -e 's,"+interp.libdir+"docs,${DOCSDIR},g' \
+		${WRKSRC}/lexer.cc
+
+test check regression-test: build
+	${GMAKE} -C ${WRKSRC} check
+
 .include <bsd.port.options.mk>
 
+.if ${PORT_OPTIONS:MDOCS}
+DISTFILES+=	${EXTRACT_ONLY} ${PORTNAME}-docs-${PORTVERSION}.tar.gz
+.endif
+
 .if ${PORT_OPTIONS:MEMACS}
 USE_EMACS=	yes
 MAKE_ARGS+=	emacs_prefix=${PREFIX}
@@ -69,27 +97,26 @@ SUB_LIST+=	NOCLANG="@comment "
 CONFIGURE_ARGS+=	--without-readline
 .endif
 
-CONFIGURE_TARGET=	${ARCH:S/amd64/x86_64/}-portbld-${OPSYS:tl}
-
 post-install:
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/pure	\
+		${STAGEDIR}${PREFIX}/lib/libpure.so.*.*
 .if ${PORT_OPTIONS:METC}
 	@${MKDIR} ${STAGEDIR}${DATADIR}/etc/
-	(cd ${WRKSRC} && ${RM} -f etc/*.in && \
-		${COPYTREE_SHARE} etc/ ${STAGEDIR}${DATADIR})
+	@(cd ${WRKSRC} && ${RM} -f etc/*.in && ${COPYTREE_SHARE} etc/ ${STAGEDIR}${DATADIR})
 .endif
 
 .if ${PORT_OPTIONS:MDOCS}
 	@${MKDIR} ${STAGEDIR}${DOCSDIR}
-	(cd ${WRKDIR}/${PORTNAME}-docs-${PORTVERSION} && \
-		${RM} -f Makefile && \
-		${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
-	${LN} -sf ${DOCSDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/docs
+	${TAR} -C ${STAGEDIR}${DOCSDIR} --strip-components 1	\
+		--exclude Makefile --exclude '*.tm'	\
+		${EXTRACT_AFTER_ARGS}	\
+		-xpf ${_DISTDIR}${_DISTFILES:M*-docs*}
+	${FIND} ${STAGEDIR}${DOCSDIR} -type f | ${XARGS} ${CHMOD} ${SHAREMODE}
 .endif
 
 .if ${PORT_OPTIONS:MEXAMPLES}
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
-	(cd ${WRKSRC}/examples && \
-		${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
+	@(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
 .endif
 
 .include <bsd.port.mk>

Modified: head/lang/pure/distinfo
==============================================================================
--- head/lang/pure/distinfo	Thu Apr  9 22:17:26 2015	(r383683)
+++ head/lang/pure/distinfo	Fri Apr 10 00:54:10 2015	(r383684)
@@ -1,4 +1,4 @@
-SHA256 (pure/pure-0.58.tar.gz) = b1f65c8fd6e41b7db60a11314d0ac996150b5593a84e930cd9c8bb6ad17e1ea0
-SIZE (pure/pure-0.58.tar.gz) = 1465322
-SHA256 (pure/pure-docs-0.58.tar.gz) = 4374949a3d78db6363d110322dc34c1f97c8c81688a126ccdba4b9b638953b85
-SIZE (pure/pure-docs-0.58.tar.gz) = 4816134
+SHA256 (pure-0.64.tar.gz) = efd55229342aec9d79e8fa4732a30f140e1773064f3869abde053e01468f7b07
+SIZE (pure-0.64.tar.gz) = 1491066
+SHA256 (pure-docs-0.64.tar.gz) = a140456f7d6feff8a15f5505a8fa3f9376afef88f1831ca98b93dc1d1764d110
+SIZE (pure-docs-0.64.tar.gz) = 4915840

Added: head/lang/pure/files/patch-Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/lang/pure/files/patch-Makefile	Fri Apr 10 00:54:10 2015	(r383684)
@@ -0,0 +1,18 @@
+Fix shared-library symlink to be relative (and local), rather than
+absolute.
+
+	-mi
+
+--- Makefile.in	2014-10-28 05:39:12.000000000 -0400
++++ Makefile.in	2015-04-09 19:41:53.000000000 -0400
+@@ -366,8 +366,8 @@
+ 	$(INSTALL) $(libpure) $(DESTDIR)$(libdir)/$(libpure)
+ ifneq ($(libpure), $(libpure_soname))
+-	ln -sf $(libdir)/$(libpure) $(DESTDIR)$(libdir)/$(libpure_soname)
++	ln -sf $(libpure) $(DESTDIR)$(libdir)/$(libpure_soname)
+ endif
+ ifneq ($(libpure), $(libpure_lnkname))
+-	ln -sf $(libdir)/$(libpure) $(DESTDIR)$(libdir)/$(libpure_lnkname)
++	ln -sf $(libpure) $(DESTDIR)$(libdir)/$(libpure_lnkname)
+ endif
+ endif

Modified: head/lang/pure/files/pkg-message.in
==============================================================================
--- head/lang/pure/files/pkg-message.in	Thu Apr  9 22:17:26 2015	(r383683)
+++ head/lang/pure/files/pkg-message.in	Fri Apr 10 00:54:10 2015	(r383684)
@@ -12,7 +12,7 @@ interpreter. Check pure(1) for details.
 %%NOCLANG%%
 %%NOCLANG%%To enable the inline C/C++ code compilation,
 %%NOCLANG%%
-%%NOCLANG%%	clang:	lang/clang32
+%%NOCLANG%%	clang:	lang/clang%%LLVM_VERSION%%
 %%NOCLANG%%
 %%NOCLANG%%is required.
 ====

Modified: head/lang/pure/pkg-plist
==============================================================================
--- head/lang/pure/pkg-plist	Thu Apr  9 22:17:26 2015	(r383683)
+++ head/lang/pure/pkg-plist	Fri Apr 10 00:54:10 2015	(r383684)
@@ -6,7 +6,6 @@ lib/libpure.so.8.0
 lib/pure/array.pure
 lib/pure/avltrees.pure
 lib/pure/dict.pure
-lib/pure/docs
 lib/pure/enum.pure
 lib/pure/faustui.pure
 lib/pure/getopt.pure


More information about the svn-ports-all mailing list