aboutsummaryrefslogtreecommitdiffstats
path: root/hello-efi/Makefile
blob: e509176a5f1e0bc456ef09ffef680a0b10c91b8a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
EFI_ARCH        = x86_64
EFIINC          = /usr/include/efi
EFIINCS         = -I$(EFIINC) -I$(EFIINC)/$(EFI_ARCH) -I$(EFIINC)/protocol
LIB             = /usr/lib
EFILIB          = /usr/lib
EFI_CRT_OBJS    = $(EFILIB)/crt0-efi-$(EFI_ARCH).o
EFI_LDS         = $(EFILIB)/elf_$(EFI_ARCH)_efi.lds

all:
	gcc $(EFIINCS) -fpic -ffreestanding -fno-stack-protector -fno-stack-check -fshort-wchar -mno-red-zone -maccumulate-outgoing-args -c main.c -o main.o
	ld -shared -Bsymbolic -T $(EFI_LDS) -L $(EFILIB) $(EFI_CRT_OBJS) main.o -o main.so -lefi -lgnuefi 
	objcopy -j .text -j .sdata -j .data -j .rodata -j .dynamic -j .dynsym  -j .rel -j .rela -j .rel.* -j .rela.* -j .reloc --output-target efi-app-x86_64 --subsystem=10 main.so main.efi