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