Build: replace mtools with fatshell.

EFI System Partition was the last remaining holdout for mtools usage.

Change-Id: I988f82a2f4318f2f90ec1efb80f7ff5c8908aff7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4140
Reviewed-by: Alex von Gluck IV <[email protected]>
This commit is contained in:
Jessica Hamilton
2021-07-02 04:07:41 +00:00
committed by Alex von Gluck IV
parent f5ec8e8c2d
commit 977a873ab2
+18 -8
View File
@@ -1671,9 +1671,11 @@ rule BuildEfiSystemPartition image : efiLoader
{ {
local macVolumeIcon = [ FDirName local macVolumeIcon = [ FDirName
$(HAIKU_TOP) data artwork VolumeIcon.icns ] ; $(HAIKU_TOP) data artwork VolumeIcon.icns ] ;
local fatshell = <build>fat_shell ;
Depends $(image) : $(efiLoader) ; Depends $(image) : $(efiLoader) ;
Depends $(image) : $(macVolumeIcon) ; Depends $(image) : $(macVolumeIcon) ;
Depends $(image) : $(fatshell) ;
switch $(TARGET_ARCH) { switch $(TARGET_ARCH) {
case x86_64 : case x86_64 :
@@ -1690,18 +1692,26 @@ rule BuildEfiSystemPartition image : efiLoader
Exit "Error: Unknown EFI architecture!" ; Exit "Error: Unknown EFI architecture!" ;
} }
EFIICON on $(image) = $(macVolumeIcon) ; BuildEfiSystemPartition1 $(image) : $(fatshell) $(macVolumeIcon) $(efiLoader) ;
BuildEfiSystemPartition1 $(image) : $(efiLoader) ;
} }
# Usage:
# out : fatshell volumeIcon loader
actions BuildEfiSystemPartition1 actions BuildEfiSystemPartition1
{ {
$(RM) $(<) $(RM) $(<)
export $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
dd if=/dev/zero of=$(<) bs=1024 count=2880 dd if=/dev/zero of=$(<) bs=1024 count=2880
mformat -i $(<) -f 2880
mmd -D s -i $(<) ::/EFI FATFS="$(2[1])"
mmd -D s -i $(<) ::/EFI/BOOT EFIICON="$(2[2])"
mcopy -D o -i $(<) $(EFIICON) ::/.VolumeIcon.icns LOADER="$(2[3])"
mcopy -D o -i $(<) $(>) ::/EFI/BOOT/$(EFINAME)
${FATFS} --initialize "$(<)" 'Haiku ESP'
echo "mkdir myfs/EFI" | ${FATFS} $(<)
echo "mkdir myfs/EFI/BOOT" | ${FATFS} $(<)
echo "cp :${LOADER} myfs/EFI/BOOT/$(EFINAME)" | ${FATFS} $(<)
echo "cp :${EFIICON} myfs/.VolumeIcon.icns" | ${FATFS} $(<)
} }