diff options
author | Marcus von Appen <mva@FreeBSD.org> | 2014-08-02 06:39:17 +0000 |
---|---|---|
committer | Marcus von Appen <mva@FreeBSD.org> | 2014-08-02 06:39:17 +0000 |
commit | d76d35ef874d3ce34a5227a90122a4f10d110b6c (patch) | |
tree | f89d5761b82549733e8a3d106146bd0aa42e5a21 /lang/python33/Makefile | |
parent | b012cfdf02218464dec8e52de50b40e320c4ee04 (diff) | |
download | ports-d76d35ef874d3ce34a5227a90122a4f10d110b6c.tar.gz ports-d76d35ef874d3ce34a5227a90122a4f10d110b6c.zip |
Notes
Diffstat (limited to 'lang/python33/Makefile')
-rw-r--r-- | lang/python33/Makefile | 225 |
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> |