Makefile revision 261567
1# $FreeBSD: head/sys/boot/i386/efi/Makefile 261567 2014-02-06 21:54:21Z emaste $
2
3NO_MAN=
4BUILDING_EFI=
5
6.include <bsd.own.mk>
7MK_SSP=		no
8
9PROG=		loader.sym
10INTERNALPROG=
11
12# architecture-specific loader code
13SRCS=	main.c exec.c conf.c vers.c reloc.c start.S elf32_freebsd.c
14SRCS+=	i386_copy.c bootinfo.c autoload.c devicename.c efimd.c
15
16CFLAGS+=	-I${.CURDIR}/../../efi/include
17CFLAGS+=	-I${.CURDIR}/../../efi/include/i386
18
19.if ${MK_FORTH} != "no"
20BOOT_FORTH=	yes
21CFLAGS+=	-DBOOT_FORTH
22CFLAGS+=	-I${.CURDIR}/../../ficl
23CFLAGS+=	-I${.CURDIR}/../../ficl/i386
24LIBFICL=	${.OBJDIR}/../../ficl/libficl.a
25.endif
26
27# Include bcache code.
28HAVE_BCACHE=    yes
29
30# Always add MI sources 
31.PATH:		${.CURDIR}/../../common
32.include	"${.CURDIR}/../../common/Makefile.inc"
33CFLAGS+=	-I${.CURDIR}/../../common
34
35FILES=	loader.efi
36FILESMODE_loader.efi=	${BINMODE}
37
38LDSCRIPT=	${.CURDIR}/ldscript.i386
39LDFLAGS=	-Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared
40
41${PROG}:	${LDSCRIPT}
42
43CLEANFILES=	vers.c loader.efi
44
45NEWVERSWHAT=	"EFI loader" x86
46
47vers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
48	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
49
50OBJCOPY?=	objcopy
51OBJDUMP?=	objdump
52
53loader.efi: loader.sym
54	if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
55		${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
56		exit 1; \
57	fi
58	${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \
59	    -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \
60	    --target=efi-app-ia32 ${.ALLSRC} ${.TARGET}
61
62LIBEFI=		${.OBJDIR}/../../efi/libefi/libefi.a
63LIBSTAND=	${.OBJDIR}/../../libstand32/libstand.a
64CFLAGS+=	-I${.CURDIR}/../libi386
65CFLAGS+=	-I${.CURDIR}/../btx/lib
66
67DPADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND}
68LDADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND}
69
70.include <bsd.prog.mk>
71
72.if ${MACHINE_CPUARCH} == "amd64"
73CFLAGS+=        -I.
74beforedepend ${OBJS}: machine
75machine:
76	ln -sf ${.CURDIR}/../../../i386/include machine
77.endif
78