Makefile revision 281238
1# $FreeBSD: head/sys/boot/efi/boot1/Makefile 281238 2015-04-07 21:41:26Z emaste $ 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} 27.PATH: ${.CURDIR}/../loader 28.PATH: ${.CURDIR}/../../common 29CFLAGS+= -I${.CURDIR}/../../common 30 31FILES= boot1.efi boot1.efifat 32FILESMODE_boot1.efi= ${BINMODE} 33 34LDSCRIPT= ${.CURDIR}/../loader/arch/${MACHINE_CPUARCH}/ldscript.${MACHINE_CPUARCH} 35LDFLAGS= -Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared 36 37.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 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 93.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" 94beforedepend ${OBJS}: machine x86 95 96CLEANFILES+= machine x86 97 98machine: 99 ln -sf ${.CURDIR}/../../../amd64/include machine 100 101x86: 102 ln -sf ${.CURDIR}/../../../x86/include x86 103.endif 104