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