aboutsummaryrefslogtreecommitdiff
path: root/lang/python33/Makefile
diff options
context:
space:
mode:
authorMarcus von Appen <mva@FreeBSD.org>2014-08-02 06:39:17 +0000
committerMarcus von Appen <mva@FreeBSD.org>2014-08-02 06:39:17 +0000
commitd76d35ef874d3ce34a5227a90122a4f10d110b6c (patch)
treef89d5761b82549733e8a3d106146bd0aa42e5a21 /lang/python33/Makefile
parentb012cfdf02218464dec8e52de50b40e320c4ee04 (diff)
downloadports-d76d35ef874d3ce34a5227a90122a4f10d110b6c.tar.gz
ports-d76d35ef874d3ce34a5227a90122a4f10d110b6c.zip
Notes
Diffstat (limited to 'lang/python33/Makefile')
-rw-r--r--lang/python33/Makefile225
1 files changed, 52 insertions, 173 deletions
diff --git a/lang/python33/Makefile b/lang/python33/Makefile
index 0a132497c2f2..85e48a442311 100644
--- a/lang/python33/Makefile
+++ b/lang/python33/Makefile
@@ -2,11 +2,11 @@
PORTNAME= python33
PORTVERSION= 3.3.5
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python ipv6
MASTER_SITES= PYTHON
-MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
-DISTNAME= ${PYTHON_DISTNAME}
+MASTER_SITE_SUBDIR= ftp/python/${PORTVERSION}
+DISTNAME= Python-${PORTVERSION}
DIST_SUBDIR= python
MAINTAINER= python@FreeBSD.org
@@ -14,88 +14,65 @@ COMMENT= Interpreted object-oriented programming language
LICENSE= PSFL
-GNU_CONFIGURE= yes
-CONFIGURE_SCRIPT= ../configure # must be relative
-CONFIGURE_ENV= OPT="" SVNVERSION="echo freebsd"
-MAKE_ENV= VPATH="${PYTHON_WRKSRC}"
-
-INSTALL_TARGET= altinstall
-
-USES= gmake readline shebangfix tar:xz cpe
+USES= cpe ncurses pkgconfig readline tar:xz
USE_LDCONFIG= yes
-USE_PYTHON= yes
+GNU_CONFIGURE= yes
CPE_VENDOR= python
CPE_PRODUCT= ${CPE_VENDOR}
CPE_VERSION= ${PORTVERSION}
-PYTHON_VERSION= python3.3
-PYTHON_NO_DEPENDS= yes
+CONFIGURE_ARGS+= --enable-shared
+CONFIGURE_ENV+= OPT="" # Null out OPT to respect user CFLAGS and remove optimizations
-WRKSRC= ${PYTHON_WRKSRC}/portbld.static
-SHARED_WRKSRC= ${PYTHON_WRKSRC}/portbld.shared
-PATCH_WRKSRC= ${PYTHON_WRKSRC}
+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
-PYABIVER= # default empty, for after appending
+PLIST_SUB= ABI=${ABIFLAGS} \
+ OSMAJOR=${OSVERSION:C/([0-9]*)[0-9]{5}/\1/} # For plat-freebsd* in pkg-plist. http://bugs.python.org/issue19554
-PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
- PYMAJOR=${PYTHON_MAJOR_VER} \
- PYVER_WITHPAT=${PORTVERSION:S/.rc/rc/} \
- PYABIVER=${PYABIVER}
-EXAMPLESDIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
-DATADIR= ${PREFIX}/share/${PYTHON_VERSION}
+OPTIONS_DEFINE= DEBUG IPV6 NLS PYMALLOC THREADS TSC
+OPTIONS_DEFAULT= IPV6 NLS PYMALLOC THREADS
+OPTIONS_SUB= yes
-PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
- plat-freebsd7 plat-freebsd8 plat-freebsd9 \
- plat-freebsd10 plat-freebsd11
+NLS_DESC= Enable gettext support for the locale module
+PYMALLOC_DESC= Enable specialized mallocs
+TSC_DESC= Enable processor timestamp counter profiling
-BIN_SCRIPTS= 2to3 idle3 pydoc3
-BIN_FILES= python python-shared python-config python-shared-config \
- ${BIN_SCRIPTS}
-BINLINKS_SUB= -e 's,(2to3|idle3|pydoc3),\1-${PYTHON_VER},' \
- -e 's,(python-shared|python),\1${PYTHON_VER},'
+DEBUG_CONFIGURE_WITH= pydebug
+IPV6_CONFIGURE_ENABLE= ipv6
-SHEBANG_FILES= ../Tools/gdb/libpython.py \
- ../Tools/pybench/Setup.py
-SHEBANG_LANG= python2
-python_CMD= ${PYTHON_CMD}
-python2_OLD_CMD=python
-python2_CMD= ${PYTHON_CMD}
+# 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_CPPFLAGS= -I${LOCALBASE}/include
+NLS_LIBS= -L${LOCALBASE}/lib -lintl
+NLS_CONFIGURE_ENV_OFF= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
-OPTIONS_DEFINE= THREADS PYMALLOC IPV6 FPECTL EXAMPLES NLS
-OPTIONS_DEFAULT=THREADS PYMALLOC IPV6
+PYMALLOC_CONFIGURE_WITH= pymalloc
-NLS_DESC= Enable Gettext support for the locale module
+THREADS_CONFIGURE_WITH= threads
+THREADS_CFLAGS= ${PTHREAD_CFLAGS}
+THREADS_LDFLAGS= ${PTHREAD_LIBS}
+TSC_CONFIGURE_WITH= tsc
.include <bsd.port.options.mk>
-.if ${PORT_OPTIONS:MNLS}
-USES+= gettext
-LDFLAGS+= -L${LOCALBASE}/lib
-# We use CPPFLAGS over CFLAGS here due to -I ordering causing things like
-# elementtree and pyexpat to break with python27, or to silence preprocessor
-# complaints with python33
-CPPFLAGS+= -I${LOCALBASE}/include
-.else
-CONFIGURE_ENV+= ac_cv_lib_intl_textdomain=no ac_cv_header_libintl_h=no
+.if ${PORT_OPTIONS:MPYMALLOC}
+ABIFLAGS:= m${ABIFLAGS}
.endif
-.include <bsd.port.pre.mk>
-
-.if ${PORT_OPTIONS:MTHREADS}
-PLIST_SUB+= THREADS=""
-CONFIGURE_ARGS+= --with-threads
-CFLAGS+= ${PTHREAD_CFLAGS}
-LDFLAGS+= ${PTHREAD_LIBS}
-.else
-PLIST_SUB+= THREADS="@comment "
-CONFIGURE_ARGS+= --without-threads
+.if ${PORT_OPTIONS:MDEBUG}
+ABIFLAGS:= d${ABIFLAGS}
.endif
-.if empty(PORT_OPTIONS:MPYMALLOC)
-CONFIGURE_ARGS+= --without-pymalloc
-.else
-PYABIVER:= m${PYABIVER}
+.if !empty(ABIFLAGS)
+PLIST_FILES+= bin/python3.3%%ABI%%
+PLIST_FILES+= bin/python3.3%%ABI%%-config
+PLIST_FILES+= libdata/pkgconfig/python-3.3%%ABI%%.pc
.endif
.if ${ARCH} == sparc64
@@ -105,123 +82,25 @@ CFLAGS+= -DPYTHON_DEFAULT_RECURSION_LIMIT=900
# See http://bugs.freebsd.org/115940
.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS) # the world with NO_NIS
PLIST_SUB+= NO_NIS="@comment "
-WITHOUT_NIS?= detected
.else
PLIST_SUB+= NO_NIS=""
.endif
-.if ${PORT_OPTIONS:MIPV6}
-CONFIGURE_ARGS+= --enable-ipv6
-.else
-CONFIGURE_ARGS+= --disable-ipv6
-.endif
-
-.if ${PORT_OPTIONS:MFPECTL}
-CONFIGURE_ARGS+= --with-fpectl
-.endif
-
-post-extract:
- ${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
-
-pre-patch:
- ${CP} -r ${PATCH_WRKSRC}/Lib/plat-freebsd8 \
- ${PATCH_WRKSRC}/Lib/plat-freebsd9
- ${CP} -r ${PATCH_WRKSRC}/Lib/plat-freebsd8 \
- ${PATCH_WRKSRC}/Lib/plat-freebsd10
- ${CP} -r ${PATCH_WRKSRC}/Lib/plat-freebsd8 \
- ${PATCH_WRKSRC}/Lib/plat-freebsd11
-.for script in ${BIN_SCRIPTS}
- ${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
- ${PATCH_WRKSRC}/Tools/scripts/${script} \
- > ${WRKDIR}/`${ECHO_CMD} ${script} | ${SED} -E ${BINLINKS_SUB}`
-.endfor
- ${REINPLACE_CMD} -e \
- 's,/usr/doc/python-docs-,${PREFIX}/share/doc/python,g' \
- ${PATCH_WRKSRC}/Lib/pydoc.py
- ${REINPLACE_CMD} -e \
- 's|^\( *prefixes = .*\)\]$$|\1, "${LOCALBASE}"]|g' \
- ${PATCH_WRKSRC}/Lib/site.py
- ${REINPLACE_CMD} -e \
- 's|^ \(..ASDLGEN.*\)$$| ${TRUE}|g; \
- s|[(]LIBDIR[)]/pkgconfig|(prefix)/libdata/pkgconfig|g; \
- s|*\(..INSTALL_SCRIPT.*\)python-config$$|#port \1|' \
- ${PATCH_WRKSRC}/Makefile.pre.in
-
- ${SED} -e 's|^#!.*|#!${PREFIX}/bin/${PYTHON_VERSION}|' \
- ${PATCH_WRKSRC}/Misc/python-config.in > ${WRKDIR}/${PYTHON_VERSION}-config
- ${SED} -e 's|^#!.*|#!${PREFIX}/bin/${PYTHON_VERSION:S/thon/thon-shared/}|' \
- ${PATCH_WRKSRC}/Misc/python-config.in > ${WRKDIR}/${PYTHON_VERSION:S/thon/thon-shared/}-config
-
-.if defined(WITH_FPECTL) && ${ARCH} == i386
- ${MKDIR} ${WRKSRC}/Modules
- ${ECHO} "fpectl fpectlmodule.c" >> ${WRKSRC}/Modules/Setup.dist
-.endif
-
post-patch:
-.if defined(WITHOUT_NIS)
- ${REINPLACE_CMD} -e \
- 's/disabled_module_list =[^]]*/&, "nis"/' \
- ${PATCH_WRKSRC}/setup.py
+.if !exists(/usr/bin/ypcat) || defined(WITHOUT_NIS)
+ @${REINPLACE_CMD} -e 's/disabled_module_list =[^]]*/&, "nis"/' \
+ ${WRKSRC}/setup.py
.endif
-post-configure:
- ${TAR} -C ${WRKSRC} -cf - . | ${TAR} -C ${SHARED_WRKSRC} -xf -
- ${LN} -sf ${PYTHON_WRKSRC}/Lib ${WRKSRC}/Lib
- ${SED} -e 's,^\(LDLIBRARY=\).*$$,\1libpython$$(LDVERSION).so,' \
- -e 's,^\(BLDLIBRARY=\).*$$,\1-L. -lpython$$(LDVERSION),' \
- -e 's,^\(CFLAGSFORSHARED=\).*$$,\1$$(CCSHARED),' \
- -e 's,^\(Makefile Modules/config.c:.*\)Makefile.pre,\1,' \
- -e 's,^\(.(BUILDPYTHON)\: .*\).(LIBRARY),\1,' \
- -e 's,^\(.(BUILDPYTHON):.*\).(LIBRARY),\1,' \
- ${WRKSRC}/Makefile > ${SHARED_WRKSRC}/Makefile
-
-pre-build:
- cd ${SHARED_WRKSRC}; \
- ${SETENV} ${MAKE_ENV} ${MAKE} lib${PYTHON_VERSION}${PYABIVER}.so python; \
- ${LN} -f lib${PYTHON_VERSION}${PYABIVER}.so lib${PYTHON_VERSION}${PYABIVER}.so.1; \
- ${LN} -f python ${PYTHON_VERSION:S/thon/thon-shared/}
-
-pre-su-install:
-.for platform in ${PLATFORMS}
- ${MKDIR} ${STAGEDIR}${PYTHONPREFIX_LIBDIR}/${platform}
-.for file in IN.py regen
- ${INSTALL_DATA} ${WRKSRC}/Lib/${platform}/${file} \
- ${STAGEDIR}${PYTHONPREFIX_LIBDIR}/${platform}/
-.endfor
-.endfor
-
post-install:
- @# install config providers
- ${INSTALL_SCRIPT} ${WRKDIR}/${PYTHON_VERSION}-config \
- ${STAGEDIR}${PREFIX}/bin
- ${INSTALL_SCRIPT} ${WRKDIR}/${PYTHON_VERSION:S/thon/thon-shared/}-config \
- ${STAGEDIR}${PREFIX}/bin
-
- @# shared version of executable and library
- ${INSTALL_PROGRAM} ${SHARED_WRKSRC}/lib${PYTHON_VERSION}${PYABIVER}.so.1 \
- ${STAGEDIR}${PREFIX}/lib
- (cd ${STAGEDIR}${PREFIX}/lib; ${LN} -sf lib${PYTHON_VERSION}${PYABIVER}.so.1 \
- lib${PYTHON_VERSION}${PYABIVER}.so)
- (cd ${STAGEDIR}${PREFIX}/lib/${PYTHON_VERSION}/config-${PYTHON_VER}${PYABIVER}; \
- ${LN} -sf ../../lib${PYTHON_VERSION}${PYABIVER}.so)
- ${INSTALL_PROGRAM} \
- ${SHARED_WRKSRC}/${PYTHON_VERSION:S/thon/thon-shared/} \
- ${STAGEDIR}${PREFIX}/bin
-
- @# additional files installing by ports
-.for script in ${BIN_SCRIPTS}
- ${INSTALL_SCRIPT} \
- ${WRKDIR}/`${ECHO_CMD} ${script} | ${SED} -E ${BINLINKS_SUB}` \
- ${STAGEDIR}${PREFIX}/bin
-.endfor
- ${INSTALL_MAN} ${PYTHON_WRKSRC}/Misc/python.man \
- ${STAGEDIR}${MAN1PREFIX}/man/man1/${PYTHON_VERSION}.1
-
- @${MKDIR} ${STAGEDIR}${DATADIR}
- @cd ${PYTHON_WRKSRC}; ${TAR} -cf - Tools | \
- (cd ${STAGEDIR}${DATADIR}; ${TAR} -xf -)
+.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.3/lib-dynload/*.so; do \
+ ${STRIP_CMD} $$i; done # Strip shared extensions
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpython3.3${ABIFLAGS}.so.1 # Strip shared library
regression-test: build
- @cd ${WRKSRC} && ${MAKE_CMD} TESTOPTS=-j${MAKE_JOBS_NUMBER} test
+ @cd ${WRKSRC} && ${MAKE} TESTOPTS=-j${MAKE_JOBS_NUMBER} buildbottest
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>