luvi: new package
authorJörg Krause <joerg.krause@embedded.rocks>
Thu, 29 Oct 2015 07:45:03 +0000 (08:45 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 20 Dec 2015 22:13:02 +0000 (23:13 +0100)
Add package luvi version v2.3.5.

luvi extends LuaJIT with asynchronous I/O and several optional modules to run
Lua applications and build self-contained binaries.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/luvi/Config.in [new file with mode: 0644]
package/luvi/luvi.hash [new file with mode: 0644]
package/luvi/luvi.mk [new file with mode: 0644]

index 40969fa61716beeae1fecd1fa0bf1f87eca768d7..066aa06c33cc23eb60e78e9e90b6157e43e16e11 100644 (file)
@@ -521,6 +521,7 @@ menu "Lua libraries/modules"
        source "package/luasql-sqlite3/Config.in"
        source "package/lunit/Config.in"
        source "package/luv/Config.in"
+       source "package/luvi/Config.in"
        source "package/lzlib/Config.in"
        source "package/orbit/Config.in"
        source "package/rings/Config.in"
diff --git a/package/luvi/Config.in b/package/luvi/Config.in
new file mode 100644 (file)
index 0000000..2f01f5c
--- /dev/null
@@ -0,0 +1,30 @@
+config BR2_PACKAGE_LUVI
+       bool "luvi"
+       depends on BR2_TOOLCHAIN_HAS_THREADS # libuv
+       depends on BR2_USE_MMU # libuv
+       depends on !BR2_STATIC_LIBS # libuv
+       depends on BR2_PACKAGE_LUAJIT
+       select BR2_PACKAGE_LIBUV
+       select BR2_PACKAGE_LUV
+       help
+         A project in-between luv and luvit. The goal of this is to make
+         building luvit and derivatives much easier.
+
+         luvi extends LuaJIT with asynchronous I/O and several optional
+         modules to run Lua applications and build self-contained binaries
+         on systems that don't have a compiler.
+
+         The luvi core can be extended with several Lua modules by adding its
+         bundled Lua binding libraries. To get the Lua module...
+           * 'rex' select PCRE (BR2_PACKAGE_PCRE)
+           * 'ssl' select OpenSSL (BR2_PACKAGE_OPENSSL)
+           * 'zlib' select zlib (BR2_PACKAGE_ZLIB)
+
+         https://github.com/luvit/luvi
+
+comment "luvi needs a toolchain w/ threads, dynamic library"
+       depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+       depends on BR2_USE_MMU
+
+comment "luvi needs LuaJIT"
+       depends on !BR2_PACKAGE_LUAJIT
diff --git a/package/luvi/luvi.hash b/package/luvi/luvi.hash
new file mode 100644 (file)
index 0000000..c967558
--- /dev/null
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256  9d13baba7870160bd0f9be9d52f8ef1dafe282490d5f83a8e14765aa43387765  luvi-src-v2.3.5.tar.gz
diff --git a/package/luvi/luvi.mk b/package/luvi/luvi.mk
new file mode 100644 (file)
index 0000000..7611c11
--- /dev/null
@@ -0,0 +1,60 @@
+################################################################################
+#
+# luvi
+#
+################################################################################
+
+LUVI_VERSION = v2.3.5
+LUVI_SOURCE = luvi-src-$(LUVI_VERSION).tar.gz
+LUVI_SITE = https://github.com/luvit/luvi/releases/download/$(LUVI_VERSION)
+LUVI_LICENSE = Apache-2.0
+LUVI_LICENSE_FILES = LICENSE.txt
+LUVI_DEPENDENCIES = libuv luajit luv host-luajit
+
+# Dispatch all architectures of LuaJIT
+ifeq ($(BR2_i386),y)
+LUVI_TARGET_ARCH = x86
+else ifeq ($(BR2_x86_64),y)
+LUVI_TARGET_ARCH = x64
+else ifeq ($(BR2_powerpc),y)
+LUVI_TARGET_ARCH = ppc
+else ifeq ($(BR2_arm)$(BR2_armeb),y)
+LUVI_TARGET_ARCH = arm
+else ifeq ($(BR2_mips)$(BR2_mipsel),y)
+LUVI_TARGET_ARCH = mips
+else
+LUVI_TARGET_ARCH = $(BR2_ARCH)
+endif
+
+# Bundled lua bindings have to be linked statically into the luvi executable
+LUVI_CONF_OPTS = \
+       -DBUILD_SHARED_LIBS=OFF \
+       -DWithSharedLibluv=ON \
+       -DTARGET_ARCH=$(LUVI_TARGET_ARCH) \
+       -DLUA_PATH=$(HOST_DIR)/usr/share/luajit-2.0.4/?.lua
+
+# Add "rex" module (PCRE via bundled lrexlib)
+ifeq ($(BR2_PACKAGE_PCRE),y)
+LUVI_DEPENDENCIES += pcre
+LUVI_CONF_OPTS += -DWithPCRE=ON -DWithSharedPCRE=ON
+else
+LUVI_CONF_OPTS += -DWithPCRE=OFF -DWithSharedPCRE=OFF
+endif
+
+# Add "ssl" module (via bundled lua-openssl)
+ifeq ($(BR2_PACKAGE_OPENSSL),y)
+LUVI_DEPENDENCIES += openssl
+LUVI_CONF_OPTS += -DWithOpenSSL=ON -DWithOpenSSLASM=ON -DWithSharedOpenSSL=ON
+else
+LUVI_CONF_OPTS += -DWithOpenSSL=OFF -DWithOpenSSLASM=OFF -DWithSharedOpenSSL=OFF
+endif
+
+# Add "zlib" module (via bundled lua-zlib)
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+LUVI_DEPENDENCIES += zlib
+LUVI_CONF_OPTS += -DWithZLIB=ON -DWithSharedZLIB=ON
+else
+LUVI_CONF_OPTS += -DWithZLIB=OFF -DWithSharedZLIB=OFF
+endif
+
+$(eval $(cmake-package))