Changeset View
Changeset View
Standalone View
Standalone View
head/lang/lua53/Makefile
# Created by: GreenDog <fiziologus@gmail.com> | # Created by: GreenDog <fiziologus@gmail.com> | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
PORTNAME= lua | PORTNAME= lua | ||||
PORTVERSION= 5.3.4 | DISTVERSION= 5.3.5 | ||||
PORTREVISION= 2 | |||||
CATEGORIES= lang | CATEGORIES= lang | ||||
MASTER_SITES= http://www.lua.org/ftp/ | MASTER_SITES= https://www.lua.org/ftp/ | ||||
PKGNAMESUFFIX= 53 | PKGNAMESUFFIX= 53 | ||||
MAINTAINER= russ.haley@gmail.com | MAINTAINER= russ.haley@gmail.com | ||||
COMMENT= Small, compilable scripting language providing easy access to C code | COMMENT= Powerful, efficient, lightweight, embeddable scripting language | ||||
LICENSE= MIT | LICENSE= MIT | ||||
USES= libedit | |||||
LUA_VER= 5.3 | LUA_VER= 5.3 | ||||
USE_LDCONFIG= yes | USE_LDCONFIG= yes | ||||
# Overriding __MAKE_CONF makes sure that we don't re-parse | # Overriding __MAKE_CONF makes sure that we don't re-parse | ||||
# /etc/make.conf during do-build, which would jeopardize the build | # /etc/make.conf during do-build, which would jeopardize the build | ||||
# if, for instance, the user set CFLAGS=mumble | # if, for instance, the user set CFLAGS=mumble | ||||
# NOTE: /etc/make.conf is read BEFORE Makefile, so we already | # NOTE: /etc/make.conf is read BEFORE Makefile, so we already | ||||
# have its settings when we get here. | # have its settings when we get here. | ||||
# See http://wiki.freebsd.org/MatthiasAndree/LuaLessonsLearnt | # See http://wiki.freebsd.org/MatthiasAndree/LuaLessonsLearnt | ||||
MAKE_ARGS= __MAKE_CONF=${NONEXISTENT} | MAKE_ARGS= __MAKE_CONF=${NONEXISTENT} | ||||
# 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 | BUILD_WRKSRC= ${WRKSRC}/src | ||||
MAKE_ARGS+= MYCFLAGS="${CFLAGS} ${CPPFLAGS} -DLUA_USE_LINUX" \ | |||||
# Source, destination, and filenames to copy for the DOCS option | |||||
# (automatically added to pkg-plist if DOCS is set) | |||||
# We override DOCSDIR to get a per-version subdir. | |||||
# We put the docs for Lua proper in a lua/ subdir of the version subdir | |||||
# so that ports for Lua modules can use the version subdir too without | |||||
# making a mess. | |||||
DOCSDIR= ${PREFIX}/share/doc/lua${PKGNAMESUFFIX}/lua | |||||
PORTDOCS= * | |||||
BUILD_WRKDOC= ${WRKSRC}/doc | |||||
LUA_PREFIX= ${PREFIX} | |||||
# 2018-03-17: AG - These should match lua.mk, but we can't include that here | |||||
LUA_CMD= lua${PKGNAMESUFFIX} | |||||
LUAC_CMD= luac${PKGNAMESUFFIX} | |||||
LUA_INCDIR= ${LUA_PREFIX}/include/lua${PKGNAMESUFFIX} | |||||
LUA_LIBDIR= ${LUA_PREFIX}/lib | |||||
LUA_LIB_STATIC= liblua-${LUA_VER}.a | |||||
LUA_LIB_SHARED= liblua-${LUA_VER}.so | |||||
LUA_PC_FILE= lua-${LUA_VER}.pc | |||||
# using the "bsd" target rather than "freebsd" saves patching out the | |||||
# assumption of using base libedit in order to make it configurable. "bsd" | |||||
# is "generic" plus the POSIX and DLOPEN options, plus -Wl,-E at link time; | |||||
# it doesn't set CC either, which makes it easier for us to control that too. | |||||
ALL_TARGET=bsd | |||||
# Options | |||||
OPTIONS_DEFAULT=LIBEDIT_DL DOCS | |||||
OPTIONS_GROUP= DOCSGRP DEBUGGRP | |||||
OPTIONS_SINGLE= EDITGRP | |||||
OPTIONS_GROUP_DOCSGRP= DOCS | |||||
OPTIONS_GROUP_DEBUGGRP= ASSERT APICHECK | |||||
OPTIONS_SINGLE_EDITGRP= EDITNONE LIBEDIT_DL LIBEDIT READLINE | |||||
# Option descriptions | |||||
DEBUGGRP_DESC= Debugging options | |||||
ASSERT_DESC= Enable interpreter assertions | |||||
APICHECK_DESC= Enable API checks | |||||
DOCSGRP_DESC= Documentation options | |||||
DOCS_DESC= Install language and API reference (HTML, ~400kB) | |||||
EDITGRP_DESC= Interactive command-line editing | |||||
EDITNONE_DESC= No command-line editing | |||||
LIBEDIT_DL_DESC=Use dynamically loaded libedit (recommended) | |||||
LIBEDIT_DESC= Use libedit (breaks lcurses) | |||||
READLINE_DESC= Use GNU Readline (breaks lcurses) | |||||
# Option implementations | |||||
ASSERT_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-assert | |||||
APICHECK_CPPFLAGS= -DLUA_USE_APICHECK | |||||
# EDITNONE currently requires no settings | |||||
LIBEDIT_DL_USES= libedit | |||||
LIBEDIT_DL_CPPFLAGS= -DLUA_USE_READLINE_DL | |||||
LIBEDIT_USES= libedit | |||||
LIBEDIT_CPPFLAGS= -DLUA_USE_READLINE | |||||
LIBEDIT_LIBS= -ledit | |||||
READLINE_USES= readline | |||||
READLINE_CPPFLAGS= -DLUA_USE_READLINE | |||||
READLINE_LIBS= -lreadline | |||||
# end of option vars | |||||
CFLAGS+= -fPIC | |||||
WITHOUT_NO_STRICT_ALIASING=yes | |||||
MAKE_ARGS+= CC="${CC}" \ | |||||
MYCFLAGS="${CPPFLAGS} ${CFLAGS}" \ | |||||
MYLDFLAGS="${LDFLAGS}" \ | MYLDFLAGS="${LDFLAGS}" \ | ||||
MYLIBS="-Wl,-E -L${LOCALBASE}/lib -ledit" \ | MYLIBS="${LIBS}" \ | ||||
CC="${CC}" \ | LUA_T=${LUA_CMD} \ | ||||
LUA_T=lua53 \ | LUAC_T=${LUAC_CMD} \ | ||||
LUAC_T=luac53 \ | LUA_A=${LUA_LIB_STATIC} \ | ||||
LUA_A=liblua-${LUA_VER}.a \ | LUA_SO=${LUA_LIB_SHARED} \ | ||||
LUA_SO=liblua-${LUA_VER}.so \ | LUA_SONAME=${LUA_LIB_SHARED} \ | ||||
LUA_SONAME=liblua-${LUA_VER}.so \ | TO_BIN="${LUA_CMD} ${LUAC_CMD}" \ | ||||
TO_BIN="lua53 luac53" \ | TO_LIB="${LUA_LIB_SHARED} ${LUA_LIB_STATIC}" \ | ||||
TO_LIB="liblua-${LUA_VER}.a liblua-${LUA_VER}.so" \ | |||||
INSTALL_TOP=${STAGEDIR}${PREFIX} \ | INSTALL_TOP=${STAGEDIR}${PREFIX} \ | ||||
INSTALL_INC=${STAGEDIR}${PREFIX}/include/lua53 \ | INSTALL_INC=${STAGEDIR}${LUA_INCDIR} \ | ||||
INSTALL_EXEC="${INSTALL_PROGRAM}" | INSTALL_EXEC="${INSTALL_PROGRAM}" | ||||
# Cope with the lack of support for Lua 5.2 in bsd.lua.mk. These | SUB_FILES= ${LUA_PC_FILE} | ||||
# overrides, which are required below, should be removed once bsd.lua.mk | |||||
# understands this lua version. | |||||
LUA_PREFIX?= ${PREFIX} | |||||
LUA_SUBDIR?= lua${PKGNAMESUFFIX} | |||||
LUA_INCDIR?= ${LUA_PREFIX}/include/${LUA_SUBDIR} | |||||
LUA_LIBDIR?= ${LUA_PREFIX}/lib | |||||
SUB_FILES= lua-${LUA_VER}.pc | |||||
SUB_LIST= version=${PORTVERSION} \ | SUB_LIST= version=${PORTVERSION} \ | ||||
includedir=${LUA_INCDIR} \ | includedir=${LUA_INCDIR} \ | ||||
libdir=${LUA_LIBDIR} \ | libdir=${LUA_LIBDIR} \ | ||||
soname=lua-${LUA_VER} | soname=lua-${LUA_VER} | ||||
CFLAGS+= -fPIC | |||||
post-patch: | post-patch: | ||||
@${REINPLACE_CMD} -e 's,rand *(,random(,g' \ | @${REINPLACE_CMD} -e "/LUA_ROOT/s,/usr/local,${LUA_PREFIX}," \ | ||||
${WRKSRC}/src/lmathlib.c | ${WRKSRC}/src/luaconf.h | ||||
@${REINPLACE_CMD} -e "/LUA_ROOT/s|/usr/local|${LUA_PREFIX}| ; \ | |||||
s,readline/,editline/,g ; \ | |||||
/history\.h/d" \ | |||||
${WRKSRC}/src/luaconf.h ${WRKSRC}/src/lua.c | |||||
post-patch-LIBEDIT-on: | |||||
@${REINPLACE_CMD} -e "s,readline/,editline/,g ; \ | |||||
/history\.h/d" ${WRKSRC}/src/lua.c | |||||
post-patch-LIBEDIT_DL-on: | |||||
@${REINPLACE_CMD} \ | |||||
-e "/^#def.*LUA_READLINE_LIBPATH/s,/usr/local,${LOCALBASE}," \ | |||||
${WRKSRC}/src/lua.c | |||||
post-install: | post-install: | ||||
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/liblua-${LUA_VER}.so | ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/${LUA_LIB_SHARED} | ||||
@${MV} ${STAGEDIR}${PREFIX}/man/man1/lua.1 \ | ${MV} ${STAGEDIR}${PREFIX}/man/man1/lua.1 \ | ||||
${STAGEDIR}${PREFIX}/man/man1/lua53.1 | ${STAGEDIR}${PREFIX}/man/man1/${LUA_CMD}.1 | ||||
@${MV} ${STAGEDIR}${PREFIX}/man/man1/luac.1 \ | ${MV} ${STAGEDIR}${PREFIX}/man/man1/luac.1 \ | ||||
${STAGEDIR}${PREFIX}/man/man1/luac53.1 | ${STAGEDIR}${PREFIX}/man/man1/${LUAC_CMD}.1 | ||||
${INSTALL_DATA} ${WRKDIR}/lua-${LUA_VER}.pc \ | ${INSTALL_DATA} ${WRKDIR}/${LUA_PC_FILE} \ | ||||
${STAGEDIR}${PREFIX}/libdata/pkgconfig | ${STAGEDIR}${PREFIX}/libdata/pkgconfig | ||||
post-install-DOCS-on: | |||||
${MKDIR} ${STAGEDIR}${DOCSDIR} | |||||
(cd ${BUILD_WRKDOC} && \ | |||||
${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} '-not -name *\.1') | |||||
.include <bsd.port.mk> | .include <bsd.port.mk> |