diff options
author | perky <perky@FreeBSD.org> | 2004-03-08 20:43:11 +0800 |
---|---|---|
committer | perky <perky@FreeBSD.org> | 2004-03-08 20:43:11 +0800 |
commit | d040b5a9bef8905ad339218ab6351d4426cbcb4c (patch) | |
tree | 89aec5e0bad538edb9c84befd157e416eb8eab13 /lang/python27 | |
parent | 95b1865c25cbf71123571f143e548411bf48f095 (diff) | |
download | freebsd-ports-gnome-d040b5a9bef8905ad339218ab6351d4426cbcb4c.tar.gz freebsd-ports-gnome-d040b5a9bef8905ad339218ab6351d4426cbcb4c.tar.zst freebsd-ports-gnome-d040b5a9bef8905ad339218ab6351d4426cbcb4c.zip |
Build and install a shared library and its frontend besides static one
by default.
[HEADS UP] The python executable and static library isn't built PIC
anymore even on amd64 and ia64. Please use a shared library instead.
Requested by: jhay, dd
Tested by: Charles Swiger <cswiger@mac.com>,
Tim Middleton <x@Vex.Net>
Diffstat (limited to 'lang/python27')
-rw-r--r-- | lang/python27/Makefile | 59 | ||||
-rw-r--r-- | lang/python27/pkg-plist | 11 |
2 files changed, 51 insertions, 19 deletions
diff --git a/lang/python27/Makefile b/lang/python27/Makefile index d8927cc4070c..6f8289ade740 100644 --- a/lang/python27/Makefile +++ b/lang/python27/Makefile @@ -6,6 +6,7 @@ PORTNAME= python PORTVERSION= 2.4.a0.20040106 +PORTREVISION= 1 CATEGORIES= lang python ipv6 MASTER_SITES= ${PYTHON_MASTER_SITES} MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR} @@ -19,6 +20,8 @@ WRKSRC= ${PYTHON_WRKSRC} GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-fpectl CONFIGURE_ENV= OPT="${CFLAGS}" +MAKE_ENV= VPATH="${WRKSRC}" +INSTALLS_SHLIB= yes INSTALL_TARGET= altinstall MAN1= ${PYTHON_VERSION}.1 @@ -28,6 +31,11 @@ PYTHON_VERSION= python2.4 PYTHON_NO_DEPENDS= yes LATEST_LINK= ${PYTHON_VERSION:S/.//} +SHARED_WRKSRC= ${WRKSRC}/build.shared +PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} +DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION} +TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION} + # # If you don't want to use Python's thread module, you need to set # WITHOUT_THREADS. @@ -56,17 +64,6 @@ CONFIGURE_ARGS+= --enable-unicode=ucs4 CONFIGURE_ARGS+= --without-pymalloc .endif -.if defined(BUILD_SHARED) -CONFIGURE_ARGS+= --enable-shared -INSTALLS_SHLIB= yes -PLIST_SUB+= SHARED_ONLY="" -.else -PLIST_SUB+= SHARED_ONLY="@comment " -.endif - -DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION} -TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION} - .include <bsd.port.pre.mk> .if ${ARCH} == i386 @@ -74,9 +71,6 @@ PLIST_SUB+= X86_ONLY="" .else PLIST_SUB+= X86_ONLY="@comment " .endif -.if ${ARCH} == amd64 -CFLAGS+= -fPIC -.endif .if ${ARCH} == amd64 || ${ARCH} == ia64 || ${ARCH} == sparc64 || ${ARCH} == alpha PLIST_SUB+= 32BIT_ONLY="@comment " .else @@ -126,6 +120,33 @@ post-patch: ${WRKSRC}/Include/patchlevel.h ${REINPLACE_CMD} -e 's,^.*freenet.*$$,,' ${WRKSRC}/Lib/base64.py +post-configure: + @# prepare a subdir for shared build +.for subdir in Modules Parser Python Objects + ${MKDIR} ${SHARED_WRKSRC}/${subdir} +.endfor + ${SED} -e 's,^\(LDLIBRARY=\).*$$,\1libpython$$(VERSION).so,' \ + -e 's,^\(BLDLIBRARY=\).*$$,\1-L. -lpython$$(VERSION),' \ + -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 + ${LN} -sf ${WRKSRC}/pyconfig.h ${WRKSRC}/Include ${WRKSRC}/Grammar \ + ${SHARED_WRKSRC}/ + ${LN} -sf ${WRKSRC}/Python/getplatform.c ${WRKSRC}/Python/importdl.c \ + ${WRKSRC}/Python/importdl.h \ + ${SHARED_WRKSRC}/Python/ + ${LN} -sf ${WRKSRC}/Modules/makesetup ${WRKSRC}/Modules/Setup* \ + ${WRKSRC}/Modules/*.c ${WRKSRC}/Modules/*.h \ + ${SHARED_WRKSRC}/Modules/ + +post-build: + cd ${SHARED_WRKSRC}; \ + ${SETENV} ${MAKE_ENV} ${MAKE} lib${PYTHON_VERSION}.so python; \ + ${LN} -f lib${PYTHON_VERSION}.so lib${PYTHON_VERSION}.so.1; \ + ${LN} -f python ${PYTHON_VERSION:S/thon/thon-shared/} + pre-install: .for platform in ${PLATFORMS} ${MKDIR} ${PYTHONPREFIX_LIBDIR}/${platform} @@ -136,6 +157,16 @@ pre-install: .endfor post-install: + @# shared version of executable and library + ${INSTALL_PROGRAM} ${SHARED_WRKSRC}/lib${PYTHON_VERSION}.so.1 \ + ${PREFIX}/lib + cd ${PREFIX}/lib; ${LN} -sf lib${PYTHON_VERSION}.so.1 \ + lib${PYTHON_VERSION}.so + ${INSTALL_PROGRAM} \ + ${SHARED_WRKSRC}/${PYTHON_VERSION:S/thon/thon-shared/} \ + ${PREFIX}/bin + + @# additional files installing by ports ${INSTALL_SCRIPT} ${WRKDIR}/pydoc2.4 ${WRKDIR}/idle2.4 \ ${PREFIX}/bin @${MKDIR} ${MANPREFIX}/man/man1 diff --git a/lang/python27/pkg-plist b/lang/python27/pkg-plist index 76a827582a80..ad78ff1936e0 100644 --- a/lang/python27/pkg-plist +++ b/lang/python27/pkg-plist @@ -1,6 +1,7 @@ -bin/idle2.4 -bin/pydoc2.4 -bin/%%PYTHON_VERSION%% +bin/idle%%PYVER%% +bin/pydoc%%PYVER%% +bin/python%%PYVER%% +bin/python-shared%%PYVER%% include/%%PYTHON_VERSION%%/Python.h include/%%PYTHON_VERSION%%/abstract.h include/%%PYTHON_VERSION%%/bitset.h @@ -73,8 +74,8 @@ include/%%PYTHON_VERSION%%/tupleobject.h include/%%PYTHON_VERSION%%/ucnhash.h include/%%PYTHON_VERSION%%/unicodeobject.h include/%%PYTHON_VERSION%%/weakrefobject.h -%%SHARED_ONLY%%lib/lib%%PYTHON_VERSION%%.so -%%SHARED_ONLY%%lib/lib%%PYTHON_VERSION%%.so.1 +lib/lib%%PYTHON_VERSION%%.so +lib/lib%%PYTHON_VERSION%%.so.1 lib/%%PYTHON_VERSION%%/BaseHTTPServer.py lib/%%PYTHON_VERSION%%/BaseHTTPServer.pyc lib/%%PYTHON_VERSION%%/BaseHTTPServer.pyo |