182c905dcSAndrew GeisslerSUMMARY = "Just-In-Time Compiler for Lua"
282c905dcSAndrew GeisslerLICENSE = "MIT"
39aee5003SAndrew GeisslerLIC_FILES_CHKSUM = "file://COPYRIGHT;md5=23d6278200de9b48fd1439f80507cba8"
482c905dcSAndrew GeisslerHOMEPAGE = "http://luajit.org"
582c905dcSAndrew Geissler
682c905dcSAndrew GeisslerSRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http;branch=v2.1 \
782c905dcSAndrew Geissler           file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
882c905dcSAndrew Geissler           file://clang.patch \
9*87f5cff0SAndrew Geissler           file://0001-Use-builtin-for-clear_cache.patch \
1082c905dcSAndrew Geissler           "
1182c905dcSAndrew Geissler
1297771a30SAndrew Geissler# Set PV to a version tag and date (YYMMDD) associated with SRCREV if it is later.
1397771a30SAndrew GeisslerPV = "2.1.0~beta3-210112"
149aee5003SAndrew GeisslerSRCREV = "43ebb949a249a16c49d232ad24dc9127cc4302bb"
15d688a01eSAndrew Geissler
1682c905dcSAndrew GeisslerS = "${WORKDIR}/git"
1782c905dcSAndrew Geissler
1882c905dcSAndrew Geisslerinherit pkgconfig binconfig siteinfo
1982c905dcSAndrew Geissler
2082c905dcSAndrew GeisslerBBCLASSEXTEND = "native"
2182c905dcSAndrew Geissler
2282c905dcSAndrew Geissler# http://luajit.org/install.html#cross
2382c905dcSAndrew Geissler# Host luajit needs to be compiled with the same pointer size
2482c905dcSAndrew Geissler# If you want to cross-compile to any 32 bit target on an x64 OS,
2582c905dcSAndrew Geissler# you need to install the multilib development package (e.g.
2682c905dcSAndrew Geissler# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
2782c905dcSAndrew Geissler# (HOST_CC="gcc -m32").
28213cb269SPatrick WilliamsBUILD_CC_ARCH:append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}"
2982c905dcSAndrew Geissler
3082c905dcSAndrew Geissler# The lua makefiles expect the TARGET_SYS to be from uname -s
3182c905dcSAndrew Geissler# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
3282c905dcSAndrew GeisslerLUA_TARGET_OS = "Unknown"
33213cb269SPatrick WilliamsLUA_TARGET_OS:darwin = "Darwin"
34213cb269SPatrick WilliamsLUA_TARGET_OS:linux = "Linux"
35213cb269SPatrick WilliamsLUA_TARGET_OS:linux-gnueabi = "Linux"
36213cb269SPatrick WilliamsLUA_TARGET_OS:mingw32 = "Windows"
3782c905dcSAndrew Geissler
3882c905dcSAndrew Geissler# We don't want the lua buildsystem's compiler optimizations, or its
3982c905dcSAndrew Geissler# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
4082c905dcSAndrew Geissler# to both host and target compiles
4182c905dcSAndrew GeisslerEXTRA_OEMAKE = "\
4282c905dcSAndrew Geissler    Q= E='@:' \
4382c905dcSAndrew Geissler    \
4482c905dcSAndrew Geissler    CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
4582c905dcSAndrew Geissler    \
4682c905dcSAndrew Geissler    'TARGET_SYS=${LUA_TARGET_OS}' \
4782c905dcSAndrew Geissler    \
4882c905dcSAndrew Geissler    'CC=${CC}' \
4982c905dcSAndrew Geissler    'TARGET_AR=${AR} rcus' \
5082c905dcSAndrew Geissler    'TARGET_CFLAGS=${CFLAGS}' \
5182c905dcSAndrew Geissler    'TARGET_LDFLAGS=${LDFLAGS}' \
5282c905dcSAndrew Geissler    'TARGET_SHLDFLAGS=${LDFLAGS}' \
5382c905dcSAndrew Geissler    'HOST_CC=${BUILD_CC}' \
5482c905dcSAndrew Geissler    'HOST_CFLAGS=${BUILD_CFLAGS}' \
5582c905dcSAndrew Geissler    \
5682c905dcSAndrew Geissler    'PREFIX=${prefix}' \
5782c905dcSAndrew Geissler    'MULTILIB=${baselib}' \
5882c905dcSAndrew Geissler    'LDCONFIG=:' \
5982c905dcSAndrew Geissler"
6082c905dcSAndrew Geissler
6182c905dcSAndrew Geisslerdo_compile () {
6282c905dcSAndrew Geissler    oe_runmake
6382c905dcSAndrew Geissler}
6482c905dcSAndrew Geissler
6582c905dcSAndrew Geissler# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
6682c905dcSAndrew Geissler# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
6782c905dcSAndrew Geissler# expectations.
6882c905dcSAndrew GeisslerEXTRA_OEMAKEINST = "\
6982c905dcSAndrew Geissler    'DESTDIR=${D}' \
7082c905dcSAndrew Geissler    'INSTALL_BIN=${D}${bindir}' \
7182c905dcSAndrew Geissler    'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
7282c905dcSAndrew Geissler    'INSTALL_MAN=${D}${mandir}/man1' \
7382c905dcSAndrew Geissler"
7482c905dcSAndrew Geisslerdo_install () {
7582c905dcSAndrew Geissler    oe_runmake ${EXTRA_OEMAKEINST} install
7682c905dcSAndrew Geissler    rmdir ${D}${datadir}/lua/5.* \
7782c905dcSAndrew Geissler          ${D}${datadir}/lua \
7882c905dcSAndrew Geissler          ${D}${libdir}/lua/5.* \
7982c905dcSAndrew Geissler          ${D}${libdir}/lua
8082c905dcSAndrew Geissler}
8182c905dcSAndrew Geissler
8282c905dcSAndrew GeisslerPACKAGES += 'luajit-common'
8382c905dcSAndrew Geissler
8482c905dcSAndrew Geissler# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
8582c905dcSAndrew Geissler# paths are packaged regardless of what the libdir and datadir paths are.
86213cb269SPatrick WilliamsFILES:${PN} += "${prefix}/${baselib} ${prefix}/share"
87213cb269SPatrick WilliamsFILES:${PN} += "${libdir}/libluajit-5.1.so.2 \
8882c905dcSAndrew Geissler    ${libdir}/libluajit-5.1.so.${PV} \
8982c905dcSAndrew Geissler"
90213cb269SPatrick WilliamsFILES:${PN}-dev += "${libdir}/libluajit-5.1.a \
9182c905dcSAndrew Geissler    ${libdir}/libluajit-5.1.so \
9282c905dcSAndrew Geissler    ${libdir}/pkgconfig/luajit.pc \
9382c905dcSAndrew Geissler"
94213cb269SPatrick WilliamsFILES:luajit-common = "${datadir}/${BPN}-${PV}"
9582c905dcSAndrew Geissler
969aee5003SAndrew Geissler# mips64/ppc/ppc64/riscv64/riscv32 is not supported in this release
97213cb269SPatrick WilliamsCOMPATIBLE_HOST:mipsarchn32 = "null"
98213cb269SPatrick WilliamsCOMPATIBLE_HOST:mipsarchn64 = "null"
99213cb269SPatrick WilliamsCOMPATIBLE_HOST:powerpc = "null"
100213cb269SPatrick WilliamsCOMPATIBLE_HOST:powerpc64 = "null"
101213cb269SPatrick WilliamsCOMPATIBLE_HOST:powerpc64le = "null"
102213cb269SPatrick WilliamsCOMPATIBLE_HOST:riscv64 = "null"
103213cb269SPatrick WilliamsCOMPATIBLE_HOST:riscv32 = "null"
104