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