luajit: new package
Signed-off-by: Francois Perrad <francois.perrad@gadz.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
1d4104f0d0
commit
f93e17f0b4
@ -245,7 +245,8 @@ endmenu
|
||||
menu "Interpreter languages and scripting"
|
||||
source "package/haserl/Config.in"
|
||||
source "package/lua/Config.in"
|
||||
if BR2_PACKAGE_LUA
|
||||
source "package/luajit/Config.in"
|
||||
if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT
|
||||
menu "LUA libraries/modules"
|
||||
source "package/cgilua/Config.in"
|
||||
source "package/copas/Config.in"
|
||||
|
12
package/luajit/Config.in
Normal file
12
package/luajit/Config.in
Normal file
@ -0,0 +1,12 @@
|
||||
config BR2_PACKAGE_LUAJIT
|
||||
bool "luajit"
|
||||
# Luajit is only available for some target architectures, and
|
||||
# has some complexity wrt 32/64. See luajit.mk for details.
|
||||
depends on BR2_i386 || (BR2_x86_64 && BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb
|
||||
help
|
||||
LuaJIT implements the full set of language features defined
|
||||
by Lua 5.1. The virtual machine (VM) is API- and
|
||||
ABI-compatible to the standard Lua interpreter and can be
|
||||
deployed as a drop-in replacement.
|
||||
|
||||
http://luajit.org/
|
22
package/luajit/luajit-01-root-path.patch
Normal file
22
package/luajit/luajit-01-root-path.patch
Normal file
@ -0,0 +1,22 @@
|
||||
Adjust installation location to /usr
|
||||
|
||||
Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/src/luaconf.h
|
||||
===================================================================
|
||||
--- a/src/luaconf.h
|
||||
+++ b/src/luaconf.h
|
||||
@@ -22,9 +22,9 @@
|
||||
#define LUA_CPATH_DEFAULT \
|
||||
".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
|
||||
#else
|
||||
-#define LUA_ROOT "/usr/local/"
|
||||
-#define LUA_LDIR LUA_ROOT "share/lua/5.1/"
|
||||
-#define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
|
||||
+#define LUA_ROOT "/usr/"
|
||||
+#define LUA_LDIR LUA_ROOT "share/lua/"
|
||||
+#define LUA_CDIR LUA_ROOT "lib/lua/"
|
||||
#ifdef LUA_XROOT
|
||||
#define LUA_JDIR LUA_XROOT "share/luajit-2.0.0-beta10/"
|
||||
#define LUA_XPATH \
|
17
package/luajit/luajit-02-shared-lib.patch
Normal file
17
package/luajit/luajit-02-shared-lib.patch
Normal file
@ -0,0 +1,17 @@
|
||||
Compile the luajit binary dynamically against the luajit library
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/src/Makefile
|
||||
===================================================================
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -629,7 +629,7 @@
|
||||
|
||||
$(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP)
|
||||
$(E) "LINK $@"
|
||||
- $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_ALIBS)
|
||||
+ $(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) -lluajit -L. $(TARGET_ALIBS)
|
||||
$(Q)$(TARGET_STRIP) $@
|
||||
$(E) "OK Successfully built LuaJIT"
|
||||
|
23
package/luajit/luajit-03-dont-strip.patch
Normal file
23
package/luajit/luajit-03-dont-strip.patch
Normal file
@ -0,0 +1,23 @@
|
||||
Don't strip the library and binary
|
||||
|
||||
This allows Buildroot to do it if needed, but only if needed.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/src/Makefile
|
||||
===================================================================
|
||||
--- a/src/Makefile
|
||||
+++ b/src/Makefile
|
||||
@@ -625,12 +625,10 @@
|
||||
$(LUAJIT_SO): $(LJVMCORE_O)
|
||||
$(E) "DYNLINK $@"
|
||||
$(Q)$(TARGET_LD) $(TARGET_ASHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_ALIBS)
|
||||
- $(Q)$(TARGET_STRIP) $@
|
||||
|
||||
$(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP)
|
||||
$(E) "LINK $@"
|
||||
$(Q)$(TARGET_LD) $(TARGET_ALDFLAGS) -o $@ $(LUAJIT_O) -lluajit -L. $(TARGET_ALIBS)
|
||||
- $(Q)$(TARGET_STRIP) $@
|
||||
$(E) "OK Successfully built LuaJIT"
|
||||
|
||||
##############################################################################
|
40
package/luajit/luajit-04-no-bin-symlink.patch
Normal file
40
package/luajit/luajit-04-no-bin-symlink.patch
Normal file
@ -0,0 +1,40 @@
|
||||
Do not use a symlink for the binary, simply name if luajit
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/Makefile
|
||||
===================================================================
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -41,8 +41,7 @@
|
||||
INSTALL_MAN= $(INSTALL_SHARE)/man/man1
|
||||
INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig
|
||||
|
||||
-INSTALL_TNAME= luajit-$(VERSION)
|
||||
-INSTALL_TSYMNAME= luajit
|
||||
+INSTALL_TNAME= luajit
|
||||
INSTALL_ANAME= libluajit-$(ABIVER).a
|
||||
INSTALL_SONAME= libluajit-$(ABIVER).so.$(MAJVER).$(MINVER).$(RELVER)
|
||||
INSTALL_SOSHORT= libluajit-$(ABIVER).so
|
||||
@@ -56,7 +55,6 @@
|
||||
INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
|
||||
INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
|
||||
INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
|
||||
-INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
|
||||
INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
|
||||
|
||||
INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \
|
||||
@@ -114,13 +112,6 @@
|
||||
$(RM) $(FILE_PC).tmp
|
||||
cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC)
|
||||
cd lib && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB)
|
||||
- @echo "==== Successfully installed LuaJIT $(VERSION) to $(PREFIX) ===="
|
||||
- @echo ""
|
||||
- @echo "Note: the beta releases deliberately do NOT install a symlink for luajit"
|
||||
- @echo "You can do this now by running this command (with sudo):"
|
||||
- @echo ""
|
||||
- @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)"
|
||||
- @echo ""
|
||||
|
||||
##############################################################################
|
||||
|
63
package/luajit/luajit.mk
Normal file
63
package/luajit/luajit.mk
Normal file
@ -0,0 +1,63 @@
|
||||
#############################################################
|
||||
#
|
||||
# luajit
|
||||
#
|
||||
#############################################################
|
||||
|
||||
LUAJIT_VERSION = 2.0.0-beta10
|
||||
LUAJIT_SOURCE = LuaJIT-$(LUAJIT_VERSION).tar.gz
|
||||
LUAJIT_SITE = http://luajit.org/download
|
||||
|
||||
LUAJIT_INSTALL_STAGING = YES
|
||||
|
||||
define LUAJIT_NOLARGEFILE_FIX_MAKEFILE
|
||||
$(SED) 's/TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE/TARGET_XCFLAGS=/' $(@D)/src/Makefile
|
||||
endef
|
||||
|
||||
ifneq ($(BR2_LARGEFILE),y)
|
||||
LUAJIT_POST_PATCH_HOOKS += LUAJIT_NOLARGEFILE_FIX_MAKEFILE
|
||||
endif
|
||||
|
||||
# The luajit build procedure requires the host compiler to have the
|
||||
# same bitness as the target compiler. Therefore, on a x86 build
|
||||
# machine, we can't build luajit for x86_64, which is checked in
|
||||
# Config.in. When the target is a 32 bits target, we pass -m32 to
|
||||
# ensure that even on 64 bits build machines, a compiler of the same
|
||||
# bitness is used. Of course, this assumes that the 32 bits multilib
|
||||
# libraries are installed.
|
||||
ifeq ($(BR2_ARCH_IS_64),y)
|
||||
LUAJIT_HOST_CC=$(HOSTCC)
|
||||
else
|
||||
LUAJIT_HOST_CC=$(HOSTCC) -m32
|
||||
endif
|
||||
|
||||
# We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit
|
||||
# build system uses non conventional variable names.
|
||||
define LUAJIT_BUILD_CMDS
|
||||
$(MAKE) PREFIX="/usr" \
|
||||
STATIC_CC="$(TARGET_CC)" \
|
||||
DYNAMIC_CC="$(TARGET_CC) -fPIC" \
|
||||
TARGET_LD="$(TARGET_CC)" \
|
||||
TARGET_AR="$(TARGET_AR) rcus" \
|
||||
TARGET_STRIP="$(TARGET_STRIP)" \
|
||||
CFLAGS="$(TARGET_CFLAGS)" \
|
||||
LDFLAGS="$(TARGET_LDFLAGS)" \
|
||||
HOST_CC="$(LUAJIT_HOST_CC)" \
|
||||
HOST_CFLAGS="$(HOST_CFLAGS)" \
|
||||
HOST_LDFLAGS="$(HOST_LDFLAGS)" \
|
||||
-C $(@D) amalg
|
||||
endef
|
||||
|
||||
define LUAJIT_INSTALL_STAGING_CMDS
|
||||
$(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" -C $(@D) install
|
||||
endef
|
||||
|
||||
define LUAJIT_INSTALL_TARGET_CMDS
|
||||
$(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" -C $(@D) install
|
||||
endef
|
||||
|
||||
define LUAJIT_CLEAN_CMDS
|
||||
-$(MAKE) -C $(@D) clean
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
Loading…
Reference in New Issue
Block a user