Skip to content

Commit b13dc6a

Browse files
committed
refactor(boot): add boot-package macro and use INSTALL_IMAGES
Introduce `pkg-boot.mk` with a `boot-package` macro that eliminates boilerplate in U-Boot and other boot packages that ship pre-built binaries. Packages declare `_BOOT_SRC` (with optional src:dst rename syntax) and `_BINARIES_SUBDIR`, and the macro handles the rest. Migrate all boot packages from `INSTALL_TARGET_CMDS` to `INSTALL_IMAGES_CMDS` since they install to `$(BINARIES_DIR)`, not `$(TARGET_DIR)`. Convert simple copy-only packages to `boot-package` and manually add `INSTALL_IMAGES = YES` to packages with custom build/install logic. Also refactor `batocera-system` to use `INSTALL_IMAGES_CMDS` for `batocera-boot.conf` and replace hardcoded `BR2_EXTERNAL_BATOCERA_PATH` package paths with `_PKGDIR` throughout.
1 parent 40561a3 commit b13dc6a

File tree

42 files changed

+255
-398
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+255
-398
lines changed

external.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
include $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/pkg-boot.mk
12
include $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/pkg-emulator-info.mk
23
include $(sort $(wildcard $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/*/*.mk $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/*/*/*.mk $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/*/*/*/*.mk $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/*/*/*/*/*.mk))
34

package/batocera/boot/batocera-initramfs/batocera-initramfs.mk

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,14 @@ BATOCERA_INITRAMFS_SITE = http://www.busybox.net/downloads
99
BATOCERA_INITRAMFS_SOURCE = busybox-$(BATOCERA_INITRAMFS_VERSION).tar.bz2
1010
BATOCERA_INITRAMFS_LICENSE = GPLv2
1111
BATOCERA_INITRAMFS_LICENSE_FILES = LICENSE
12+
BATOCERA_INITRAMFS_INSTALL_IMAGES = YES
1213

1314
BATOCERA_INITRAMFS_DEPENDENCIES += host-uboot-tools libxcrypt
1415
BATOCERA_INITRAMFS_CFLAGS = $(TARGET_CFLAGS)
1516
BATOCERA_INITRAMFS_LDFLAGS = $(TARGET_LDFLAGS)
1617

1718
BATOCERA_INITRAMFS_KCONFIG_FILE = \
18-
$(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/batocera-initramfs/busybox.config
19+
$(BATOCERA_INITRAMFS_PKGDIR)/busybox.config
1920

2021
INITRAMFS_DIR=$(BINARIES_DIR)/initramfs
2122

@@ -65,7 +66,7 @@ define BATOCERA_INITRAMFS_RISCV_EARLY_FIRMWARE
6566
cp -R $(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/starfive/jh7110/initrd/* \
6667
$(INITRAMFS_DIR)/
6768
endef
68-
BATOCERA_INITRAMFS_PRE_INSTALL_TARGET_HOOKS += BATOCERA_INITRAMFS_RISCV_EARLY_FIRMWARE
69+
BATOCERA_INITRAMFS_PRE_INSTALL_IMAGES_HOOKS += BATOCERA_INITRAMFS_RISCV_EARLY_FIRMWARE
6970
endif
7071

7172
ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_SM8550),y)
@@ -79,7 +80,7 @@ define BATOCERA_INITRAMFS_SM8550_EARLY_FIRMWARE
7980
cp -R $(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/qualcomm/sm8550/fsoverlay/lib/firmware/qcom/* \
8081
$(INITRAMFS_DIR)/lib/firmware/qcom/
8182
endef
82-
BATOCERA_INITRAMFS_PRE_INSTALL_TARGET_HOOKS += BATOCERA_INITRAMFS_SM8550_EARLY_FIRMWARE
83+
BATOCERA_INITRAMFS_PRE_INSTALL_IMAGES_HOOKS += BATOCERA_INITRAMFS_SM8550_EARLY_FIRMWARE
8384
endif
8485

8586
ifeq ($(BR2_PACKAGE_BATOCERA_TARGET_H700),y)
@@ -92,13 +93,12 @@ define BATOCERA_INITRAMFS_H700_EARLY_FIRMWARE
9293
cp -R $(BR2_EXTERNAL_BATOCERA_PATH)/board/batocera/allwinner/h700/fsoverlay/lib/firmware/panels/* \
9394
$(INITRAMFS_DIR)/lib/firmware/panels
9495
endef
95-
BATOCERA_INITRAMFS_PRE_INSTALL_TARGET_HOOKS += BATOCERA_INITRAMFS_H700_EARLY_FIRMWARE
96+
BATOCERA_INITRAMFS_PRE_INSTALL_IMAGES_HOOKS += BATOCERA_INITRAMFS_H700_EARLY_FIRMWARE
9697
endif
9798

98-
define BATOCERA_INITRAMFS_INSTALL_TARGET_CMDS
99+
define BATOCERA_INITRAMFS_INSTALL_IMAGES_CMDS
99100
mkdir -p $(INITRAMFS_DIR)
100-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/batocera-initramfs/init \
101-
$(INITRAMFS_DIR)/init
101+
cp $(BATOCERA_INITRAMFS_PKGDIR)/init $(INITRAMFS_DIR)/init
102102
$(BATOCERA_INITRAMFS_MAKE_ENV) $(MAKE) $(BATOCERA_INITRAMFS_MAKE_OPTS) -C $(@D) install
103103
(cd $(INITRAMFS_DIR) && find . | cpio -H newc -o > $(BINARIES_DIR)/initrd)
104104
(cd $(BINARIES_DIR) && mkimage -A $(BATOCERA_INITRAMFS_INITRDA) \

package/batocera/boot/batocera-shim-signed-efi-helpers-ia32/batocera-shim-signed-efi-helpers-ia32.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_VERSION = 1+15.8+1~deb12u1
88
BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_SITE = https://ftp.debian.org/debian/pool/main/s/shim-helpers-i386-signed
99
BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_SOURCE = shim-helpers-i386-signed_$(BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_VERSION)_i386.deb
10+
BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_INSTALL_IMAGES = YES
1011

1112
define BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_EXTRACT_CMDS
1213
mkdir -p $(@D)/shim-signed
@@ -16,7 +17,7 @@ endef
1617
define BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_BUILD_CMDS
1718
endef
1819

19-
define BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_INSTALL_TARGET_CMDS
20+
define BATOCERA_SHIM_SIGNED_EFI_HELPERS_IA32_INSTALL_IMAGES_CMDS
2021
mkdir -p $(BINARIES_DIR)/shim-signed
2122

2223
cp $(@D)/shim-signed/usr/lib/shim/fbia32.efi.signed $(BINARIES_DIR)/shim-signed/fbia32.efi

package/batocera/boot/batocera-shim-signed-efi-ia32/batocera-shim-signed-efi-ia32.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
BATOCERA_SHIM_SIGNED_EFI_IA32_VERSION = 1.44~1+deb12u1+15.8-1~deb12u1
88
BATOCERA_SHIM_SIGNED_EFI_IA32_SITE = https://ftp.debian.org/debian/pool/main/s/shim-signed
99
BATOCERA_SHIM_SIGNED_EFI_IA32_SOURCE = shim-signed_$(BATOCERA_SHIM_SIGNED_EFI_IA32_VERSION)_i386.deb
10+
BATOCERA_SHIM_SIGNED_EFI_IA32_INSTALL_IMAGES = YES
1011

1112
define BATOCERA_SHIM_SIGNED_EFI_IA32_EXTRACT_CMDS
1213
mkdir -p $(@D)/shim-signed
@@ -16,7 +17,7 @@ endef
1617
define BATOCERA_SHIM_SIGNED_EFI_IA32_BUILD_CMDS
1718
endef
1819

19-
define BATOCERA_SHIM_SIGNED_EFI_IA32_INSTALL_TARGET_CMDS
20+
define BATOCERA_SHIM_SIGNED_EFI_IA32_INSTALL_IMAGES_CMDS
2021
mkdir -p $(BINARIES_DIR)/shim-signed
2122

2223
cp $(@D)/shim-signed/usr/lib/shim/shimia32.efi.signed $(BINARIES_DIR)/shim-signed/shimia32.efi

package/batocera/boot/batocera-shim-signed-efi-x64/batocera-shim-signed-efi-x64.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
BATOCERA_SHIM_SIGNED_EFI_X64_VERSION = 1.58+15.8-0ubuntu1
88
BATOCERA_SHIM_SIGNED_EFI_X64_SITE = https://launchpad.net/ubuntu/+archive/primary/+files
99
BATOCERA_SHIM_SIGNED_EFI_X64_SOURCE = shim-signed_$(BATOCERA_SHIM_SIGNED_EFI_X64_VERSION)_amd64.deb
10+
BATOCERA_SHIM_SIGNED_EFI_X64_INSTALL_IMAGES = YES
1011

1112
define BATOCERA_SHIM_SIGNED_EFI_X64_EXTRACT_CMDS
1213
mkdir -p $(@D)/shim-signed
@@ -16,7 +17,7 @@ endef
1617
define BATOCERA_SHIM_SIGNED_EFI_X64_BUILD_CMDS
1718
endef
1819

19-
define BATOCERA_SHIM_SIGNED_EFI_X64_INSTALL_TARGET_CMDS
20+
define BATOCERA_SHIM_SIGNED_EFI_X64_INSTALL_IMAGES_CMDS
2021
mkdir -p $(BINARIES_DIR)/shim-signed
2122

2223
cp $(@D)/shim-signed/usr/lib/shim/fbx64.efi $(BINARIES_DIR)/shim-signed/

package/batocera/boot/batocera-syslinux-efi/batocera-syslinux-efi.mk

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@
77
BATOCERA_SYSLINUX_EFI_VERSION = 6.04.pre2.r11.gbf6db5b4-2
88
BATOCERA_SYSLINUX_EFI_SOURCE =
99
BATOCERA_SYSLINUX_EFI_SITE = binaries
10+
BATOCERA_SYSLINUX_EFI_DEPENDENCIES = host-dosfstools host-mtools
11+
BATOCERA_SYSLINUX_EFI_INSTALL_IMAGES = YES
1012

1113
define BATOCERA_SYSLINUX_EFI_EXTRACT_CMDS
12-
cp -R $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/batocera-syslinux-efi/binaries/* $(@D)
14+
cp -R $(BATOCERA_SYSLINUX_EFI_PKGDIR)/binaries/* $(@D)
1315
endef
1416

15-
define BATOCERA_SYSLINUX_EFI_INSTALL_TARGET_CMDS
17+
define BATOCERA_SYSLINUX_EFI_INSTALL_IMAGES_CMDS
1618
mkdir -p $(BINARIES_DIR)/syslinux/efi64
1719
cp $(@D)/bootx64.selfsigned.efi $(BINARIES_DIR)/syslinux/bootx64.efi
1820
cp $(@D)/fbx64.selfsigned.efi $(BINARIES_DIR)/syslinux/fbx64.efi

package/batocera/boot/rockpro64-blobs/rockpro64-blobs.mk

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
ROCKPRO64_BLOBS_VERSION = 2.0
22
ROCKPRO64_BLOBS_SITE = https://github.com/batocera-linux/rockpro64-blobs.git
33
ROCKPRO64_BLOBS_SITE_METHOD=git
4+
ROCKPRO64_BLOBS_INSTALL_IMAGES = YES
45

5-
define ROCKPRO64_BLOBS_INSTALL_TARGET_CMDS
6+
define ROCKPRO64_BLOBS_INSTALL_IMAGES_CMDS
67
cp $(@D)/idbloader.img $(BINARIES_DIR)/idbloader-rockpro64.img
78
cp $(@D)/trust.img $(BINARIES_DIR)/trust-rockpro64.img
89
cp $(@D)/uboot.img $(BINARIES_DIR)/u-boot-rockpro64.bin

package/batocera/boot/uboot-bananapi-m7/uboot-bananapi-m7.mk

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,7 @@
66

77
# Version: Built from source - @dmanlfc
88
UBOOT_BANANAPI_M7_VERSION = 2024.06
9-
UBOOT_BANANAPI_M7_SOURCE =
9+
UBOOT_BANANAPI_M7_BOOT_SRC = idbloader.img u-boot.itb
10+
UBOOT_BANANAPI_M7_BINARIES_SUBDIR = bananapi-m7
1011

11-
define UBOOT_BANANAPI_M7_BUILD_CMDS
12-
endef
13-
14-
define UBOOT_BANANAPI_M7_INSTALL_TARGET_CMDS
15-
mkdir -p $(BINARIES_DIR)/bananapi-m7
16-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-bananapi-m7/idbloader.img \
17-
$(BINARIES_DIR)/bananapi-m7/idbloader.img
18-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-bananapi-m7/u-boot.itb \
19-
$(BINARIES_DIR)/bananapi-m7/u-boot.itb
20-
endef
21-
22-
$(eval $(generic-package))
12+
$(eval $(boot-package))

package/batocera/boot/uboot-evb-rk3399/uboot-evb-rk3399.mk

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,6 @@
55
################################################################################
66

77
UBOOT_EVB_RK3399_VERSION = 1.0
8-
UBOOT_EVB_RK3399_SOURCE =
8+
UBOOT_EVB_RK3399_BOOT_SRC = idbloader.img uboot.img trust.img
99

10-
define UBOOT_EVB_RK3399_BUILD_CMDS
11-
endef
12-
13-
define UBOOT_EVB_RK3399_INSTALL_TARGET_CMDS
14-
mkdir -p $(BINARIES_DIR)/uboot-evb-rk3399
15-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-evb-rk3399/idbloader.img $(BINARIES_DIR)/uboot-evb-rk3399/idbloader.img
16-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-evb-rk3399/uboot.img $(BINARIES_DIR)/uboot-evb-rk3399/uboot.img
17-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-evb-rk3399/trust.img $(BINARIES_DIR)/uboot-evb-rk3399/trust.img
18-
endef
19-
20-
$(eval $(generic-package))
10+
$(eval $(boot-package))

package/batocera/boot/uboot-firefly-station-m2/uboot-firefly-station-m2.mk

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,6 @@
55
################################################################################
66

77
UBOOT_FIREFLY_STATION_M2_VERSION = 1.0
8-
UBOOT_FIREFLY_STATION_M2_SOURCE =
8+
UBOOT_FIREFLY_STATION_M2_BOOT_SRC = idbloader.img uboot.img
99

10-
define UBOOT_FIREFLY_STATION_M2_BUILD_CMDS
11-
endef
12-
13-
define UBOOT_FIREFLY_STATION_M2_INSTALL_TARGET_CMDS
14-
mkdir -p $(BINARIES_DIR)/uboot-firefly-station-m2
15-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-firefly-station-m2/idbloader.img $(BINARIES_DIR)/uboot-firefly-station-m2/idbloader.img
16-
cp $(BR2_EXTERNAL_BATOCERA_PATH)/package/batocera/boot/uboot-firefly-station-m2/uboot.img $(BINARIES_DIR)/uboot-firefly-station-m2/uboot.img
17-
endef
18-
19-
$(eval $(generic-package))
10+
$(eval $(boot-package))

0 commit comments

Comments
 (0)