Makefile revision 294981
1# $FreeBSD: stable/10/sys/boot/efi/loader/Makefile 294981 2016-01-28 12:11:42Z smh $
2
3MAN=
4
5.include <bsd.own.mk>
6
7MK_SSP=		no
8
9PROG=		loader.sym
10INTERNALPROG=
11WARNS?=		3
12
13# architecture-specific loader code
14SRCS=	autoload.c \
15	bootinfo.c \
16	conf.c \
17	copy.c \
18	devicename.c \
19	main.c \
20	smbios.c \
21	vers.c
22
23.PATH: ${.CURDIR}/arch/${MACHINE}
24# For smbios.c
25.PATH: ${.CURDIR}/../../i386/libi386
26.include "${.CURDIR}/arch/${MACHINE}/Makefile.inc"
27
28CFLAGS+=	-fPIC
29CFLAGS+=	-I${.CURDIR}
30CFLAGS+=	-I${.CURDIR}/arch/${MACHINE}
31CFLAGS+=	-I${.CURDIR}/../include
32CFLAGS+=	-I${.CURDIR}/../include/${MACHINE}
33CFLAGS+=	-I${.CURDIR}/../../../contrib/dev/acpica/include
34CFLAGS+=	-I${.CURDIR}/../../..
35CFLAGS+=	-I${.CURDIR}/../../i386/libi386
36CFLAGS+=	-DNO_PCI -DEFI
37
38.if ${MK_FORTH} != "no"
39BOOT_FORTH=	yes
40CFLAGS+=	-DBOOT_FORTH
41CFLAGS+=	-I${.CURDIR}/../../ficl
42CFLAGS+=	-I${.CURDIR}/../../ficl/${MACHINE}
43LIBFICL=	${.OBJDIR}/../../ficl/libficl.a
44.endif
45
46# Include bcache code.
47HAVE_BCACHE=    yes
48
49.if defined(EFI_STAGING_SIZE)
50CFLAGS+=	-DEFI_STAGING_SIZE=${EFI_STAGING_SIZE}
51.endif
52
53# Always add MI sources 
54.PATH:		${.CURDIR}/../../common
55.include	"${.CURDIR}/../../common/Makefile.inc"
56CFLAGS+=	-I${.CURDIR}/../../common
57
58FILES=	loader.efi
59FILESMODE_loader.efi=	${BINMODE}
60
61LDSCRIPT=	${.CURDIR}/arch/${MACHINE}/ldscript.${MACHINE}
62LDFLAGS=	-Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared -Wl,-znocombreloc
63
64CLEANFILES=	vers.c loader.efi
65
66NEWVERSWHAT=	"EFI loader" ${MACHINE}
67
68vers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../../efi/loader/version
69	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
70
71OBJCOPY?=	objcopy
72OBJDUMP?=	objdump
73
74.if ${MACHINE_CPUARCH} == "amd64"
75EFI_TARGET=	efi-app-x86_64
76.elif ${MACHINE_CPUARCH} == "i386"
77EFI_TARGET=	efi-app-ia32
78.endif
79
80loader.efi: ${PROG}
81	if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
82		${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
83		exit 1; \
84	fi
85	${OBJCOPY} -j .text -j .sdata -j .data \
86		-j .dynamic -j .dynsym -j .rel.dyn \
87		-j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \
88		--output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET}
89
90LIBEFI=		${.OBJDIR}/../libefi/libefi.a
91
92DPADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND} ${LDSCRIPT}
93LDADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND}
94
95.include <bsd.prog.mk>
96
97beforedepend ${OBJS}: machine x86
98
99CLEANFILES+=   machine x86
100
101machine:
102	ln -sf ${.CURDIR}/../../../amd64/include machine
103
104x86:
105	ln -sf ${.CURDIR}/../../../x86/include x86
106