summaryrefslogtreecommitdiff
path: root/lang/lua54
diff options
context:
space:
mode:
authornia <nia@pkgsrc.org>2020-06-30 13:16:14 +0000
committernia <nia@pkgsrc.org>2020-06-30 13:16:14 +0000
commitf8e4b1f05c625d8325f19c3df7d41701c3f4c51e (patch)
tree1215accc58f0e496de095c4d9f1e493d5eaf40f2 /lang/lua54
parent8f196b411240b5dd6ba6b6373b7c0064a4d0890f (diff)
downloadpkgsrc-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/ALTERNATIVES2
-rw-r--r--lang/lua54/DESCR10
-rw-r--r--lang/lua54/Makefile94
-rw-r--r--lang/lua54/PLIST20
-rw-r--r--lang/lua54/buildlink3.mk22
-rw-r--r--lang/lua54/distinfo7
-rw-r--r--lang/lua54/files/lua.pc.in21
-rw-r--r--lang/lua54/patches/patch-src_Makefile88
-rw-r--r--lang/lua54/version.mk6
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/}