PORTNAME=	picolisp
DISTVERSION=	23.8
CATEGORIES=	lang lisp
#MASTER_SITES=	https://software-lab.de/
MASTER_SITES=	${MASTER_SITE_LOCAL} \
		https://people.freebsd.org/~gahr/
DISTNAME=	picoLisp-${DISTVERSION}

MAINTAINER=	gahr@FreeBSD.org
COMMENT=	A minimal virtual machine and lisp-like language

WWW=		https://picolisp.com

LICENSE=	MIT

LIB_DEPENDS=	libffi.so:devel/libffi

USES=		gmake llvm readline shebangfix ssl tar:tgz
WRKSRC=		${WRKDIR}/pil21/src

SHEBANG_LANG=	pil pic
SHEBANG_FILES=	../bin
pil_OLD_CMD=	/usr/bin/pil
pil_CMD=	${PREFIX}/bin/pil
pic_OLD_CMD=	/usr/bin/picolisp
pic_CMD=	${PREFIX}/bin/picolisp

post-patch:
	${REINPLACE_CMD} -e '\
		/\.SILENT/d; \
		/^CC /s|\(clang\)|\1${LLVM_VERSION}|; \
		/^ASM /s|\(opt\)|\1${LLVM_VERSION}|; \
		/^LLC /s|\(llc\)|\1${LLVM_VERSION}|; \
		/^LINK /s|\(llvm-link\)|\1${LLVM_VERSION}|; \
		/^MAIN /s|\(=\)|\1 -L${LOCALBASE}/lib|; \
		/^LLVM /s|\(llvm-config\)|\1${LLVM_VERSION}|' \
		${WRKSRC}/Makefile
	${FIND} ${WRKSRC}/.. -type f -exec \
		${REINPLACE_CMD} -i '' -e 's|/usr/lib/picolisp|${PREFIX}/lib/picolisp|' {} \;

do-install:
	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
	${INSTALL_DATA} ${WRKSRC}/../ext.l ${STAGEDIR}${PREFIX}/lib/${PORTNAME}
	${INSTALL_DATA} ${WRKSRC}/../lib.l ${STAGEDIR}${PREFIX}/lib/${PORTNAME}

	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/bin
	cd ${WRKSRC}/../bin && ${COPYTREE_BIN} \* ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/bin

.for dir in lib test loc misc
	${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/${dir}
	cd ${WRKSRC}/../${dir} && ${COPYTREE_SHARE} \* ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/${dir}
.endfor

	${MKDIR} ${STAGEDIR}${PREFIX}/bin
	${LN} -sf ../lib/${PORTNAME}/bin/picolisp ${STAGEDIR}${PREFIX}/bin/picolisp
	${LN} -sf ../lib/${PORTNAME}/bin/pil ${STAGEDIR}${PREFIX}/bin/pil

.include <bsd.port.mk>
