29 lines
666 B
Makefile
29 lines
666 B
Makefile
|
# -*- makefile -*- : Force emacs to use Makefile mode
|
||
|
|
||
|
# EFI probably doesn't guarantee us a red zone, so let's not rely on it.
|
||
|
#
|
||
|
CFLAGS += -mno-red-zone
|
||
|
|
||
|
# The EFI linker script
|
||
|
#
|
||
|
LDSCRIPT = arch/x86_64/scripts/efi.lds
|
||
|
|
||
|
# Use a relocatable link; we perform final relocations in the efilink utility.
|
||
|
#
|
||
|
LDFLAGS += -r -d -S
|
||
|
|
||
|
# Media types.
|
||
|
#
|
||
|
NON_AUTO_MEDIA += efi
|
||
|
|
||
|
# Rule for building EFI files
|
||
|
#
|
||
|
$(BIN)/%.efi.tmp-reloc : $(BIN)/%.efi.tmp $(EFILINK)
|
||
|
$(QM)$(ECHO) " [EFILINK] $@"
|
||
|
$(Q)$(LD) -e 0 -o /dev/null $< # Check for unresolved symbols
|
||
|
$(Q)$(EFILINK) $< $@
|
||
|
|
||
|
$(BIN)/%.efi : $(BIN)/%.efi.tmp-reloc
|
||
|
$(QM)$(ECHO) " [FINISH] $@"
|
||
|
$(Q)$(OBJCOPY) -Obinary $< $@
|