Monorepo for Aesthetic.Computer
aesthetic.computer
1# UEFI Splash Chainloader — gnu-efi based
2ARCH = x86_64
3TARGET = splash.efi
4
5# gnu-efi paths
6EFI_INC = /usr/include/efi
7EFI_INCS = -I$(EFI_INC) -I$(EFI_INC)/$(ARCH) -I$(EFI_INC)/protocol
8EFI_LIB = /usr/lib
9EFI_CRT = $(EFI_LIB)/crt0-efi-$(ARCH).o
10EFI_LDS = $(EFI_LIB)/elf_$(ARCH)_efi.lds
11
12CC = gcc
13CFLAGS = -fno-stack-protector -fpic -fshort-wchar -mno-red-zone \
14 -Wall -DGNU_EFI_USE_MS_ABI -DEFI_FUNCTION_WRAPPER $(EFI_INCS)
15LDFLAGS = -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic \
16 -L$(EFI_LIB) $(EFI_CRT)
17LIBS = -lefi -lgnuefi
18
19.PHONY: all clean
20
21all: $(TARGET)
22
23splash.o: splash.c font8x8.h
24 $(CC) $(CFLAGS) -c -o $@ $<
25
26splash.so: splash.o
27 ld $(LDFLAGS) $^ -o $@ $(LIBS)
28
29$(TARGET): splash.so
30 objcopy -j .text -j .sdata -j .data -j .dynamic \
31 -j .dynsym -j .rel -j .rela -j .reloc \
32 --target=efi-app-$(ARCH) $< $@
33 @echo "Built: $@ ($$(wc -c < $@ | tr -d ' ') bytes)"
34
35clean:
36 rm -f splash.o splash.so $(TARGET)