aboutsummaryrefslogtreecommitdiff
path: root/lang/python34/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'lang/python34/Makefile')
-rw-r--r--lang/python34/Makefile108
1 files changed, 108 insertions, 0 deletions
diff --git a/lang/python34/Makefile b/lang/python34/Makefile
new file mode 100644
index 000000000000..e090827b670d
--- /dev/null
+++ b/lang/python34/Makefile
@@ -0,0 +1,108 @@
+# Created by: Kubilay Kocak <koobs@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= python34
+DISTVERSION= 3.4.0
+CATEGORIES= lang python ipv6
+MASTER_SITES= PYTHON
+MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
+DISTNAME= Python-${DISTVERSION}
+DIST_SUBDIR= python
+
+MAINTAINER= python@FreeBSD.org
+COMMENT= Interpreted object-oriented programming language
+
+LICENSE= PSFL
+
+USES= ncurses pkgconfig readline tar:xz
+USE_LDCONFIG= yes
+USE_PYTHON= yes
+GNU_CONFIGURE= yes
+
+PYTHON_VERSION= python3.4
+PYTHON_NO_DEPENDS= yes
+
+DISABLED_EXTENSIONS= _sqlite3 _tkinter _gdbm
+CONFIGURE_ARGS+= --enable-shared --without-ensurepip
+CONFIGURE_ENV+= OPT="" DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS}" # Null out OPT to respect user CFLAGS and remove optimizations
+
+INSTALL_TARGET= altinstall # Don't want cloberring of unprefixed files
+SHAREMODE= 644 # Match upstream INSTALL_DATA=644, so we can STRIP shared libraries
+MAKE_ARGS+= INSTALL_SHARED="${INSTALL_LIB}" # Override read-only for libraries, so we can STRIP them
+MAKE_ARGS+= LIBPC="${PREFIX}/libdata/pkgconfig" # Until pathfix gets support for files other than Makefile.in
+
+PLIST_SUB= VER=${PYTHON_VER} ABI=${ABIFLAGS} XY=${PYTHON_SUFFIX} \
+ OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # For plat-freebsd* in pkg-plist. http://bugs.python.org/issue19554
+
+OPTIONS_DEFINE= DEBUG IPV6 NLS PYMALLOC THREADS TSC
+OPTIONS_DEFAULT= IPV6 NLS PYMALLOC THREADS
+OPTIONS_RADIO= HASH
+OPTIONS_RADIO_HASH= FNV SIPHASH
+OPTIONS_SUB= yes
+
+NLS_DESC= Enable gettext support for the locale module
+PYMALLOC_DESC= Enable specialized mallocs
+TSC_DESC= Enable processor timestamp counter profiling
+
+HASH_DESC= Hash Algorithm (PEP-456)
+FNV_DESC= Modified Fowler-Noll-Vo Algorithm
+SIPHASH_DESC= SipHash24 Algorithm
+
+FNV_CONFIGURE_ON= --with-hash-algorithm=fnv
+SIPHASH_CONFIGURE_ON= --with-hash-algorithm=siphash24
+DEBUG_CONFIGURE_WITH= pydebug
+IPV6_CONFIGURE_ENABLE= ipv6
+
+# Use CPPFLAGS over CFLAGS due to -I ordering, causing elementtree and pyexpat
+# to break in Python 2.7, or preprocessor complaints in Python >= 3.3
+# Upstream Issue: http://bugs.python.org/issue6299
+NLS_USES= gettext
+NLS_LDFLAGS= -L${LOCALBASE}/lib
+NLS_CPPFLAGS= -I${LOCALBASE}/include
+NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
+
+PYMALLOC_CONFIGURE_WITH= pymalloc
+
+THREADS_CONFIGURE_WITH= threads
+THREADS_CFLAGS= ${PTHREAD_CFLAGS}
+THREADS_LDFLAGS= ${PTHREAD_LIBS}
+TSC_CONFIGURE_WITH= tsc
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MPYMALLOC}
+ABIFLAGS:= m${ABIFLAGS}
+.endif
+
+.if ${PORT_OPTIONS:MDEBUG}
+ABIFLAGS:= d${ABIFLAGS}
+.endif
+
+.if !empty(ABIFLAGS)
+PLIST_FILES+= bin/python%%VER%%%%ABI%%
+.endif
+
+.if ${ARCH} == sparc64
+CFLAGS+= -DPYTHON_DEFAULT_RECURSION_LIMIT=900
+.endif
+
+# See http://bugs.freebsd.org/115940
+.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS) # the world with NO_NIS
+PLIST_SUB+= NO_NIS="@comment "
+DISABLED_EXTENSIONS+= nis
+.else
+PLIST_SUB+= NO_NIS=""
+.endif
+
+post-install:
+.if ! ${PORT_OPTIONS:MDEBUG}
+ ${RM} -f ${STAGEDIR}${PREFIX}/lib/libpython3.so # Upstream Issue: http://bugs.python.org/issue17975
+.endif
+ for i in ${STAGEDIR}${PREFIX}/lib/python3.4/lib-dynload/*.so; do \
+ ${STRIP_CMD} $$i; done # Strip shared extensions
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpython3.4${ABIFLAGS}.so.1 # Strip shared library
+
+regression-test: build
+ @cd ${WRKSRC} && ${MAKE} TESTOPTS=-j${MAKE_JOBS_NUMBER} test
+
+.include <bsd.port.mk>