kumquat-buildroot/package/luajit/luajit.mk
Yann E. MORIN da56f2dc4c package/luajit: drop useless post-extract hook
Since version 2.1, LuaJIT follows a rolling-release scheme, which means
that any commit is as good as any other; LuaJIT uses the comitter's UNIX
timestamp as its semver patch level. It uses the git-attribute
export-subst for the .relver file that contains the %ct placeholder for
git-archive to expand it.

In c9dcd9e459 (package/luajit: bump to version 41fb94defa8f...), we
switched to such an upstream version. There was some confusion around
the handling of the git-attribute and where/when it is generated, and
the first revision of the patch used the git download method, so had to
use post-extract hooks to do the replacement, but the second iteration
kept retrieving the archive generated by github, which has the
replacement already done, but the post-extract hooks were not dropped
although now useless...

With the current code, it is easy to bump the LuaJit version and forget
to update the timestamp stored in the .relver file, which would override
the value that was generated on the github side.

Since the post-extract hook is useless, drop it.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Francois Perrad <fperrad@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
(cherry picked from commit 1bcb51517c)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2024-06-04 16:37:50 +02:00

82 lines
2.5 KiB
Makefile

################################################################################
#
# luajit
#
################################################################################
LUAJIT_VERSION = 41fb94defa8f830ce69a8122b03f6ac3216d392a
LUAJIT_SITE = $(call github,LuaJIT,LuaJIT,$(LUAJIT_VERSION))
LUAJIT_LICENSE = MIT
LUAJIT_LICENSE_FILES = COPYRIGHT
LUAJIT_CPE_ID_VENDOR = luajit
LUAJIT_INSTALL_STAGING = YES
LUAJIT_PROVIDES = luainterpreter
ifeq ($(BR2_PACKAGE_LUAJIT_COMPAT52),y)
LUAJIT_XCFLAGS += -DLUAJIT_ENABLE_LUA52COMPAT
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)
# There is no LUAJIT_ENABLE_GC64 option.
else
LUAJIT_HOST_CC = $(HOSTCC) -m32
LUAJIT_XCFLAGS += -DLUAJIT_DISABLE_GC64
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=dynamic \
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))