ports/devel/cl-cffi/Makefile
Joseph Mingrone 4c954c1522
Infrastructure for Common Lisp Ports: Overhaul
- Decouple ASDF initialization from devel/cl-asdf by creating a
  dedicated port: devel/freebsd-cl-asdf-init.
- Convert devel/cl-asdf/bsd.cl-asdf.mk to USES=cl.
- Add devel/cl-asdf-sbcl
- Update ASDF configuration:
   - Prefer newer ASDF versions, but only if the fasl is available.
   - Replace license text with an SPDX license identifier.
   - Simplify and clarify documentation.
   - Remove the assumption that ${PREFIX} is /usr/local.
   - Use uiop:getenv instead of a custom getenv function.
   - Remove asdf:output-files customization to resolve output
     translation issues.
   - Improve output translations:
     - Prevent writing fasls to ${PREFIX}/lib/common-lisp/ when the
       corresponding fasl port is not installed.
     - Fall back to ASDF's default caching mechanism of writing fasl to
       a cache under ${HOME} when users install a Common Lisp port
       without its fasl port.
   - Improve interoperability with Common Lisp code from sources outside
     of ports, such as Quicklisp.
   - Add support for Clozure Common Lisp (CCL)

Approved by:	olgeni (implicit)
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D47983
2024-12-19 22:31:48 -04:00

70 lines
2.8 KiB
Makefile

PORTNAME= cffi
PORTVERSION= 0.16.1
CATEGORIES= devel lisp
MASTER_SITES= http://common-lisp.net/project/cffi/releases/:src \
http://olgeni.olgeni.com/~olgeni/cffi/${PORTVERSION}/:doc
PKGNAMEPREFIX= cl-
DISTNAME= ${PORTNAME}_${PORTVERSION}
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:src \
cffi-manual.html:doc \
cffi-manual.txt:doc \
cffi-manual.pdf:doc \
cffi-sys-spec.html:doc \
cffi-sys-spec.txt:doc \
cffi-sys-spec.pdf:doc
DIST_SUBDIR= cffi/${PORTVERSION}
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
MAINTAINER= olgeni@FreeBSD.org
COMMENT= Portable foreign function interface for Common Lisp
WWW= https://common-lisp.net/project/cffi/
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/COPYRIGHT
BUILD_DEPENDS= cl-alexandria>=0:devel/cl-alexandria \
cl-trivial-features>=0:devel/cl-trivial-features \
cl-babel>=0:converters/cl-babel
RUN_DEPENDS:= ${BUILD_DEPENDS}
NO_BUILD= yes
USES= cl
USE_ASDF= yes
OPTIONS_DEFINE= DOCS EXAMPLES
do-install:
@${MKDIR} ${STAGEDIR}${ASDF_PATHNAME}
@${MKDIR} ${STAGEDIR}${ASDF_PATHNAME}/src
@${MKDIR} ${STAGEDIR}${ASDF_PATHNAME}/grovel
@${MKDIR} ${STAGEDIR}${ASDF_PATHNAME}/uffi-compat
@${MKDIR} ${STAGEDIR}${ASDF_REGISTRY}
${INSTALL_DATA} ${WRKSRC}/src/*.lisp ${STAGEDIR}${ASDF_PATHNAME}/src
${INSTALL_DATA} ${WRKSRC}/grovel/*.lisp ${STAGEDIR}${ASDF_PATHNAME}/grovel
${INSTALL_DATA} ${WRKSRC}/uffi-compat/*.asd ${STAGEDIR}${ASDF_PATHNAME}/uffi-compat
${INSTALL_DATA} ${WRKSRC}/uffi-compat/*.lisp ${STAGEDIR}${ASDF_PATHNAME}/uffi-compat
${INSTALL_DATA} ${WRKSRC}/cffi.asd ${STAGEDIR}${ASDF_PATHNAME}
${INSTALL_DATA} ${WRKSRC}/cffi-uffi-compat.asd ${STAGEDIR}${ASDF_PATHNAME}
${INSTALL_DATA} ${WRKSRC}/cffi-grovel.asd ${STAGEDIR}${ASDF_PATHNAME}
${RLN} ${STAGEDIR}${ASDF_PATHNAME}/cffi.asd \
${STAGEDIR}${ASDF_PATHNAME}/cffi-uffi-compat.asd \
${STAGEDIR}${ASDF_PATHNAME}/cffi-grovel.asd \
${STAGEDIR}${ASDF_REGISTRY}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR}
.for FILE in shareable-vectors.txt allegro-internals.txt mem-vector.txt
${INSTALL_DATA} ${WRKSRC}/doc/${FILE} ${STAGEDIR}${DOCSDIR}
.endfor
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-manual.html ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-manual.txt ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-manual.pdf ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-sys-spec.html ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-sys-spec.txt ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/cffi-sys-spec.pdf ${STAGEDIR}${DOCSDIR}
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/tests
${INSTALL_DATA} ${WRKSRC}/examples/* ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/tests/* ${STAGEDIR}${EXAMPLESDIR}/tests
.include <bsd.port.mk>