Annotation of src/sys/stand/efiboot/Makefile.efiboot, Revision 1.6
1.6 ! jmcneill 1: # $NetBSD: Makefile.efiboot,v 1.5 2018/09/15 17:06:32 jmcneill Exp $
1.1 jmcneill 2:
3: S= ${.CURDIR}/../../..
4:
5: NOMAN= # defined
6: NOPIE= # defined
7: NOLIBCSANITIZER=# defined
8: NOSANITIZER= # defined
9: NORELRO= # defined
10: PROG?= boot.efi
11: NEWVERSWHAT?= "EFI Boot"
12:
13: EFIDIR= ${S}/external/bsd/gnu-efi/dist
14: GNUEFIARCH?= ${MACHINE_CPU}
15: CPPFLAGS+= -I${EFIDIR}/inc -I${EFIDIR}/inc/${GNUEFIARCH}
16: CPPFLAGS+= -I${EFIDIR}/inc/protocol
17:
18: LDSCRIPT?= ${EFIDIR}/gnuefi/elf_${GNUEFIARCH}_efi.lds
19:
20: AFLAGS.start.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:}
21:
22: .PATH: ${EFIDIR}/gnuefi
23: SOURCES= crt0-efi-${GNUEFIARCH}.S reloc_${GNUEFIARCH}.c
1.3 jmcneill 24: SOURCES+= boot.c conf.c console.c dev_net.c devopen.c exec.c panic.c prompt.c
1.6 ! jmcneill 25: SOURCES+= efiboot.c efichar.c efidev.c efienv.c efigetsecs.c efifdt.c efifile.c efiblock.c efinet.c efipxe.c efiacpi.c
1.1 jmcneill 26:
27: .PATH: ${S}/external/bsd/libfdt/dist
28: CPPFLAGS+= -I${S}/external/bsd/libfdt/dist
29: SOURCES+= fdt.c fdt_addresses.c fdt_empty_tree.c
30: SOURCES+= fdt_ro.c fdt_rw.c fdt_strerror.c fdt_sw.c fdt_wip.c
31:
32: SRCS= ${SOURCES} ${EXTRA_SOURCES}
33:
34: .include <bsd.init.mk>
35:
36: STRIPFLAG= # nothing
37:
38: LIBCRT0= # nothing
39: LIBCRTI= # nothing
40: LIBCRTBEGIN= # nothing
41: LIBCRTEND= # nothing
42: LIBC= # nothing
43:
44: BINDIR=/usr/mdec
45: BINMODE=444
46:
47: .PATH: ${.CURDIR} ${.CURDIR}/..
48: .PATH: ${.CURDIR}/../../lib
49:
50: LDFLAGS+= -nostdlib -T${LDSCRIPT} -Bsymbolic -shared
51: CPPFLAGS+= -I$S -I${.CURDIR} -I${.CURDIR}/../common -I$S/lib/libsa
52: CPPFLAGS+= -I${.OBJDIR}
53: CPPFLAGS+= -I${.CURDIR}/../../lib
54:
55: COPTS+= -fpic -g -O2
56: COPTS+= -fshort-wchar -fno-strict-aliasing
57: COPTS+= -ffreestanding -fno-stack-protector
58: LDFLAGS+= --defsym=EFI_SUBSYSTEM=0xa
59:
60:
61: COPTS+= ${${ACTIVE_CC} == "gcc":? -Wno-error=unused-but-set-variable :}
62: CPPFLAGS+= -nostdinc -D_STANDALONE
63: CPPFLAGS+= -DEFIBOOT
1.5 jmcneill 64: CPPFLAGS+= -DPROGRESS_FN=efi_progress
1.1 jmcneill 65:
66: CPPFLAGS+= -Wall -Wmissing-prototypes
67: CPPFLAGS+= -Wno-pointer-sign
68:
69: CPPFLAGS+= -DHEAP_VARIABLE
70: #CPPFLAGS+= -DSUPPORT_CD9660
71: CPPFLAGS+= -D"devb2cdb(bno)=(bno)"
1.3 jmcneill 72: CPPFLAGS+= -DSUPPORT_DOSFS
1.1 jmcneill 73: #CPPFLAGS+= -DSUPPORT_EXT2FS
1.3 jmcneill 74: CPPFLAGS+= -DSUPPORT_BOOTP
75: CPPFLAGS+= -DSUPPORT_DHCP
1.1 jmcneill 76: #CPPFLAGS+= -DSUPPORT_NFS
1.3 jmcneill 77: CPPFLAGS+= -DSUPPORT_TFTP
1.2 jmcneill 78: CPPFLAGS+= -DLIBSA_ENABLE_LS_OP
1.1 jmcneill 79:
80: #CPPFLAGS+= -DARP_DEBUG
81: #CPPFLAGS+= -DBOOTP_DEBUG
82: #CPPFLAGS+= -DNET_DEBUG
83: #CPPFLAGS+= -DNETIF_DEBUG
84: #CPPFLAGS+= -DNFS_DEBUG
85: #CPPFLAGS+= -DRARP_DEBUG
86: #CPPFLAGS+= -DRPC_DEBUG
87:
88: SAMISCCPPFLAGS+= -DLIBSA_PRINTF_LONGLONG_SUPPORT
89: SAMISCCPPFLAGS+= -DLIBSA_PRINTF_WIDTH_SUPPORT
90: SAMISCCPPFLAGS+= -D"cdb2devb(bno)=(bno)"
91:
92: ### find out what to use for libsa
93: SA_AS= library
94: SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
95: SAMISCMAKEFLAGS+="SA_USE_CREAD=yes"
1.3 jmcneill 96: SAMISCMAKEFLAGS+="SA_INCLUDE_NET=yes"
1.2 jmcneill 97: SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes"
1.1 jmcneill 98: .include "${S}/lib/libsa/Makefile.inc"
99: LIBSA= ${SALIB}
100:
101: ### find out what to use for libkern
102: KERN_AS= library
103: LIBKERN_ARCH?= ${MACHINE_ARCH}
104: KERNMISCMAKEFLAGS+="LIBKERN_ARCH=${LIBKERN_ARCH}"
105: .include "${S}/lib/libkern/Makefile.inc"
106: LIBKERN= ${KERNLIB}
107:
108: ### find out what to use for libz
109: Z_AS= library
110: .include "${S}/lib/libz/Makefile.inc"
111: LIBZ= ${ZLIB}
112:
113: ### find out what to use for libgnuefi
114: GNUEFI_AS= library
115: LIBGNUEFI_ARCH?= ${MACHINE_ARCH}
116: GNUEFIMISCMAKEFLAGS+="LIBGNUEFI_ARCH=${LIBGNUEFI_ARCH}"
117: GNUEFIMISCCPPFLAGS+= -I${EFIDIR}/lib
118: .include "${S}/lib/libgnuefi/Makefile.inc"
119: LIBGNUEFI= ${GNUEFILIB}
120:
121: cleandir distclean: .WAIT cleanlibdir
122:
123: cleanlibdir:
124: -rm -rf lib
125:
126: LIBLIST= ${LIBGNUEFI} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBSA}
127:
128: VERSIONMACHINE=evbarm
129: .include "${S}/conf/newvers_stand.mk"
130:
131: CLEANFILES+= ${PROG}.so ${PROG}.tmp
132:
133: ${PROG}: ${PROG}.so
134: ${OBJCOPY} -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
135: -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
136: -j .reloc -O binary ${PROG}.so ${.TARGET}
137:
138: .include <bsd.prog.mk>
139:
140: ${PROG}.so: ${OBJS} ${LIBLIST} ${LDSCRIPT} ${.CURDIR}/../Makefile.efiboot
141: ${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} ${LIBLIST}
142: @if ${OBJDUMP} -t ${.TARGET}.tmp | grep 'UND'; then \
143: (echo Undefined symbols; false); \
144: fi
145: rm -f ${.TARGET}
146: mv ${.TARGET}.tmp ${.TARGET}
147:
148: KLINK_MACHINE?= ${MACHINE}
149: .include <bsd.klinks.mk>
CVSweb <webmaster@jp.NetBSD.org>