blob: 3052eb0484b02541d535f5166fffc2d7806a83cf [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001SUMMARY = "Just-In-Time Compiler for Lua"
2LICENSE = "MIT"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
4HOMEPAGE = "http://luajit.org"
5
Brad Bishop1a4b7ee2018-12-16 17:11:34 -08006PV .= "+git${SRCPV}"
7SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2"
8SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \
Brad Bishopd7bf8c12018-02-25 22:55:05 -05009 file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
10 file://clang.patch \
11"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050012
Brad Bishop1a4b7ee2018-12-16 17:11:34 -080013S = "${WORKDIR}/git"
Brad Bishopd7bf8c12018-02-25 22:55:05 -050014
15inherit pkgconfig binconfig siteinfo
16
17BBCLASSEXTEND = "native"
18
19# http://luajit.org/install.html#cross
20# Host luajit needs to be compiled with the same pointer size
21# If you want to cross-compile to any 32 bit target on an x64 OS,
22# you need to install the multilib development package (e.g.
23# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
24# (HOST_CC="gcc -m32").
25BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS', True) != '32']}"
26
27# The lua makefiles expect the TARGET_SYS to be from uname -s
28# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
29LUA_TARGET_OS = "Unknown"
30LUA_TARGET_OS_darwin = "Darwin"
31LUA_TARGET_OS_linux = "Linux"
32LUA_TARGET_OS_linux-gnueabi = "Linux"
33LUA_TARGET_OS_mingw32 = "Windows"
34
35# We don't want the lua buildsystem's compiler optimizations, or its
36# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
37# to both host and target compiles
38EXTRA_OEMAKE = "\
39 Q= E='@:' \
40 \
41 CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
42 \
43 'TARGET_SYS=${LUA_TARGET_OS}' \
44 \
45 'CC=${CC}' \
46 'TARGET_AR=${AR} rcus' \
47 'TARGET_CFLAGS=${CFLAGS}' \
48 'TARGET_LDFLAGS=${LDFLAGS}' \
49 'TARGET_SHLDFLAGS=${LDFLAGS}' \
50 'HOST_CC=${BUILD_CC}' \
51 'HOST_CFLAGS=${BUILD_CFLAGS}' \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050052 \
53 'PREFIX=${prefix}' \
54 'MULTILIB=${baselib}' \
Brad Bishop316dfdd2018-06-25 12:45:53 -040055 'LDCONFIG=:' \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050056"
57
58do_compile () {
59 oe_runmake
60}
61
62# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
63# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
64# expectations.
65EXTRA_OEMAKEINST = "\
66 'DESTDIR=${D}' \
67 'INSTALL_BIN=${D}${bindir}' \
68 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
69 'INSTALL_MAN=${D}${mandir}/man1' \
70"
71do_install () {
72 oe_runmake ${EXTRA_OEMAKEINST} install
73 rmdir ${D}${datadir}/lua/5.* \
74 ${D}${datadir}/lua \
75 ${D}${libdir}/lua/5.* \
76 ${D}${libdir}/lua
77}
78
79PACKAGES += 'luajit-common'
80
81# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
82# paths are packaged regardless of what the libdir and datadir paths are.
83FILES_${PN} += "${prefix}/${baselib} ${prefix}/share"
84FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
85 ${libdir}/libluajit-5.1.so.${PV} \
86"
87FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
88 ${libdir}/libluajit-5.1.so \
89 ${libdir}/pkgconfig/luajit.pc \
90"
91FILES_luajit-common = "${datadir}/${BPN}-${PV}"
92
Brad Bishop316dfdd2018-06-25 12:45:53 -040093# Aarch64 is not supported in this release
94COMPATIBLE_HOST = "^(?!aarch64).*"