summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--devel/Makefile1
-rw-r--r--devel/py-llvmlite/Makefile36
-rw-r--r--devel/py-llvmlite/distinfo3
-rw-r--r--devel/py-llvmlite/pkg-descr17
4 files changed, 57 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index accf309ab61f..3351c526d3d8 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4229,6 +4229,7 @@
SUBDIR += py-libzfs
SUBDIR += py-ll-core
SUBDIR += py-llfuse
+ SUBDIR += py-llvmlite
SUBDIR += py-lock_file
SUBDIR += py-lockfile
SUBDIR += py-log4py
diff --git a/devel/py-llvmlite/Makefile b/devel/py-llvmlite/Makefile
new file mode 100644
index 000000000000..e573557a6b37
--- /dev/null
+++ b/devel/py-llvmlite/Makefile
@@ -0,0 +1,36 @@
+# Created by: David Kalliecharan <dave@dal.ca>
+# $FreeBSD$
+
+PORTNAME= llvmlite
+PORTVERSION= 0.13.0
+CATEGORIES= devel python
+MASTER_SITES= CHEESESHOP
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= dave@dal.ca
+COMMENT= Lightweight LLVM python binding for writing JIT compilers
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BROKEN_FreeBSD_9= llvm38 does not find include cmath
+
+# Python 2.7,3.4+
+USES= python
+USE_PYTHON= distutils autoplist
+
+.include <bsd.port.pre.mk>
+
+# llvmlite-0.13.0 requires devel/llvm38
+LLVM_VER= 38
+
+# Python 2.7 requires enum34, unnecessary for Python 3.4+
+.if ${PYTHON_REL} < 3400
+BUILD_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}enum34>0:devel/py-enum34
+.endif
+
+BUILD_DEPENDS+= llvm-config${LLVM_VER}:devel/llvm${LLVM_VER}
+
+MAKE_ENV= LLVM_CONFIG=${LOCALBASE}/bin/llvm-config${LLVM_VER}
+
+.include <bsd.port.post.mk>
diff --git a/devel/py-llvmlite/distinfo b/devel/py-llvmlite/distinfo
new file mode 100644
index 000000000000..6ce0b01f3c19
--- /dev/null
+++ b/devel/py-llvmlite/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1472612799
+SHA256 (llvmlite-0.13.0.tar.gz) = f852be3391acb2e77ef484c5d0ff90e7cf2821dcf9575e358a1f08c274c582eb
+SIZE (llvmlite-0.13.0.tar.gz) = 92200
diff --git a/devel/py-llvmlite/pkg-descr b/devel/py-llvmlite/pkg-descr
new file mode 100644
index 000000000000..347b52cd7bdb
--- /dev/null
+++ b/devel/py-llvmlite/pkg-descr
@@ -0,0 +1,17 @@
+A lightweight LLVM python binding for writing JIT compilers
+
+The old llvmpy binding exposes a lot of LLVM APIs but the mapping
+of C++-style memory management to Python is error prone. Numba and
+many JIT compilers do not need a full LLVM API. Only the IR builder,
+optimizer, and JIT compiler APIs are necessary.
+
+llvmlite is a project originally tailored for Numba's needs, using
+the following approach:
+
+- A small C wrapper around the parts of the LLVM C++ API we need
+ that are not already exposed by the LLVM C API.
+- A ctypes Python wrapper around the C API.
+- A pure Python implementation of the subset of the LLVM IR builder
+ that we need for Numba.
+
+WWW: https://github.com/numba/llvmlite