summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2001-09-25 17:36:44 +0000
committerdrochner <drochner@pkgsrc.org>2001-09-25 17:36:44 +0000
commit91baa3c0ae7191a6279b35dc26976e136fb3e940 (patch)
tree8b15606551f06b8ddef1aa29b1db15cc31747a01 /lang
parent03d6a68e345b4fdc4fff01403402ab181b9e397e (diff)
downloadpkgsrc-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.mk107
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