1SUMMARY = "U-Boot bootloader tools" 2DEPENDS += "gnutls openssl util-linux swig-native" 3 4inherit python3native 5export STAGING_INCDIR="${STAGING_INCDIR_NATIVE}" 6 7PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage ${MLPREFIX}u-boot-mkeficapsule" 8PROVIDES:class-native = "u-boot-mkimage-native u-boot-mkenvimage-native u-boot-mkeficapsule-native" 9 10PACKAGES += "${PN}-mkimage ${PN}-mkenvimage ${PN}-mkeficapsule" 11 12# Required for backward compatibility with "u-boot-mkimage-xxx.bb" 13RPROVIDES:${PN}-mkimage = "u-boot-mkimage" 14RREPLACES:${PN}-mkimage = "u-boot-mkimage" 15RCONFLICTS:${PN}-mkimage = "u-boot-mkimage" 16 17EXTRA_OEMAKE:class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' 18EXTRA_OEMAKE:class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' 19EXTRA_OEMAKE:class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' 20 21SED_CONFIG_EFI = '-e "s/CONFIG_EFI_LOADER=.*/# CONFIG_EFI_LOADER is not set/"' 22SED_CONFIG_EFI:x86 = '' 23SED_CONFIG_EFI:x86-64 = '' 24SED_CONFIG_EFI:arm = '' 25SED_CONFIG_EFI:armeb = '' 26SED_CONFIG_EFI:aarch64 = '' 27SED_CONFIG_EFI:loongarch64 = '' 28 29do_compile () { 30 # Yes, this is crazy. If you build on a system with git < 2.14 from scratch, the tree will 31 # be marked as "dirty" and the version will include "-dirty", leading to a reproducibility problem. 32 # The issue is the inode count for Licnses/README changing due to do_populate_lic hardlinking a 33 # copy of the file. We avoid this by ensuring the index is updated with a "git diff" before the 34 # u-boot machinery tries to determine the version. 35 # 36 # build$ ../git/scripts/setlocalversion ../git 37 # "" 38 # build$ ln ../git/ 39 # build$ ln ../git/README ../foo 40 # build$ ../git/scripts/setlocalversion ../git 41 # ""-dirty 42 # (i.e. creating a hardlink dirties the index) 43 cd ${S}; git diff; cd ${B} 44 45 oe_runmake -C ${S} tools-only_defconfig O=${B} 46 47 # Disable CONFIG_CMD_LICENSE, license.h is not used by tools and 48 # generating it requires bin2header tool, which for target build 49 # is built with target tools and thus cannot be executed on host. 50 sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} ${B}/.config 51 52 oe_runmake -C ${S} cross_tools NO_SDL=1 O=${B} 53} 54 55do_install () { 56 install -d ${D}${bindir} 57 58 # mkimage 59 install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage 60 ln -sf uboot-mkimage ${D}${bindir}/mkimage 61 62 # mkenvimage 63 install -m 0755 tools/mkenvimage ${D}${bindir}/uboot-mkenvimage 64 ln -sf uboot-mkenvimage ${D}${bindir}/mkenvimage 65 66 # dumpimage 67 install -m 0755 tools/dumpimage ${D}${bindir}/uboot-dumpimage 68 ln -sf uboot-dumpimage ${D}${bindir}/dumpimage 69 70 # fit_check_sign 71 install -m 0755 tools/fit_check_sign ${D}${bindir}/uboot-fit_check_sign 72 ln -sf uboot-fit_check_sign ${D}${bindir}/fit_check_sign 73 74 # mkeficapsule 75 install -m 0755 tools/mkeficapsule ${D}${bindir}/uboot-mkeficapsule 76 ln -sf uboot-mkeficapsule ${D}${bindir}/mkeficapsule 77} 78 79ALLOW_EMPTY:${PN} = "1" 80FILES:${PN} = "" 81FILES:${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage ${bindir}/uboot-dumpimage ${bindir}/dumpimage ${bindir}/uboot-fit_check_sign ${bindir}/fit_check_sign" 82FILES:${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage" 83FILES:${PN}-mkeficapsule = "${bindir}/uboot-mkeficapsule ${bindir}/mkeficapsule" 84 85RDEPENDS:${PN}-mkimage += "dtc" 86RDEPENDS:${PN} += "${PN}-mkimage ${PN}-mkenvimage ${PN}-mkeficapsule" 87RDEPENDS:${PN}:class-native = "" 88 89BBCLASSEXTEND = "native nativesdk" 90 91