Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 1 | SUMMARY = "U-Boot bootloader tools" |
Patrick Williams | db4c27e | 2022-08-05 08:10:29 -0500 | [diff] [blame] | 2 | DEPENDS += "gnutls openssl util-linux swig-native" |
| 3 | |
| 4 | inherit python3native |
| 5 | export STAGING_INCDIR="${STAGING_INCDIR_NATIVE}" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 6 | |
| 7 | PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 8 | PROVIDES:class-native = "u-boot-mkimage-native u-boot-mkenvimage-native" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 9 | |
| 10 | PACKAGES += "${PN}-mkimage ${PN}-mkenvimage" |
| 11 | |
| 12 | # Required for backward compatibility with "u-boot-mkimage-xxx.bb" |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 13 | RPROVIDES:${PN}-mkimage = "u-boot-mkimage" |
| 14 | RREPLACES:${PN}-mkimage = "u-boot-mkimage" |
| 15 | RCONFLICTS:${PN}-mkimage = "u-boot-mkimage" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 16 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 17 | EXTRA_OEMAKE:class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' |
| 18 | EXTRA_OEMAKE:class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' |
| 19 | EXTRA_OEMAKE:class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1' |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 20 | |
| 21 | SED_CONFIG_EFI = '-e "s/CONFIG_EFI_LOADER=.*/# CONFIG_EFI_LOADER is not set/"' |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 22 | SED_CONFIG_EFI:x86 = '' |
| 23 | SED_CONFIG_EFI:x86-64 = '' |
| 24 | SED_CONFIG_EFI:arm = '' |
| 25 | SED_CONFIG_EFI:armeb = '' |
| 26 | SED_CONFIG_EFI:aarch64 = '' |
Patrick Williams | 864cc43 | 2023-02-09 14:54:44 -0600 | [diff] [blame] | 27 | SED_CONFIG_EFI:loongarch64 = '' |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 28 | |
| 29 | do_compile () { |
Andrew Geissler | d1e8949 | 2021-02-12 15:35:20 -0600 | [diff] [blame] | 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 | |
Andrew Geissler | d583833 | 2022-05-27 11:33:10 -0500 | [diff] [blame] | 45 | oe_runmake -C ${S} tools-only_defconfig O=${B} |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 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 | |
| 55 | do_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 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 75 | ALLOW_EMPTY:${PN} = "1" |
| 76 | FILES:${PN} = "" |
| 77 | FILES:${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage ${bindir}/uboot-dumpimage ${bindir}/dumpimage ${bindir}/uboot-fit_check_sign ${bindir}/fit_check_sign" |
| 78 | FILES:${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 79 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 80 | RDEPENDS:${PN}-mkimage += "dtc" |
| 81 | RDEPENDS:${PN} += "${PN}-mkimage ${PN}-mkenvimage" |
| 82 | RDEPENDS:${PN}:class-native = "" |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 83 | |
| 84 | BBCLASSEXTEND = "native nativesdk" |
| 85 | |