The shell builtin 'source' command is a bash extension. Use the '.' portable command.
This fix building when /bin/sh is dash (Ubuntu 16): $ make -C roms efi [...] Fd File Name:QEMU_EFI (/source/qemu/roms/edk2/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/QEMU_EFI.fd) Fd File Name:QEMU_VARS (/source/qemu/roms/edk2/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/QEMU_VARS.fd) GUID cross reference file can be found at /source/qemu/roms/edk2/Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/Guid.xref - Done - Build end time: 16:33:29, Mar.09 2019 Build total time: 00:03:35 cp edk2/Build/ArmVirtQemu-AARCH64/DEBUG_/FV/QEMU_EFI.fd \ ../pc-bios/edk2-aarch64-code.fd cp: cannot stat 'edk2/Build/ArmVirtQemu-AARCH64/DEBUG_/FV/QEMU_EFI.fd': No such file or directory Makefile.edk2:45: recipe for target '../pc-bios/edk2-aarch64-code.fd' failed make[1]: *** [../pc-bios/edk2-aarch64-code.fd] Error 1 make[1]: Leaving directory '/source/qemu/roms' Makefile:148: recipe for target 'efi' failed make: *** [efi] Error 2 make: Leaving directory '/source/qemu/roms' Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- roms/Makefile.edk2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roms/Makefile.edk2 b/roms/Makefile.edk2 index ad6fff044c..6c5e9b9eea 100644 --- a/roms/Makefile.edk2 +++ b/roms/Makefile.edk2 @@ -11,7 +11,7 @@ # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT # WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -toolchain = $(shell source ./edk2-funcs.sh && qemu_edk2_get_toolchain $(1)) +toolchain = $(shell . ./edk2-funcs.sh && qemu_edk2_get_toolchain $(1)) licenses := \ edk2/License.txt \ -- 2.20.1