Makefile revision 281027
1# $FreeBSD: head/sys/boot/efi/boot1/Makefile 281027 2015-04-03 15:25:59Z 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${PROG}: ${LDSCRIPT} 40 41OBJCOPY?= objcopy 42OBJDUMP?= objdump 43 44.if ${MACHINE_CPUARCH} == "amd64" 45EFI_TARGET= efi-app-x86_64 46.elif ${MACHINE_CPUARCH} == "i386" 47EFI_TARGET= efi-app-ia32 48.endif 49 50boot1.efi: loader.sym 51 if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \ 52 ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \ 53 exit 1; \ 54 fi 55 ${OBJCOPY} -j .text -j .sdata -j .data \ 56 -j .dynamic -j .dynsym -j .rel.dyn \ 57 -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ 58 --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} 59 60boot1.o: ${.CURDIR}/../../common/ufsread.c 61 62# The following inserts out objects into a template FAT file system 63# created by generate-fat.sh 64 65.include "${.CURDIR}/Makefile.fat" 66 67boot1.efifat: boot1.efi 68 echo ${.OBJDIR} 69 uudecode ${.CURDIR}/fat.tmpl.bz2.uu 70 mv fat.tmpl.bz2 ${.TARGET}.bz2 71 bzip2 -f -d ${.TARGET}.bz2 72 dd if=boot1.efi of=${.TARGET} seek=${BOOT1_OFFSET} conv=notrunc 73 74CLEANFILES= boot1.efifat 75 76.endif # ${COMPILER_TYPE} != "gcc" 77 78.include <bsd.prog.mk> 79 80.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 81beforedepend ${OBJS}: machine x86 82 83CLEANFILES+= machine x86 boot1.efi 84 85machine: 86 ln -sf ${.CURDIR}/../../../amd64/include machine 87 88x86: 89 ln -sf ${.CURDIR}/../../../x86/include x86 90.endif 91