blob: 4ed936a70d37c20f60ac6a4bf5fbed067e65f9cf [file] [log] [blame]
Andrew Geissler82c905d2020-04-13 13:39:40 -05001SUMMARY = "U-Boot bootloader tools"
2DEPENDS += "openssl"
3
4PROVIDES = "${MLPREFIX}u-boot-mkimage ${MLPREFIX}u-boot-mkenvimage"
5PROVIDES_class-native = "u-boot-mkimage-native u-boot-mkenvimage-native"
6
7PACKAGES += "${PN}-mkimage ${PN}-mkenvimage"
8
9# Required for backward compatibility with "u-boot-mkimage-xxx.bb"
10RPROVIDES_${PN}-mkimage = "u-boot-mkimage"
11RREPLACES_${PN}-mkimage = "u-boot-mkimage"
12RCONFLICTS_${PN}-mkimage = "u-boot-mkimage"
13
14EXTRA_OEMAKE_class-target = 'CROSS_COMPILE="${TARGET_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
15EXTRA_OEMAKE_class-native = 'CC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
16EXTRA_OEMAKE_class-nativesdk = 'CROSS_COMPILE="${HOST_PREFIX}" CC="${CC} ${CFLAGS} ${LDFLAGS}" HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" STRIP=true V=1'
17
18SED_CONFIG_EFI = '-e "s/CONFIG_EFI_LOADER=.*/# CONFIG_EFI_LOADER is not set/"'
19SED_CONFIG_EFI_x86 = ''
20SED_CONFIG_EFI_x86-64 = ''
21SED_CONFIG_EFI_arm = ''
22SED_CONFIG_EFI_armeb = ''
23SED_CONFIG_EFI_aarch64 = ''
24
25do_compile () {
Andrew Geisslerd1e89492021-02-12 15:35:20 -060026 # Yes, this is crazy. If you build on a system with git < 2.14 from scratch, the tree will
27 # be marked as "dirty" and the version will include "-dirty", leading to a reproducibility problem.
28 # The issue is the inode count for Licnses/README changing due to do_populate_lic hardlinking a
29 # copy of the file. We avoid this by ensuring the index is updated with a "git diff" before the
30 # u-boot machinery tries to determine the version.
31 #
32 # build$ ../git/scripts/setlocalversion ../git
33 # ""
34 # build$ ln ../git/
35 # build$ ln ../git/README ../foo
36 # build$ ../git/scripts/setlocalversion ../git
37 # ""-dirty
38 # (i.e. creating a hardlink dirties the index)
39 cd ${S}; git diff; cd ${B}
40
Andrew Geissler82c905d2020-04-13 13:39:40 -050041 oe_runmake -C ${S} sandbox_defconfig O=${B}
42
43 # Disable CONFIG_CMD_LICENSE, license.h is not used by tools and
44 # generating it requires bin2header tool, which for target build
45 # is built with target tools and thus cannot be executed on host.
46 sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} ${B}/.config
47
48 oe_runmake -C ${S} cross_tools NO_SDL=1 O=${B}
49}
50
51do_install () {
52 install -d ${D}${bindir}
53
54 # mkimage
55 install -m 0755 tools/mkimage ${D}${bindir}/uboot-mkimage
56 ln -sf uboot-mkimage ${D}${bindir}/mkimage
57
58 # mkenvimage
59 install -m 0755 tools/mkenvimage ${D}${bindir}/uboot-mkenvimage
60 ln -sf uboot-mkenvimage ${D}${bindir}/mkenvimage
61
62 # dumpimage
63 install -m 0755 tools/dumpimage ${D}${bindir}/uboot-dumpimage
64 ln -sf uboot-dumpimage ${D}${bindir}/dumpimage
65
66 # fit_check_sign
67 install -m 0755 tools/fit_check_sign ${D}${bindir}/uboot-fit_check_sign
68 ln -sf uboot-fit_check_sign ${D}${bindir}/fit_check_sign
69}
70
71ALLOW_EMPTY_${PN} = "1"
72FILES_${PN} = ""
73FILES_${PN}-mkimage = "${bindir}/uboot-mkimage ${bindir}/mkimage ${bindir}/uboot-dumpimage ${bindir}/dumpimage ${bindir}/uboot-fit_check_sign ${bindir}/fit_check_sign"
74FILES_${PN}-mkenvimage = "${bindir}/uboot-mkenvimage ${bindir}/mkenvimage"
75
76RDEPENDS_${PN}-mkimage += "dtc"
77RDEPENDS_${PN} += "${PN}-mkimage ${PN}-mkenvimage"
78RDEPENDS_${PN}_class-native = ""
79
80BBCLASSEXTEND = "native nativesdk"
81