mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-05-15 12:00:34 +00:00
BUILD_LDFLAGS add --dynamic-linker to point to uninative but some binaries in luajit are for 32bit build host, so even if your host has the needed runtime, it will fail to execute because uninative ldso doesn't know about multilib we get cyptic errors like | make[1]: execvp: host/minilua: Accessing a corrupted shared library | make[1]: *** [Makefile:610: host/buildvm_arch.h] Error 127 Switch to using git for SRC_URI, master is pointing to latest 2.0 stable, it gets us all the patches done since last 2.0.5 relases in 2017 Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
95 lines
2.9 KiB
BlitzBasic
95 lines
2.9 KiB
BlitzBasic
SUMMARY = "Just-In-Time Compiler for Lua"
|
|
LICENSE = "MIT"
|
|
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
|
|
HOMEPAGE = "http://luajit.org"
|
|
|
|
PV .= "+git${SRCPV}"
|
|
SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2"
|
|
SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \
|
|
file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
|
|
file://clang.patch \
|
|
"
|
|
|
|
S = "${WORKDIR}/git"
|
|
|
|
inherit pkgconfig binconfig siteinfo
|
|
|
|
BBCLASSEXTEND = "native"
|
|
|
|
# http://luajit.org/install.html#cross
|
|
# Host luajit needs to be compiled with the same pointer size
|
|
# If you want to cross-compile to any 32 bit target on an x64 OS,
|
|
# you need to install the multilib development package (e.g.
|
|
# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
|
|
# (HOST_CC="gcc -m32").
|
|
BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS', True) != '32']}"
|
|
|
|
# The lua makefiles expect the TARGET_SYS to be from uname -s
|
|
# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
|
|
LUA_TARGET_OS = "Unknown"
|
|
LUA_TARGET_OS_darwin = "Darwin"
|
|
LUA_TARGET_OS_linux = "Linux"
|
|
LUA_TARGET_OS_linux-gnueabi = "Linux"
|
|
LUA_TARGET_OS_mingw32 = "Windows"
|
|
|
|
# We don't want the lua buildsystem's compiler optimizations, or its
|
|
# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
|
|
# to both host and target compiles
|
|
EXTRA_OEMAKE = "\
|
|
Q= E='@:' \
|
|
\
|
|
CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
|
|
\
|
|
'TARGET_SYS=${LUA_TARGET_OS}' \
|
|
\
|
|
'CC=${CC}' \
|
|
'TARGET_AR=${AR} rcus' \
|
|
'TARGET_CFLAGS=${CFLAGS}' \
|
|
'TARGET_LDFLAGS=${LDFLAGS}' \
|
|
'TARGET_SHLDFLAGS=${LDFLAGS}' \
|
|
'HOST_CC=${BUILD_CC}' \
|
|
'HOST_CFLAGS=${BUILD_CFLAGS}' \
|
|
\
|
|
'PREFIX=${prefix}' \
|
|
'MULTILIB=${baselib}' \
|
|
'LDCONFIG=:' \
|
|
"
|
|
|
|
do_compile () {
|
|
oe_runmake
|
|
}
|
|
|
|
# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
|
|
# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
|
|
# expectations.
|
|
EXTRA_OEMAKEINST = "\
|
|
'DESTDIR=${D}' \
|
|
'INSTALL_BIN=${D}${bindir}' \
|
|
'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
|
|
'INSTALL_MAN=${D}${mandir}/man1' \
|
|
"
|
|
do_install () {
|
|
oe_runmake ${EXTRA_OEMAKEINST} install
|
|
rmdir ${D}${datadir}/lua/5.* \
|
|
${D}${datadir}/lua \
|
|
${D}${libdir}/lua/5.* \
|
|
${D}${libdir}/lua
|
|
}
|
|
|
|
PACKAGES += 'luajit-common'
|
|
|
|
# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
|
|
# paths are packaged regardless of what the libdir and datadir paths are.
|
|
FILES_${PN} += "${prefix}/${baselib} ${prefix}/share"
|
|
FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
|
|
${libdir}/libluajit-5.1.so.${PV} \
|
|
"
|
|
FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
|
|
${libdir}/libluajit-5.1.so \
|
|
${libdir}/pkgconfig/luajit.pc \
|
|
"
|
|
FILES_luajit-common = "${datadir}/${BPN}-${PV}"
|
|
|
|
# Aarch64 is not supported in this release
|
|
COMPATIBLE_HOST = "^(?!aarch64).*"
|