1 # $FreeBSD: head/sys/boot/efi/loader/Makefile 296769 2016-03-12 21:44:33Z emaste $
11 # architecture-specific loader code
23 .PATH: ${.CURDIR}/arch/${MACHINE}
24 # For smbios.c and i386_module.c
25 .PATH: ${.CURDIR}/../../pc32/libi386
26 .include "${.CURDIR}/arch/${MACHINE}/Makefile.inc"
31 CFLAGS+= -I${.CURDIR}/arch/${MACHINE}
32 CFLAGS+= -I${.CURDIR}/../include
33 CFLAGS+= -I${.CURDIR}/../include/${MACHINE}
34 CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/source/include
35 CFLAGS+= -I${.CURDIR}/../../..
36 CFLAGS+= -I${.CURDIR}/../../pc32/libi386
37 CFLAGS+= -I${.CURDIR}/../../dloader
38 CFLAGS+= -DNO_PCI -DEFI
40 # make buildenv doesn't set DESTDIR, this means LIBSTAND
41 # will be wrong when crossbuilding.
42 .if exists(${.OBJDIR}/../../../../lib/libstand/libstand.a)
43 LIBSTAND= ${.OBJDIR}/../../../../lib/libstand/libstand.a
46 .if exists(${.OBJDIR}/../../dloader/libdloader.a)
47 LIBDLOADER= ${.OBJDIR}/../../dloader/libdloader.a
50 .if defined(EFI_STAGING_SIZE)
51 CFLAGS+= -DEFI_STAGING_SIZE=${EFI_STAGING_SIZE}
54 # Always add MI sources
55 .PATH: ${.CURDIR}/../../common
56 .include "${.CURDIR}/../../common/Makefile.inc"
57 CFLAGS+= -I${.CURDIR}/../../common
60 FILESMODE_loader.efi= ${BINMODE}
62 LDSCRIPT= ${.CURDIR}/arch/${MACHINE}/ldscript.${MACHINE}
63 LDFLAGS+= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared
65 CLEANFILES+= vers.c loader.efi
67 NEWVERSWHAT= "EFI loader" ${MACHINE}
69 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../efi/loader/version
70 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
75 .if ${MACHINE_ARCH} == "x86_64"
76 EFI_TARGET= pei-x86-64
84 if ${NM} ${.ALLSRC} | grep ' U '; then \
85 echo "Undefined symbols in ${.ALLSRC}"; \
88 # No "-j .eh_frame", otherwise the loader doesn't run.
89 ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \
90 -j .dynamic -j .dynsym -j .rel.dyn \
91 -j .rela.dyn -j .reloc -j set_Xcommand_set \
93 --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET}
95 LIBEFI= ${.OBJDIR}/../libefi/libefi.a
97 DPADD= ${LIBEFI} ${LIBSTAND} ${LIBDLOADER} ${LDSCRIPT}
98 LDADD= ${LIBEFI} ${LIBSTAND} ${LIBDLOADER}
100 .include <bsd.prog.mk>