buildroot/package/luajit/luajit.mk
Francois Perrad 2ca0accc21 package/luajit: switch to moonjit fork
This fork is based on LuaJIT 2.1.0-beta3 which supports ARM64.

The license file is changed with the copyright from the Moonjit
developers, and an additional copy of the MIT license. Therefore the
license terms are still the same: MIT.

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
[Thomas: add details about why the hash of the license file changes]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-12-06 23:47:27 +01:00

85 lines
2.5 KiB
Makefile

################################################################################
#
# luajit
#
################################################################################
LUAJIT_VERSION = 2.1.2
LUAJIT_SITE = $(call github,moonjit,moonjit,$(LUAJIT_VERSION))
LUAJIT_LICENSE = MIT
LUAJIT_LICENSE_FILES = COPYRIGHT
LUAJIT_INSTALL_STAGING = YES
LUAJIT_PROVIDES = luainterpreter
ifeq ($(BR2_PACKAGE_LUAJIT_COMPAT52),y)
LUAJIT_XCFLAGS += -DLUAJIT_ENABLE_LUA52COMPAT
endif
ifeq ($(BR2_STATIC_LIBS),y)
LUAJIT_BUILDMODE = static
else
LUAJIT_BUILDMODE = dynamic
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
$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" \
STATIC_CC="$(TARGET_CC)" \
DYNAMIC_CC="$(TARGET_CC) -fPIC" \
TARGET_LD="$(TARGET_CC)" \
TARGET_AR="$(TARGET_AR) rcus" \
TARGET_STRIP=true \
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
HOST_CC="$(LUAJIT_HOST_CC)" \
HOST_CFLAGS="$(HOST_CFLAGS)" \
HOST_LDFLAGS="$(HOST_LDFLAGS)" \
BUILDMODE=$(LUAJIT_BUILDMODE) \
XCFLAGS=$(LUAJIT_XCFLAGS) \
-C $(@D) amalg
endef
define LUAJIT_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install
endef
define LUAJIT_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" LDCONFIG=true -C $(@D) install
endef
define LUAJIT_INSTALL_SYMLINK
ln -fs luajit $(TARGET_DIR)/usr/bin/lua
endef
LUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK
# host-efl package needs host-luajit to be linked dynamically.
define HOST_LUAJIT_BUILD_CMDS
$(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" BUILDMODE=dynamic \
TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
XCFLAGS=$(LUAJIT_XCFLAGS) \
-C $(@D) amalg
endef
define HOST_LUAJIT_INSTALL_CMDS
$(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" LDCONFIG=true -C $(@D) install
endef
$(eval $(generic-package))
$(eval $(host-generic-package))