Makefile revision 281156
1# $FreeBSD: head/sys/boot/efi/boot1/Makefile 281156 2015-04-06 15:50:20Z andrew $ 2 3MAN= 4 5.include <bsd.own.mk> 6 7# In-tree GCC does not support __attribute__((ms_abi)). 8.if ${COMPILER_TYPE} != "gcc" 9 10MK_SSP= no 11 12PROG= loader.sym 13INTERNALPROG= 14 15# architecture-specific loader code 16SRCS= boot1.c reloc.c start.S 17 18CFLAGS+= -fPIC 19CFLAGS+= -I. 20CFLAGS+= -I${.CURDIR}/../include 21CFLAGS+= -I${.CURDIR}/../include/${MACHINE_CPUARCH} 22CFLAGS+= -I${.CURDIR}/../../../contrib/dev/acpica/include 23CFLAGS+= -I${.CURDIR}/../../.. 24 25# Always add MI sources and REGULAR efi loader bits 26.PATH: ${.CURDIR}/../loader/arch/${MACHINE_CPUARCH} ${.CURDIR}/../../common 27CFLAGS+= -I${.CURDIR}/../../common 28 29FILES= boot1.efi boot1.efifat 30FILESMODE_boot1.efi= ${BINMODE} 31 32LDSCRIPT= ${.CURDIR}/../loader/arch/${MACHINE_CPUARCH}/ldscript.${MACHINE_CPUARCH} 33LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared 34 35.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 36LDFLAGS+= -Wl,-znocombreloc 37.endif 38 39.if ${MACHINE_CPUARCH} == "arm" 40# 41# Add libstand for the __aeabi_* functions used by the compiler 42# 43DPADD+= ${LIBSTAND} 44LDADD+= -lstand 45.endif 46 47${PROG}: ${LDSCRIPT} 48 49OBJCOPY?= objcopy 50OBJDUMP?= objdump 51 52.if ${MACHINE_CPUARCH} == "amd64" 53EFI_TARGET= efi-app-x86_64 54.elif ${MACHINE_CPUARCH} == "i386" 55EFI_TARGET= efi-app-ia32 56.else 57EFI_TARGET= binary 58.endif 59 60boot1.efi: loader.sym 61 if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \ 62 ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \ 63 exit 1; \ 64 fi 65 ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ 66 -j .dynamic -j .dynsym -j .rel.dyn \ 67 -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ 68 --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} 69 70boot1.o: ${.CURDIR}/../../common/ufsread.c 71 72# The following inserts out objects into a template FAT file system 73# created by generate-fat.sh 74 75.include "${.CURDIR}/Makefile.fat" 76 77boot1.efifat: boot1.efi 78 echo ${.OBJDIR} 79 uudecode ${.CURDIR}/fat-${MACHINE_CPUARCH}.tmpl.bz2.uu 80 mv fat-${MACHINE_CPUARCH}.tmpl.bz2 ${.TARGET}.bz2 81 bzip2 -f -d ${.TARGET}.bz2 82 dd if=boot1.efi of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc 83 84CLEANFILES= boot1.efi boot1.efifat 85 86.endif # ${COMPILER_TYPE} != "gcc" 87 88.include <bsd.prog.mk> 89 90.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 91beforedepend ${OBJS}: machine x86 92 93CLEANFILES+= machine x86 94 95machine: 96 ln -sf ${.CURDIR}/../../../amd64/include machine 97 98x86: 99 ln -sf ${.CURDIR}/../../../x86/include x86 100.endif 101