diff options
author | drochner <drochner@pkgsrc.org> | 2001-09-25 17:36:44 +0000 |
---|---|---|
committer | drochner <drochner@pkgsrc.org> | 2001-09-25 17:36:44 +0000 |
commit | 91baa3c0ae7191a6279b35dc26976e136fb3e940 (patch) | |
tree | 8b15606551f06b8ddef1aa29b1db15cc31747a01 /lang | |
parent | 03d6a68e345b4fdc4fff01403402ab181b9e397e (diff) | |
download | pkgsrc-91baa3c0ae7191a6279b35dc26976e136fb3e940.tar.gz |
first cut on a buildlink.mk like structure which can deal with multiple
Python versions, to replace the bsd.python.mk eventually
Diffstat (limited to 'lang')
-rw-r--r-- | lang/python/extension.buildlink.mk | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/lang/python/extension.buildlink.mk b/lang/python/extension.buildlink.mk new file mode 100644 index 00000000000..2a7d600b9a0 --- /dev/null +++ b/lang/python/extension.buildlink.mk @@ -0,0 +1,107 @@ +# $NetBSD: extension.buildlink.mk,v 1.1 2001/09/25 17:36:44 drochner Exp $ + +.include "../../mk/bsd.prefs.mk" + +PYTHON_VERSION_DEFAULT?= 21 +PYTHON_VERSIONS_ACCEPTED?= 21 20 + +# transform the list into individual variables +.for pv in ${PYTHON_VERSIONS_ACCEPTED} +_PYTHON_VERSION_${pv}_OK= yes +.endfor + +# check what is installed +.if exists(${LOCALBASE}/bin/python2.1) +_PYTHON_VERSION_21_INSTALLED= yes +.endif +.if exists(${LOCALBASE}/bin/python2.0) +_PYTHON_VERSION_20_INSTALLED= yes +.endif + +# +# choose a python version where to add, +# try to be intelligent +# +# if the default is already installed, it is first choice +.if defined(_PYTHON_VERSION_${PYTHON_VERSION_DEFAULT}_OK) +.if defined(_PYTHON_VERSION_${PYTHON_VERSION_DEFAULT}_INSTALLED) +_PYTHON_VERSION= ${PYTHON_VERSION_DEFAULT} +.endif +.endif +# prefer an already installed version, in order of "accepted" +.if !defined(_PYTHON_VERSION) +.for pv in ${PYTHON_VERSIONS_ACCEPTED} +.if defined(_PYTHON_VERSION_${pv}_INSTALLED) +_PYTHON_VERSION?= ${pv} +.else +# keep information as last resort - see below +_PYTHON_VERSION_FIRSTACCEPTED?= ${pv} +.endif +.endfor +.endif +# if the default is OK for the addon pkg, take this +.if !defined(_PYTHON_VERSION) +.if defined(_PYTHON_VERSION_${PYTHON_VERSION_DEFAULT}_OK) +_PYTHON_VERSION= ${PYTHON_VERSION_DEFAULT} +.endif +.endif +# take the first one accepted by the package +.if !defined(_PYTHON_VERSION) +_PYTHON_VERSION= ${_PYTHON_VERSION_FIRSTACCEPTED} +.endif + +# +# set variables for the version we decided to use +# +.if ${_PYTHON_VERSION} == "21" +DEPENDS+= python21>=2.1:../../lang/python21 +PYTHONBIN= ${LOCALBASE}/bin/python2.1 +PYPKGPREFIX= py21 +.elif ${_PYTHON_VERSION} == "20" +#DEPENDS+= python20>=2.0:../../lang/python20 +DEPENDS+= python-2.0.1:../../lang/python +PYTHONBIN= ${LOCALBASE}/bin/python2.0 +PYPKGPREFIX= py20 +.endif + + +# +# below is what used to be in bsd.python.mk +# + +.if defined(PYBINMODULE) +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "vax" +IGNORE="${PKGNAME} needs dynamic loading" +.endif +.endif + +PYINC!= ${PYTHONBIN} -c "import distutils.sysconfig; \ + print distutils.sysconfig.get_python_inc(0, \"\")" +PYSITELIB!= ${PYTHONBIN} -c "import distutils.sysconfig; \ + print distutils.sysconfig.get_python_lib(0, 0, \"\")" + +.if defined(PYDISTUTILSPKG) +PYSETUP?= setup.py +PYSETUPBUILDARGS?= #empty +PYSETUPINSTALLARGS?= #empty +PY_PATCHPLIST?= yes + +do-build: + (cd ${WRKSRC} && ${PYTHONBIN} ${PYSETUP} ${PYSETUPBUILDARGS} build) + +do-install: + (cd ${WRKSRC} && ${PYTHONBIN} ${PYSETUP} ${PYSETUPINSTALLARGS} install) +.endif + +PY_PLIST_TEMPLATE?= ${PKGDIR}/PLIST +PY_PLIST_SRC?= ${WRKDIR}/.PLIST_SRC + +py_patchplist: + ${SED} "s|PYINC|${PYINC}|g;s|PYSITELIB|${PYSITELIB}|g" \ + <${PY_PLIST_TEMPLATE} >${PY_PLIST_SRC} + +.if defined(PY_PATCHPLIST) +PLIST_SRC?= ${PY_PLIST_SRC} + +pre-install: py_patchplist +.endif |