SUMMARY = "A collection of cpuburn programs tuned for different ARM hardware"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://cpuburn-a53.S;beginline=1;endline=22;md5=3b7ccd70144c16d3fe14ac491c2d4a87"

RPROVIDES:${PN} = "cpuburn-neon"
PROVIDES += "cpuburn-neon"

SRCREV = "ad7e646700d14b81413297bda02fb7fe96613c3f"

PV = "1.0+git${SRCPV}"

SRC_URI = "git://github.com/ssvb/cpuburn-arm.git;branch=master;protocol=https \
           file://0001-cpuburn-a8.S-Remove-.func-.endfunc.patch \
           file://0002-burn.S-Add.patch \
           file://0003-burn.S-Remove-.func-.endfunc.patch \
           "

S = "${WORKDIR}/git"

do_compile() {

    # If the arch is set to ARM 64-bit -  we only produce and ship burn-a53 version.
    # In case of ARM 32-bit - we would build all variants, since burn-a53 supports both
    # 32 and 64-bit builds
    if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
    else
        ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a7.S -o burn-a7
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-a8
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a9.S -o burn-a9
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-krait.S -o burn-krait
    fi
}

do_install() {
    install -d ${D}${bindir}

    if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
        install -m 0755 burn-a53 ${D}${bindir}
    else
        for f in burn burn-a7 burn-a8 burn-a9 burn-a53 burn-krait; do
            install -m 0755 $f ${D}${bindir}/$f
        done
    fi
}

COMPATIBLE_MACHINE ?= "(^$)"
COMPATIBLE_MACHINE:armv7a = "(.*)"
COMPATIBLE_MACHINE:armv7ve = "(.*)"
COMPATIBLE_MACHINE:aarch64 = "(.*)"
