]> git.proxmox.com Git - efi-boot-shim.git/blame - Makefile
Break out of our db checking loop at the appropriate time.
[efi-boot-shim.git] / Makefile
CommitLineData
b2fe1780
MG
1ARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
2
b2d0e06f
MG
3SUBDIRS = Cryptlib
4
b2fe1780
MG
5LIB_PATH = /usr/lib64
6
7EFI_INCLUDE = /usr/include/efi
b2d0e06f 8EFI_INCLUDES = -nostdinc -ICryptlib -ICryptlib/Include -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol
b2fe1780
MG
9EFI_PATH = /usr/lib64/gnuefi
10
11LIB_GCC = $(shell $(CC) -print-libgcc-file-name)
b2d0e06f 12EFI_LIBS = -lefi -lgnuefi --start-group Cryptlib/libcryptlib.a Cryptlib/OpenSSL/libopenssl.a --end-group $(LIB_GCC)
b2fe1780
MG
13
14EFI_CRT_OBJS = $(EFI_PATH)/crt0-efi-$(ARCH).o
15EFI_LDS = $(EFI_PATH)/elf_$(ARCH)_efi.lds
16
5b1bf558
MG
17CFLAGS = -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \
18 -Wall -mno-red-zone \
b2fe1780
MG
19 $(EFI_INCLUDES)
20ifeq ($(ARCH),x86_64)
21 CFLAGS += -DEFI_FUNCTION_WRAPPER
22endif
8518b8cc
PJ
23ifneq ($(origin VENDOR_CERT_FILE), undefined)
24 CFLAGS += -DVENDOR_CERT_FILE=\"$(VENDOR_CERT_FILE)\"
25endif
26
b2d0e06f 27LDFLAGS = -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIB_PATH) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS)
b2fe1780 28
8518b8cc
PJ
29TARGET = shim.efi
30OBJS = shim.o cert.o
31SOURCES = shim.c shim.h signature.h PeImage.h
b2fe1780 32
37e456be 33all: $(TARGET)
b2fe1780 34
8877e131 35shim.o: $(SOURCES)
b2fe1780 36
8518b8cc
PJ
37cert.o : cert.S
38 $(CC) $(CFLAGS) -c -o $@ $<
39
40shim.so: $(OBJS) Cryptlib/libcryptlib.a Cryptlib/OpenSSL/libopenssl.a cert.o
7f055335
MG
41 $(LD) -o $@ $(LDFLAGS) $^ $(EFI_LIBS)
42
b2d0e06f
MG
43Cryptlib/libcryptlib.a:
44 $(MAKE) -C Cryptlib
45
46Cryptlib/OpenSSL/libopenssl.a:
47 $(MAKE) -C Cryptlib/OpenSSL
48
49%.efi: %.so
b2fe1780
MG
50 objcopy -j .text -j .sdata -j .data \
51 -j .dynamic -j .dynsym -j .rel \
5b1bf558 52 -j .rela -j .reloc -j .eh_frame \
7f055335 53 --target=efi-app-$(ARCH) $^ $@
5b1bf558
MG
54 objcopy -j .text -j .sdata -j .data \
55 -j .dynamic -j .dynsym -j .rel \
56 -j .rela -j .reloc -j .eh_frame \
57 -j .debug_info -j .debug_abbrev -j .debug_aranges \
58 -j .debug_line -j .debug_str -j .debug_ranges \
59 --target=efi-app-$(ARCH) $^ shim.efi.debug
b2fe1780
MG
60
61clean:
b2d0e06f
MG
62 $(MAKE) -C Cryptlib clean
63 $(MAKE) -C Cryptlib/OpenSSL clean
b2fe1780 64 rm -f $(TARGET) $(OBJS)