diff options
author | nia <nia@pkgsrc.org> | 2020-06-30 13:16:14 +0000 |
---|---|---|
committer | nia <nia@pkgsrc.org> | 2020-06-30 13:16:14 +0000 |
commit | f8e4b1f05c625d8325f19c3df7d41701c3f4c51e (patch) | |
tree | 1215accc58f0e496de095c4d9f1e493d5eaf40f2 /lang/lua54 | |
parent | 8f196b411240b5dd6ba6b6373b7c0064a4d0890f (diff) | |
download | pkgsrc-f8e4b1f05c625d8325f19c3df7d41701c3f4c51e.tar.gz |
lang: Add lua54.
Note: this is slightly different than other Lua packages and, among
other things, implements its own install target. This is becuase I
wanted to minimize the amount of patching to Makefiles to make it
fit into the pkgsrc world.
Lua is a powerful, fast, lightweight, embeddable scripting language.
Lua combines simple procedural syntax with powerful data description
constructs based on associative arrays and extensible semantics. Lua is
dynamically typed, runs by interpreting bytecode for a register-based
virtual machine, and has automatic memory management with incremental
garbage collection, making it ideal for configuration, scripting, and
rapid prototyping.
This version is a preferred choice for new Lua modules.
Diffstat (limited to 'lang/lua54')
-rw-r--r-- | lang/lua54/ALTERNATIVES | 2 | ||||
-rw-r--r-- | lang/lua54/DESCR | 10 | ||||
-rw-r--r-- | lang/lua54/Makefile | 94 | ||||
-rw-r--r-- | lang/lua54/PLIST | 20 | ||||
-rw-r--r-- | lang/lua54/buildlink3.mk | 22 | ||||
-rw-r--r-- | lang/lua54/distinfo | 7 | ||||
-rw-r--r-- | lang/lua54/files/lua.pc.in | 21 | ||||
-rw-r--r-- | lang/lua54/patches/patch-src_Makefile | 88 | ||||
-rw-r--r-- | lang/lua54/version.mk | 6 |
9 files changed, 270 insertions, 0 deletions
diff --git a/lang/lua54/ALTERNATIVES b/lang/lua54/ALTERNATIVES new file mode 100644 index 00000000000..6ce7c7a510e --- /dev/null +++ b/lang/lua54/ALTERNATIVES @@ -0,0 +1,2 @@ +bin/lua @PREFIX@/bin/lua5.4 +bin/luac @PREFIX@/bin/luac5.4 diff --git a/lang/lua54/DESCR b/lang/lua54/DESCR new file mode 100644 index 00000000000..470ceebf160 --- /dev/null +++ b/lang/lua54/DESCR @@ -0,0 +1,10 @@ +Lua is a powerful, fast, lightweight, embeddable scripting language. + +Lua combines simple procedural syntax with powerful data description +constructs based on associative arrays and extensible semantics. Lua is +dynamically typed, runs by interpreting bytecode for a register-based +virtual machine, and has automatic memory management with incremental +garbage collection, making it ideal for configuration, scripting, and +rapid prototyping. + +This version is a preferred choice for new Lua modules. diff --git a/lang/lua54/Makefile b/lang/lua54/Makefile new file mode 100644 index 00000000000..f309a21f8e6 --- /dev/null +++ b/lang/lua54/Makefile @@ -0,0 +1,94 @@ +# $NetBSD: Makefile,v 1.1 2020/06/30 13:16:14 nia Exp $ + +DISTNAME= lua-${LUA_VERSION} +PKGNAME= lua54-${LUA_VERSION} +CATEGORIES= lang +MASTER_SITES= https://www.lua.org/ftp/ + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= https://www.lua.org/ +COMMENT= Powerful light-weight language for extending applications +LICENSE= mit + +.include "../../lang/lua54/version.mk" + +CONFLICTS+= lua-[0-9]* + +USE_TOOLS+= gmake +USE_LIBTOOL= yes + +.include "../../mk/bsd.prefs.mk" + +MAKE_FLAGS+= MYCFLAGS="-DLUA_USE_READLINE" +MAKE_FLAGS+= INSTALL_TOP=${PREFIX} +MAKE_FLAGS+= INSTALL_INC=${PREFIX}/include/lua-5.4 +MAKE_FLAGS+= INSTALL_MAN=${PREFIX}/${PKGMANDIR}/man1 + +# Address pkg/47587 lua not linked to pthread causes issues with modules +PTHREAD_OPTS+= native + +.include "../../mk/pthread.buildlink3.mk" + +.if defined(PTHREAD_TYPE) && ${PTHREAD_TYPE} == "native" +CFLAGS+= -pthread +LDFLAGS+= -pthread +.endif + +.if !empty(OPSYS:M*BSD*) || ${OPSYS} == "DragonFly" +BUILD_TARGET= bsd +.elif ${OPSYS} == "Linux" +BUILD_TARGET= linux-noreadline +.elif ${OPSYS} == "Darwin" +BUILD_TARGET= macosx +.elif ${OPSYS} == "SunOS" +BUILD_TARGET= solaris +.elif ${OPSYS} == "AIX" +BUILD_TARGET= aix +.else +BUILD_TARGET= posix +.endif + +DOCDIR= ${PREFIX}/share/doc/lua-5.4 + +SUBST_CLASSES+= prefix +SUBST_STAGE.prefix= pre-configure +SUBST_FILES.prefix+= src/luaconf.h +SUBST_SED.prefix+= -e "s,/usr/local,${PREFIX},g" + +PKGCONFIG_OVERRIDE= lua.pc +INSTALLATION_DIRS+= bin lib include/lua-5.4 +INSTALLATION_DIRS+= ${PKGMANDIR}/man1 +INSTALLATION_DIRS+= lib/pkgconfig share/doc/lua-5.4 + +pre-configure: + sed -e 's,@PREFIX@,${PREFIX},g' \ + -e 's,@VER@,${PKGVERSION_NOREV:R},g' \ + -e 's,@REV@,${PKGVERSION_NOREV},g' \ + ${FILESDIR}/lua.pc.in > ${WRKSRC}/lua.pc + cp ${WRKSRC}/doc/lua.1 ${WRKSRC}/doc/lua5.4.1 + cp ${WRKSRC}/doc/luac.1 ${WRKSRC}/doc/luac5.4.1 + +do-install: + ${LIBTOOL} --quiet --tag=CC --mode=install \ + ${INSTALL_PROGRAM} ${WRKSRC}/src/lua ${DESTDIR}${PREFIX}/bin/lua5.4 + ${LIBTOOL} --quiet --tag=CC --mode=install \ + ${INSTALL_PROGRAM} ${WRKSRC}/src/luac ${DESTDIR}${PREFIX}/bin/luac5.4 + ${LIBTOOL} --quiet --tag=CC --mode=install \ + ${INSTALL_LIB} ${WRKSRC}/src/liblua5.4.la ${DESTDIR}${PREFIX}/lib + cd ${WRKSRC}/src && ${INSTALL_DATA} lua.h luaconf.h lualib.h lauxlib.h lua.hpp \ + ${DESTDIR}${PREFIX}/include/lua-5.4 + cd ${WRKSRC}/doc && ${INSTALL_MAN} lua.1 luac.1 \ + ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 + ${INSTALL_DATA} ${WRKSRC}/doc/*.[a-z][a-z][a-z] \ + ${WRKSRC}/doc/*.html ${DESTDIR}${DOCDIR} + ${INSTALL_DATA} ${WRKSRC}/lua.pc \ + ${DESTDIR}${PREFIX}/lib/pkgconfig/lua-5.4.pc + +.include "../../mk/readline.buildlink3.mk" +.if ${READLINE_TYPE} == "editline" +MAKE_FLAGS+= MYLIBS="-L${BUILDLINK_PREFIX.editlinereadline} -ledit" +.else +MAKE_FLAGS+= MYLIBS="-L${BUILDLINK_PREFIX.editlinereadline} -lreadline" +.endif +.include "../../mk/dlopen.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/lang/lua54/PLIST b/lang/lua54/PLIST new file mode 100644 index 00000000000..b4480a3cc71 --- /dev/null +++ b/lang/lua54/PLIST @@ -0,0 +1,20 @@ +@comment $NetBSD: PLIST,v 1.1 2020/06/30 13:16:14 nia Exp $ +bin/lua5.4 +bin/luac5.4 +include/lua-5.4/lauxlib.h +include/lua-5.4/lua.h +include/lua-5.4/lua.hpp +include/lua-5.4/luaconf.h +include/lua-5.4/lualib.h +lib/liblua5.4.la +lib/pkgconfig/lua-5.4.pc +man/man1/lua.1 +man/man1/luac.1 +share/doc/lua-5.4/contents.html +share/doc/lua-5.4/index.css +share/doc/lua-5.4/logo.gif +share/doc/lua-5.4/lua.css +share/doc/lua-5.4/manual.css +share/doc/lua-5.4/manual.html +share/doc/lua-5.4/osi-certified-72x60.png +share/doc/lua-5.4/readme.html diff --git a/lang/lua54/buildlink3.mk b/lang/lua54/buildlink3.mk new file mode 100644 index 00000000000..f96a3a85bfe --- /dev/null +++ b/lang/lua54/buildlink3.mk @@ -0,0 +1,22 @@ +# $NetBSD: buildlink3.mk,v 1.1 2020/06/30 13:16:14 nia Exp $ + +BUILDLINK_TREE+= lua54 + +.if !defined(LUA54_BUILDLINK3_MK) +LUA54_BUILDLINK3_MK:= + +BUILDLINK_API_DEPENDS.lua54+= lua54>=5.4.0<5.4 +BUILDLINK_PKGSRCDIR.lua54?= ../../lang/lua54 + +.if defined(BUILDLINK_DEPMETHOD.lua) +BUILDLINK_DEPMETHOD.lua54?= ${BUILDLINK_DEPMETHOD.lua} +.endif + +# -llua -> -llua5.4 +BUILDLINK_TRANSFORM+= l:lua:lua5.4 +BUILDLINK_INCDIRS.lua54+= include/lua-5.4 + +.include "../../mk/readline.buildlink3.mk" +.endif # LUA54_BUILDLINK3_MK + +BUILDLINK_TREE+= -lua54 diff --git a/lang/lua54/distinfo b/lang/lua54/distinfo new file mode 100644 index 00000000000..f050931e2ba --- /dev/null +++ b/lang/lua54/distinfo @@ -0,0 +1,7 @@ +$NetBSD: distinfo,v 1.1 2020/06/30 13:16:14 nia Exp $ + +SHA1 (lua-5.4.0.tar.gz) = 8cdbffa8a214a23d190d7c45f38c19518ae62e89 +RMD160 (lua-5.4.0.tar.gz) = cb188956351b40f7a1420067e90d309cdcf8ea45 +SHA512 (lua-5.4.0.tar.gz) = 22aa0f9fcf953fc49c97bf50a4cee708b458e8a95447f881037b2c6ddd60e40368a807f2575671c6cd7497cedc2cf5716a8959c196445bf9a359fe7ebcd65465 +Size (lua-5.4.0.tar.gz) = 349308 bytes +SHA1 (patch-src_Makefile) = e481eced298e45cb45276e294a9b39e3b7d52046 diff --git a/lang/lua54/files/lua.pc.in b/lang/lua54/files/lua.pc.in new file mode 100644 index 00000000000..5eb471137c1 --- /dev/null +++ b/lang/lua54/files/lua.pc.in @@ -0,0 +1,21 @@ +# $NetBSD: lua.pc.in,v 1.1 2020/06/30 13:16:14 nia Exp $ +# lua.pc is not any longer distributed, but is still required by other packages. + +prefix= @PREFIX@ +INSTALL_BIN= ${prefix}/bin +INSTALL_INC= ${prefix}/include +INSTALL_LIB= ${prefix}/lib +INSTALL_MAN= ${prefix}/man/man1 +INSTALL_LMOD= ${prefix}/share/lua/@VER@ +INSTALL_CMOD= ${prefix}/lib/lua/@VER@ + +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include/lua-5.4 + +Name: Lua +Description: An Extensible Extension Language +Version: @REV@ +Requires: +Libs: -L${libdir} -llua5.4 -lm +Cflags: -I${includedir} diff --git a/lang/lua54/patches/patch-src_Makefile b/lang/lua54/patches/patch-src_Makefile new file mode 100644 index 00000000000..db33a1b84ce --- /dev/null +++ b/lang/lua54/patches/patch-src_Makefile @@ -0,0 +1,88 @@ +$NetBSD: patch-src_Makefile,v 1.1 2020/06/30 13:16:14 nia Exp $ + +- Don't override CC/CFLAGS/LDFLAGS. +- Use libtool to build shared libraries. + +--- src/Makefile.orig 2020-04-15 13:00:29.000000000 +0000 ++++ src/Makefile +@@ -6,9 +6,8 @@ + # Your platform. See PLATS for possible values. + PLAT= guess + +-CC= gcc -std=gnu99 +-CFLAGS= -O2 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS) +-LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS) ++CFLAGS+= -std=gnu99 -Wall -Wextra -DLUA_COMPAT_5_3 $(SYSCFLAGS) $(MYCFLAGS) ++LDFLAGS+= $(SYSLDFLAGS) $(MYLDFLAGS) + LIBS= -lm $(SYSLIBS) $(MYLIBS) + + AR= ar rcu +@@ -25,23 +24,20 @@ MYLDFLAGS= + MYLIBS= + MYOBJS= + +-# Special flags for compiler modules; -Os reduces code size. +-CMCFLAGS= -Os +- + # == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE ======= + + PLATS= guess aix bsd c89 freebsd generic linux linux-readline macosx mingw posix solaris + +-LUA_A= liblua.a ++LUA_A= liblua5.4.la + CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o lundump.o lvm.o lzio.o + LIB_O= lauxlib.o lbaselib.o lcorolib.o ldblib.o liolib.o lmathlib.o loadlib.o loslib.o lstrlib.o ltablib.o lutf8lib.o linit.o +-BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS) ++BASE_O= $(CORE_O:.o=.lo) $(LIB_O:.o=.lo) $(MYOBJS:.o=.lo) + + LUA_T= lua +-LUA_O= lua.o ++LUA_O= lua.lo + + LUAC_T= luac +-LUAC_O= luac.o ++LUAC_O= luac.lo + + ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O) + ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) +@@ -56,15 +52,19 @@ o: $(ALL_O) + + a: $(ALL_A) + ++.SUFFIXES: .lo ++ ++.c.lo: ++ $(LIBTOOL) --quiet --tag=CC --mode=compile $(CC) $(CFLAGS) -c $< ++ + $(LUA_A): $(BASE_O) +- $(AR) $@ $(BASE_O) +- $(RANLIB) $@ ++ $(LIBTOOL) --quiet --tag=CC --mode=link $(CC) -o $@ $(LDFLAGS) $(BASE_O) -rpath $(PREFIX)/lib -version-info 5:4 $(LIBS) + + $(LUA_T): $(LUA_O) $(LUA_A) +- $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ++ $(LIBTOOL) --quiet --tag=CC --mode=link $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + + $(LUAC_T): $(LUAC_O) $(LUA_A) +- $(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ++ $(LIBTOOL) --quiet --tag=CC --mode=link $(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) + + test: + ./lua -v +@@ -141,16 +141,6 @@ SunOS solaris: + # Targets that do not create files (not all makes understand .PHONY). + .PHONY: all $(PLATS) help test clean default o a depend echo + +-# Compiler modules may use special flags. +-llex.o: +- $(CC) $(CFLAGS) $(CMCFLAGS) -c llex.c +- +-lparser.o: +- $(CC) $(CFLAGS) $(CMCFLAGS) -c lparser.c +- +-lcode.o: +- $(CC) $(CFLAGS) $(CMCFLAGS) -c lcode.c +- + # DO NOT DELETE + + lapi.o: lapi.c lprefix.h lua.h luaconf.h lapi.h llimits.h lstate.h \ diff --git a/lang/lua54/version.mk b/lang/lua54/version.mk new file mode 100644 index 00000000000..bd403eb26ea --- /dev/null +++ b/lang/lua54/version.mk @@ -0,0 +1,6 @@ +# $NetBSD: version.mk,v 1.1 2020/06/30 13:16:14 nia Exp $ + +LUA_VERSION= 5.4.0 + +LUA_VERSION_MAJOR= ${LUA_VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\1/} +LUA_VERSION_MINOR= ${LUA_VERSION:C/([0-9]+)\.([0-9]+)\.([0-9]+)/\2/} |