1################################################################################ 2# 3# luajit 4# 5################################################################################ 6 7LUAJIT_VERSION = 41fb94defa8f830ce69a8122b03f6ac3216d392a 8LUAJIT_SITE = $(call github,LuaJIT,LuaJIT,$(LUAJIT_VERSION)) 9LUAJIT_LICENSE = MIT 10LUAJIT_LICENSE_FILES = COPYRIGHT 11LUAJIT_CPE_ID_VENDOR = luajit 12 13LUAJIT_INSTALL_STAGING = YES 14 15LUAJIT_PROVIDES = luainterpreter 16 17ifeq ($(BR2_PACKAGE_LUAJIT_COMPAT52),y) 18LUAJIT_XCFLAGS += -DLUAJIT_ENABLE_LUA52COMPAT 19endif 20 21# The luajit build procedure requires the host compiler to have the 22# same bitness as the target compiler. Therefore, on a x86 build 23# machine, we can't build luajit for x86_64, which is checked in 24# Config.in. When the target is a 32 bits target, we pass -m32 to 25# ensure that even on 64 bits build machines, a compiler of the same 26# bitness is used. Of course, this assumes that the 32 bits multilib 27# libraries are installed. 28ifeq ($(BR2_ARCH_IS_64),y) 29LUAJIT_HOST_CC = $(HOSTCC) 30# There is no LUAJIT_ENABLE_GC64 option. 31else 32LUAJIT_HOST_CC = $(HOSTCC) -m32 33LUAJIT_XCFLAGS += -DLUAJIT_DISABLE_GC64 34endif 35 36# We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit 37# build system uses non conventional variable names. 38define LUAJIT_BUILD_CMDS 39 $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" \ 40 STATIC_CC="$(TARGET_CC)" \ 41 DYNAMIC_CC="$(TARGET_CC) -fPIC" \ 42 TARGET_LD="$(TARGET_CC)" \ 43 TARGET_AR="$(TARGET_AR) rcus" \ 44 TARGET_STRIP=true \ 45 TARGET_CFLAGS="$(TARGET_CFLAGS)" \ 46 TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ 47 HOST_CC="$(LUAJIT_HOST_CC)" \ 48 HOST_CFLAGS="$(HOST_CFLAGS)" \ 49 HOST_LDFLAGS="$(HOST_LDFLAGS)" \ 50 BUILDMODE=dynamic \ 51 XCFLAGS="$(LUAJIT_XCFLAGS)" \ 52 -C $(@D) amalg 53endef 54 55define LUAJIT_INSTALL_STAGING_CMDS 56 $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install 57endef 58 59define LUAJIT_INSTALL_TARGET_CMDS 60 $(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" LDCONFIG=true -C $(@D) install 61endef 62 63define LUAJIT_INSTALL_SYMLINK 64 ln -fs luajit $(TARGET_DIR)/usr/bin/lua 65endef 66LUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK 67 68# host-efl package needs host-luajit to be linked dynamically. 69define HOST_LUAJIT_BUILD_CMDS 70 $(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" BUILDMODE=dynamic \ 71 TARGET_LDFLAGS="$(HOST_LDFLAGS)" \ 72 XCFLAGS="$(LUAJIT_XCFLAGS)" \ 73 -C $(@D) amalg 74endef 75 76define HOST_LUAJIT_INSTALL_CMDS 77 $(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" LDCONFIG=true -C $(@D) install 78endef 79 80$(eval $(generic-package)) 81$(eval $(host-generic-package)) 82