PORTNAME=	guile
PORTVERSION=	1.8.8
PORTREVISION=	1
CATEGORIES=	lang scheme
MASTER_SITES=	GNU
PKGNAMESUFFIX=	1

MAINTAINER=	bofh@FreeBSD.org
COMMENT=	GNU Ubiquitous Intelligent Language for Extension
WWW=		https://www.gnu.org/software/guile/

LICENSE=	LGPL21
LICENSE_FILE=	${WRKSRC}/COPYING.LESSER

LIB_DEPENDS=	libltdl.so:devel/libltdl \
		libgmp.so:math/gmp

# We need to pull the aclocal/guile.m4 from guile3 rather than using
# our own version, in order to avoid conflicts.
RUN_DEPENDS=	guile-aclocal>=3:lang/guile-aclocal

USES=		guile:${PORTVERSION:R},env \
		autoreconf cpe gmake libtool makeinfo ncurses pathfix \
		readline
CPE_VENDOR=	gnu
USE_LDCONFIG=	yes

GNU_CONFIGURE=	yes
CONFIGURE_ARGS+=--program-suffix=-${GUILE_VER} \
		--includedir='$${prefix}/include/guile/${GUILE_VER}/'

INSTALL_TARGET=	install-strip

CFLAGS+=	-fwrapv
CPPFLAGS+=	-I${LOCALBASE}/include
LIBS+=		-L${LOCALBASE}/lib
PORTSCOUT=	limit:^1\.

INFO=		goops guile-tut guile r5rs
INFO_PATH=	${GUILE_INFO_PATH}

OPTIONS_DEFINE=	NLS
OPTIONS_SUB=	yes

NLS_USES=		gettext
NLS_USES_OFF=		gettext-tools
NLS_CONFIGURE_ENABLE=	nls

post-extract:
	@${FIND} ${WRKSRC}/doc -name "*.info*" -delete

REINPLACE_FILES_1=	libguile/smob.c libguile/filesys.c libguile/gc.c \
			libguile/mallocs.c libguile/eval.c libguile/gc-malloc.c \
			libguile/ports.c libguile/gc-mark.c libguile/gc_os_dep.c

REINPLACE_FILES_2=	guile-config/guile-config.in

REINPLACE_FILES_3=	PROGRAM frisk read-text-outline generate-autoload \
			scan-api api-diff lint snarf-check-and-output-texi \
			autofrisk punify snarf-guile-m4-docs display-commentary \
			read-rfc822 summarize-guile-TODO doc-snarf \
			read-scheme-source use2dot

post-patch:
	@cd ${WRKSRC} ; \
	  ${REINPLACE_CMD} -e 's|<malloc\.h>|<stdlib.h>|g' ${REINPLACE_FILES_1}
	@${REINPLACE_CMD} -e 's|$$(libdir)|$$(libdir)data|g' ${WRKSRC}/Makefile.am
	@${TOUCH} ${WRKSRC}/Makefile.in
	@cd ${WRKSRC} ; \
	  ${REINPLACE_CMD} -e '1s/guile/guile-${GUILE_VER}/' ${REINPLACE_FILES_2}
	@cd ${WRKSRC}/scripts ; \
	  ${REINPLACE_CMD} -e '1,/!#/s/GUILE-guile/GUILE-guile-${GUILE_VER}/' \
		${REINPLACE_FILES_3}

post-install:
	${RM} ${STAGEDIR}${PREFIX}/share/aclocal/guile.m4
	for p in guile guile-tools guile-config guile-snarf; do \
	  ${LN} -s $${p}-${GUILE_VER} ${STAGEDIR}${PREFIX}/bin/$${p}${GUILE_SFX}; \
	done
	${MV} ${STAGEDIR}${PREFIX}/man/man1/guile-${GUILE_VER}.1 \
	      ${STAGEDIR}${PREFIX}/man/man1/guile${GUILE_SFX}.1

.include <bsd.port.mk>
