Changeset View
Changeset View
Standalone View
Standalone View
head/stand/efi/loader/Makefile
# $FreeBSD$ | # $FreeBSD$ | ||||
LOADER_NET_SUPPORT?= yes | LOADER_NET_SUPPORT?= yes | ||||
LOADER_MSDOS_SUPPORT?= yes | LOADER_MSDOS_SUPPORT?= yes | ||||
LOADER_UFS_SUPPORT?= yes | LOADER_UFS_SUPPORT?= yes | ||||
LOADER_CD9660_SUPPORT?= no | LOADER_CD9660_SUPPORT?= no | ||||
LOADER_EXT2FS_SUPPORT?= no | LOADER_EXT2FS_SUPPORT?= no | ||||
.include <bsd.init.mk> | .include <bsd.init.mk> | ||||
PROG= loader.sym | LOADER?= loader_${LOADER_INTERP} | ||||
PROG= ${LOADER}.sym | |||||
INTERNALPROG= | INTERNALPROG= | ||||
WARNS?= 3 | WARNS?= 3 | ||||
# architecture-specific loader code | # architecture-specific loader code | ||||
SRCS= autoload.c \ | SRCS= autoload.c \ | ||||
bootinfo.c \ | bootinfo.c \ | ||||
conf.c \ | conf.c \ | ||||
copy.c \ | copy.c \ | ||||
efi_main.c \ | efi_main.c \ | ||||
framebuffer.c \ | framebuffer.c \ | ||||
main.c \ | main.c \ | ||||
self_reloc.c \ | self_reloc.c \ | ||||
smbios.c \ | smbios.c \ | ||||
vers.c | vers.c | ||||
CFLAGS+= -I${.CURDIR}/../loader | |||||
.if ${MK_ZFS} != "no" | .if ${MK_ZFS} != "no" | ||||
CFLAGS+= -I${ZFSSRC} | CFLAGS+= -I${ZFSSRC} | ||||
CFLAGS+= -DEFI_ZFS_BOOT | CFLAGS+= -DEFI_ZFS_BOOT | ||||
HAVE_ZFS= yes | HAVE_ZFS= yes | ||||
.endif | .endif | ||||
.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201 | .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201 | ||||
CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized | CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized | ||||
.endif | .endif | ||||
# We implement a slightly non-standard %S in that it always takes a | # We implement a slightly non-standard %S in that it always takes a | ||||
# CHAR16 that's common in UEFI-land instead of a wchar_t. This only | # CHAR16 that's common in UEFI-land instead of a wchar_t. This only | ||||
# seems to matter on arm64 where wchar_t defaults to an int instead | # seems to matter on arm64 where wchar_t defaults to an int instead | ||||
# of a short. There's no good cast to use here so just ignore the | # of a short. There's no good cast to use here so just ignore the | ||||
# warnings for now. | # warnings for now. | ||||
CWARNFLAGS.main.c+= -Wno-format | CWARNFLAGS.main.c+= -Wno-format | ||||
.PATH: ${.CURDIR}/arch/${MACHINE} | .PATH: ${.CURDIR}/../loader | ||||
# For smbios.c | .PATH: ${.CURDIR}/../loader/arch/${MACHINE} | ||||
# For smbios.c XXX need to abstract properly | |||||
.PATH: ${BOOTSRC}/i386/libi386 | .PATH: ${BOOTSRC}/i386/libi386 | ||||
.include "${.CURDIR}/arch/${MACHINE}/Makefile.inc" | .include "${.CURDIR}/../loader/arch/${MACHINE}/Makefile.inc" | ||||
CFLAGS+= -I${.CURDIR} | CFLAGS+= -I${.CURDIR} | ||||
CFLAGS+= -I${.CURDIR}/arch/${MACHINE} | CFLAGS+= -I${.CURDIR}/arch/${MACHINE} | ||||
CFLAGS+= -I${EFISRC}/include | CFLAGS+= -I${EFISRC}/include | ||||
CFLAGS+= -I${EFISRC}/include/${MACHINE} | CFLAGS+= -I${EFISRC}/include/${MACHINE} | ||||
CFLAGS+= -I${SYSDIR}/contrib/dev/acpica/include | CFLAGS+= -I${SYSDIR}/contrib/dev/acpica/include | ||||
CFLAGS+= -I${BOOTSRC}/i386/libi386 | CFLAGS+= -I${BOOTSRC}/i386/libi386 | ||||
CFLAGS+= -DNO_PCI -DEFI | CFLAGS+= -DNO_PCI -DEFI | ||||
Show All 17 Lines | |||||
# Include bcache code. | # Include bcache code. | ||||
HAVE_BCACHE= yes | HAVE_BCACHE= yes | ||||
.if defined(EFI_STAGING_SIZE) | .if defined(EFI_STAGING_SIZE) | ||||
CFLAGS+= -DEFI_STAGING_SIZE=${EFI_STAGING_SIZE} | CFLAGS+= -DEFI_STAGING_SIZE=${EFI_STAGING_SIZE} | ||||
.endif | .endif | ||||
NEWVERSWHAT= "EFI loader" ${MACHINE} | |||||
VERSION_FILE= ${.CURDIR}/../loader/version | |||||
# Always add MI sources | # Always add MI sources | ||||
.include "${BOOTSRC}/loader.mk" | .include "${BOOTSRC}/loader.mk" | ||||
FILES+= loader.efi | FILES+= ${LOADER}.efi | ||||
FILESMODE_loader.efi= ${BINMODE} | FILESMODE_${LOADER}.efi= ${BINMODE} | ||||
LDSCRIPT= ${.CURDIR}/arch/${MACHINE}/ldscript.${MACHINE} | LDSCRIPT= ${.CURDIR}/../loader/arch/${MACHINE}/ldscript.${MACHINE} | ||||
LDFLAGS+= -Wl,-T${LDSCRIPT},-Bsymbolic,-znotext -shared | LDFLAGS+= -Wl,-T${LDSCRIPT},-Bsymbolic,-znotext -shared | ||||
CLEANFILES+= loader.efi | CLEANFILES+= loader.efi | ||||
NEWVERSWHAT= "EFI loader" ${MACHINE} | ${LOADER}.efi: ${PROG} | ||||
loader.efi: ${PROG} | |||||
if ${NM} ${.ALLSRC} | grep ' U '; then \ | if ${NM} ${.ALLSRC} | grep ' U '; then \ | ||||
echo "Undefined symbols in ${.ALLSRC}"; \ | echo "Undefined symbols in ${.ALLSRC}"; \ | ||||
exit 1; \ | exit 1; \ | ||||
fi | fi | ||||
SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ | SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ | ||||
${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ | ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ | ||||
-j .dynamic -j .dynsym -j .rel.dyn \ | -j .dynamic -j .dynsym -j .rel.dyn \ | ||||
-j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ | -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ | ||||
Show All 9 Lines |