view uwsginl-plugin-lang-pypy3/Makefile @ 186:7febb8b5cb59

Patch our PORTVERSION into uwsgi that is returned with "uwsgi --version". The parser for the version in uwsgiconfig.py also needed to be adjusted therefore because all version parts up to and including the revision must be integers to be used in the Python plugins properly.
author Franz Glasner <fzglas.hg@dom66.de>
date Fri, 14 Mar 2025 12:34:09 +0100
parents 6aa5c9b981b2
children 13e07e75c111
line wrap: on
line source

# Created by: Franz Glasner <freebsd-dev@dom66.de>

PORTNAME=	${UWSGI_NAME}-plugin-lang-pypy3
#DISTVERSION=	2.0.20
PORTVERSION=	2.1.pl9.g${MYGH_TAG_DATE}
CATEGORIES=	www python
# Use GitHub id for now (before official 2.1); see below
#MASTER_SITES=	https://projects.unbit.it/downloads/
#DISTNAME=	uwsgi-${DISTVERSION}

MAINTAINER=	freebsd-dev@dom66.de
COMMENT=	Language plugin for PyPy 3
WWW=		https://projects.unbit.it/uwsgi/

LICENSE=	GPLv2-WITH-LINKING-EXCEPTION
LICENSE_GROUPS=	FSF GPL OSI
LICENSE_NAME=	GPLv2 with linking exception
LICENSE_FILE=	${WRKSRC}/LICENSE
LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept

FLAVORS=	pypy3 pypy39 pypy310
FLAVOR?=	pypy3

PKGNAMEPREFIX=	${FLAVOR}-

BUILD_DEPENDS+=	${UWSGI_NAME}==${PORTVERSION}:www/uwsginl
BUILD_DEPENDS+=	${PYPY_PACKAGE}>=7:lang/${PYPY_PACKAGE}
RUN_DEPENDS+=	${UWSGI_NAME}==${PORTVERSION}:www/uwsginl
RUN_DEPENDS+=	${PYPY_PACKAGE}>=7:lang/${PYPY_PACKAGE}

USES=		cpe gettext-runtime pkgconfig
CPE_VENDOR=	unbit

.include        "${.CURDIR}/../uwsginl/Makefile.gh"

EXTRA_PATCHES=	${.CURDIR}/files/extra

PLIST_FILES=	${PLUGIN_DIR}/${PLUGIN_FILENAME}

.if ${FLAVOR} == pypy3
PLUGIN_NAME=	pypy3
PYPY_PACKAGE=	pypy310
PYPY_EXECUTABLE=	pypy3.10
PYPY_LDLIBRARY=	libpypy3.10-c.so
PYPY_LIBDIR=	lib/pypy3.10
.elif ${FLAVOR} == pypy39
PLUGIN_NAME=	pypy39
PYPY_PACKAGE=	pypy39
PYPY_EXECUTABLE=	pypy3.9
PYPY_LDLIBRARY=	libpypy3.9-c.so
PYPY_LIBDIR=	lib/pypy3.9
.elif ${FLAVOR} == pypy310
PLUGIN_NAME=	pypy310
PYPY_PACKAGE=	pypy310
PYPY_EXECUTABLE=	pypy3.10
PYPY_LDLIBRARY=	libpypy3.10-c.so
PYPY_LIBDIR=	lib/pypy3.10
.endif

CFLAGS+=	-DPYPY_LDLIBRARY="${PYPY_LDLIBRARY}" -DPYPY_LIBDIR="${PYPY_LIBDIR}" -DPYPY_PLUGIN_NAME="${PLUGIN_NAME}"

MAKE_ENV+=	UWSGI_PROFILE_OVERRIDE="plugin_build_dir=${STAGEDIR}${PREFIX}/${PLUGIN_DIR};plugin_dir=${PREFIX}/${PLUGIN_DIR}" PYTHON=${LOCALBASE}/bin/pypy3

DESCR=		pkg-descr

UWSGI_NAME=	uwsginl
UWSGI_PATH=	${LOCALBASE}/bin/${UWSGI_NAME}
PLUGIN_DIR=	lib/${UWSGI_NAME}/plugins

# Where to find the sources for the plugin (defaults to plugins/${PLUGIN_NAME})
PLUGIN_SOURCE=	plugins/pypy
# The complete basename of the plugin
PLUGIN_FILENAME=	${PLUGIN_NAME}_plugin.so

# Use the PATCHDIR of the binary executable by default
PATCHDIR?=		${.CURDIR}/../uwsginl/files

.if ${PLUGIN_NAME} != pypy3 && ${PLUGIN_NAME} != pypy38
post-patch:
	${REINPLACE_CMD} -i '' -e 's/pypy3_plugin/${PLUGIN_NAME}_plugin/g' ${WRKSRC}/${PLUGIN_SOURCE}/pypy_setup.py
.endif

do-configure:
	@${DO_NADA}

do-build:
	@${MKDIR} ${STAGEDIR}${PREFIX}/${PLUGIN_DIR}
	@(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${UWSGI_PATH} --build-plugin "${PLUGIN_SOURCE} ${PLUGIN_NAME}")

do-install:
	${INSTALL_LIB} ${BUILD_WRKSRC}/${PLUGIN_FILENAME} ${STAGEDIR}${PREFIX}/${PLUGIN_DIR}

.include <bsd.port.mk>