blob: 6573efcd93e29fdf4fb3143b3d8fbcbc9117ce90 [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "Just-In-Time Compiler for Lua"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=d739bb9250a55c124a545b588fd76771"
4HOMEPAGE = "http://luajit.org"
5
Andrew Geissler82c905d2020-04-13 13:39:40 -05006SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
7 file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
8 file://clang.patch \
9 "
10
Andrew Geisslerd688a012020-09-18 13:36:00 -050011# Set PV to a version tag and date associated with SRCREV if it is later.
12PV = "2.1.0~beta3-200809"
13SRCREV = "94d4abcca966df2cc423e821bcacd04898f73117"
14
Andrew Geissler82c905d2020-04-13 13:39:40 -050015S = "${WORKDIR}/git"
16
17inherit pkgconfig binconfig siteinfo
18
19BBCLASSEXTEND = "native"
20
21# http://luajit.org/install.html#cross
22# Host luajit needs to be compiled with the same pointer size
23# If you want to cross-compile to any 32 bit target on an x64 OS,
24# you need to install the multilib development package (e.g.
25# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
26# (HOST_CC="gcc -m32").
27BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}"
28
29# The lua makefiles expect the TARGET_SYS to be from uname -s
30# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
31LUA_TARGET_OS = "Unknown"
32LUA_TARGET_OS_darwin = "Darwin"
33LUA_TARGET_OS_linux = "Linux"
34LUA_TARGET_OS_linux-gnueabi = "Linux"
35LUA_TARGET_OS_mingw32 = "Windows"
36
37# We don't want the lua buildsystem's compiler optimizations, or its
38# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
39# to both host and target compiles
40EXTRA_OEMAKE = "\
41 Q= E='@:' \
42 \
43 CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
44 \
45 'TARGET_SYS=${LUA_TARGET_OS}' \
46 \
47 'CC=${CC}' \
48 'TARGET_AR=${AR} rcus' \
49 'TARGET_CFLAGS=${CFLAGS}' \
50 'TARGET_LDFLAGS=${LDFLAGS}' \
51 'TARGET_SHLDFLAGS=${LDFLAGS}' \
52 'HOST_CC=${BUILD_CC}' \
53 'HOST_CFLAGS=${BUILD_CFLAGS}' \
54 \
55 'PREFIX=${prefix}' \
56 'MULTILIB=${baselib}' \
57 'LDCONFIG=:' \
58"
59
60do_compile () {
61 oe_runmake
62}
63
64# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
65# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
66# expectations.
67EXTRA_OEMAKEINST = "\
68 'DESTDIR=${D}' \
69 'INSTALL_BIN=${D}${bindir}' \
70 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
71 'INSTALL_MAN=${D}${mandir}/man1' \
72"
73do_install () {
74 oe_runmake ${EXTRA_OEMAKEINST} install
75 rmdir ${D}${datadir}/lua/5.* \
76 ${D}${datadir}/lua \
77 ${D}${libdir}/lua/5.* \
78 ${D}${libdir}/lua
79}
80
81PACKAGES += 'luajit-common'
82
83# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
84# paths are packaged regardless of what the libdir and datadir paths are.
85FILES_${PN} += "${prefix}/${baselib} ${prefix}/share"
86FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
87 ${libdir}/libluajit-5.1.so.${PV} \
88"
89FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
90 ${libdir}/libluajit-5.1.so \
91 ${libdir}/pkgconfig/luajit.pc \
92"
93FILES_luajit-common = "${datadir}/${BPN}-${PV}"
94
95# mips64/ppc/ppc64/riscv64 is not supported in this release
96COMPATIBLE_HOST_mipsarchn32 = "null"
97COMPATIBLE_HOST_mipsarchn64 = "null"
98COMPATIBLE_HOST_powerpc = "null"
99COMPATIBLE_HOST_powerpc64 = "null"
100COMPATIBLE_HOST_powerpc64le = "null"
101COMPATIBLE_HOST_riscv64 = "null"
Andrew Geisslere231d582020-05-05 08:53:09 -0500102COMPATIBLE_HOST_riscv32 = "null"