b33c4a2d4e
The luajit Makefile has the following logic:
$(LDCONFIG) $(INSTALL_LIB) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
So if ldconfig fails for some reason, the symbolic links to refer to
the luajit library are not created. Since ldconfig for the target
didn't make sense, LDCONFIG=true has been added a long time ago when
building the target variant of luajit.
However, since commit 9ba8d1cce4
, the
host variant of luajit is also linked dynamically. While ldconfig for
the host should work, on certain machines ldconfig is not available in
the PATH, and needs to be explicitly called as
/sbin/ldconfig. However, since output/host/usr/lib is in the RPATH of
the binaries we create, there is really no need to bother running
ldconfig, so we simply pass LDCONFIG=true, like we do for the target
variant. This ensures that the symlinks are always created.
Fixes:
http://autobuild.buildroot.net/results/4dc/4dcbcde0046e265317e170a977e699e5c3a06b87/
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Francois Perrad <francois.perrad@gadz.org>
[Thomas: rewrite commit log with a proper explanation.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
80 lines
2.3 KiB
Makefile
80 lines
2.3 KiB
Makefile
################################################################################
|
|
#
|
|
# luajit
|
|
#
|
|
################################################################################
|
|
|
|
LUAJIT_VERSION = 2.0.4
|
|
LUAJIT_SOURCE = LuaJIT-$(LUAJIT_VERSION).tar.gz
|
|
LUAJIT_SITE = http://luajit.org/download
|
|
LUAJIT_LICENSE = MIT
|
|
LUAJIT_LICENSE_FILES = COPYRIGHT
|
|
|
|
LUAJIT_INSTALL_STAGING = YES
|
|
|
|
LUAJIT_PROVIDES = luainterpreter
|
|
|
|
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
|
|
$(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) \
|
|
-C $(@D) amalg
|
|
endef
|
|
|
|
define LUAJIT_INSTALL_STAGING_CMDS
|
|
$(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install
|
|
endef
|
|
|
|
define LUAJIT_INSTALL_TARGET_CMDS
|
|
$(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
|
|
$(MAKE) PREFIX="/usr" BUILDMODE=dynamic \
|
|
TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
|
|
-C $(@D) amalg
|
|
endef
|
|
|
|
define HOST_LUAJIT_INSTALL_CMDS
|
|
$(MAKE) PREFIX="/usr" DESTDIR="$(HOST_DIR)" LDCONFIG=true -C $(@D) install
|
|
endef
|
|
|
|
$(eval $(generic-package))
|
|
$(eval $(host-generic-package))
|