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