PORTNAME=	lua
PORTVERSION=	5.1.5
PORTREVISION=	10
CATEGORIES=	lang
MASTER_SITES=	http://www.lua.org/ftp/
PKGNAMESUFFIX=	51

MAINTAINER=	nicklaus.t@me.com
COMMENT=	Small, compilable scripting language providing easy access to C code
WWW=		https://www.lua.org/

LICENSE=	MIT

USES=		cpe libedit lua:core,51
USE_LDCONFIG=	yes

# liblua.so requires libm, so make sure it has an explicit dependency
# so that applications need not second-guess lua's dependencies.
CPPFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-lm -pthread
BUILD_WRKSRC=	${WRKSRC}/src
MAKE_ARGS+=	MYCFLAGS="${CFLAGS} ${CPPFLAGS} -DLUA_USE_LINUX" \
		MYLDFLAGS="${LDFLAGS}" \
		MYLIBS="-Wl,-E -L${LOCALBASE}/lib -ledit" \
		CC="${CC}" \
		LUA_T=lua51 \
		LUAC_T=luac51 \
		LUA_A=liblua-${LUA_VER}.a \
		LUA_SO=liblua-${LUA_VER}.so \
		LUA_SONAME=liblua-${LUA_VER}.so \
		TO_BIN="lua51 luac51" \
		TO_LIB="liblua-${LUA_VER}.a liblua-${LUA_VER}.so" \
		INSTALL_TOP=${STAGEDIR}${PREFIX} \
		INSTALL_INC=${STAGEDIR}${PREFIX}/include/lua51 \
		INSTALL_EXEC="${INSTALL_PROGRAM}"

CFLAGS+=	-fPIC

post-patch:
	@${REINPLACE_CMD} -e 's,rand *(,random(,g' \
		${WRKSRC}/src/lmathlib.c
	@${REINPLACE_CMD} -e "/LUA_ROOT/s|/usr/local|${LUA_PREFIX}| ; \
		s,readline/,editline/,g ; \
		/history\.h/d" \
		${WRKSRC}/src/luaconf.h
	@${REINPLACE_CMD} -i '' -Ee \
		's|^(prefix=).*|\1 ${PREFIX}| ; \
		s|^(libdir=).*|\1 ${LUA_LIBDIR}| ; \
		s|^(includedir=).*|\1 ${LUA_INCDIR}| ; \
		s|^(INSTALL_BIN=).*|\1 ${LUA_BINDIR}| ; \
		s|^(INSTALL_INC=).*|\1 ${LUA_INCDIR}| ; \
		s|^(INSTALL_LIB=).*|\1 ${LUA_LIBDIR}| ; \
		s|^(INSTALL_CMOD=).*|\1 ${LUA_MODLIBDIR}| ; \
		s|^(INSTALL_LMOD=).*|\1 ${LUA_MODSHAREDIR}| ; \
		s|llua|llua-${LUA_VER}|' \
		${WRKSRC}/etc/lua.pc
	@${REINPLACE_CMD} -e "s|man/man|share/man/man|g" \
		${WRKSRC}/Makefile

post-install:
	@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/liblua-${LUA_VER}.so
	@${MV} ${STAGEDIR}${PREFIX}/share/man/man1/lua.1 \
		${STAGEDIR}${PREFIX}/share/man/man1/lua51.1
	@${MV} ${STAGEDIR}${PREFIX}/share/man/man1/luac.1 \
		${STAGEDIR}${PREFIX}/share/man/man1/luac51.1
	${INSTALL_DATA} ${WRKSRC}/etc/lua.pc \
		${STAGEDIR}${PREFIX}/libdata/pkgconfig/lua-${LUA_VER}.pc

.include <bsd.port.mk>
