# $FreeBSD$ NO_MAN= WITHOUT_SSP= BUILDING_EFI= .include PROG= loader.sym INTERNALPROG= # architecture-specific loader code SRCS= main.c exec.c conf.c vers.c reloc.c start.S SRCS+= i386_copy.c bootinfo.c autoload.c devicename.c efimd.c CFLAGS+= -I${.CURDIR}/../../efi/include CFLAGS+= -I${.CURDIR}/../../efi/include/i386 BOOT_FORTH= yes CFLAGS+= -DBOOT_FORTH CFLAGS+= -I${.CURDIR}/../../ficl CFLAGS+= -I${.CURDIR}/../../ficl/i386 CFLAGS+= -I. LIBFICL= ${.OBJDIR}/../../ficl/libficl.a .if ${TARGET_ARCH} == "amd64" SRCS+= elf64_freebsd.c EFIFORMAT= efi-app-x86_64 .error Compiling for amd64! .elif ${TARGET_ARCH} == "i386" SRCS+= elf32_freebsd.c EFIFORMAT= efi-app-ia32 .else .error "TARGET_ARCH is ${MACHINE_CPUARCH} (not amd64 or i386)" .endif # Include bcache code. HAVE_BCACHE= yes # Always add MI sources .PATH: ${.CURDIR}/../../common .include "${.CURDIR}/../../common/Makefile.inc" CFLAGS+= -I${.CURDIR}/../../common FILES= loader.efi FILESMODE_loader.efi= ${BINMODE} LDSCRIPT= ${.CURDIR}/ldscript.i386 LDFLAGS= -Wl,-T${LDSCRIPT} -shared -symbolic ${PROG}: ${LDSCRIPT} CLEANFILES= vers.c loader.efi NEWVERSWHAT= "EFI loader" x86 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} OBJCOPY?= objcopy OBJDUMP?= objdump loader.efi: loader.sym if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \ ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \ exit 1; \ fi ${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \ -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \ --target=${EFIFORMAT} ${.ALLSRC} ${.TARGET} LIBEFI= ${.OBJDIR}/../../efi/libefi/libefi.a CFLAGS+= -I${.CURDIR}/../libi386 CFLAGS+= -I${.CURDIR}/../btx/lib DPADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} LDADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND} .include