1# $OpenBSD: Makefile,v 1.17 2021/11/14 21:51:48 guenther Exp $ 2 3NOMAN= # 4 5.if ${MACHINE} == "armv7" 6 7PROG= BOOTARM.EFI 8OBJFMT= binary 9INSTALL_STRIP= 10BINDIR= /usr/mdec 11SRCS= start.S self_reloc.c efiboot.c conf.c exec.c efidev.c efipxe.c 12SRCS+= fdt.c 13 14S= ${.CURDIR}/../../../.. 15EFIDIR= ${S}/stand/efi 16 17OBJCOPY?= objcopy 18OBJDUMP?= objdump 19 20LDFLAGS+= -nostdlib -T ${.CURDIR}/ldscript.arm -Bsymbolic -shared 21LDFLAGS+= -z notext -z norelro --pack-dyn-relocs=none 22 23.PATH: ${S}/stand/boot 24SRCS+= boot.c cmd.c vars.c 25 26.PATH: ${S}/lib/libsa 27SRCS+= alloc.c ctime.c exit.c getchar.c hexdump.c \ 28 memcmp.c memcpy.c memmove.c memset.c \ 29 printf.c putchar.c snprintf.c strchr.c strcmp.c strerror.c strncmp.c \ 30 strncpy.c strtol.c strtoll.c 31SRCS+= close.c closeall.c cons.c cread.c dev.c disklabel.c dkcksum.c fchmod.c \ 32 fstat.c lseek.c open.c read.c readdir.c stat.c 33SRCS+= loadfile.c arc4.c 34SRCS+= ufs.c ufs2.c 35SRCS+= arp.c ether.c globals.c in_cksum.c net.c netif.c netudp.c tftp.c 36 37.PATH: ${S}/lib/libkern/arch/arm ${S}/lib/libkern 38SRCS+= divsi3.S divdi3.c moddi3.c qdivrem.c strlcat.c strlcpy.c strlen.c 39SRCS+= __aeabi_ldivmod.S 40 41.PATH: ${S}/lib/libz 42SRCS+= adler32.c crc32.c inflate.c inftrees.c 43 44CPPFLAGS+= -nostdinc 45CPPFLAGS+= -I${S} -I. -I${.CURDIR} 46CPPFLAGS+= -I${EFIDIR}/include -I${EFIDIR}/include/arm 47CPPFLAGS+= -D_STANDALONE 48CPPFLAGS+= -DSMALL -DSLOW -DNOBYFOUR -D__INTERNAL_LIBSA_CREAD 49CPPFLAGS+= -DNEEDS_HEAP_H 50COPTS+= -ffreestanding -fno-stack-protector 51COPTS+= -fshort-wchar -fPIC -fno-builtin 52COPTS+= -Wall -Werror 53COPTS+= -mfloat-abi=soft 54 55PROG.elf= ${PROG:S/.EFI/.elf/} 56CLEANFILES+= ${PROG.elf} ${PROG.elf}.tmp 57 58${PROG}: ${PROG.elf} 59 ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ 60 -j .dynamic -j .dynsym -j .dynstr -j .rel -j .rel.dyn \ 61 -j .rela -j .rela.dyn -j .reloc \ 62 --output-target=${OBJFMT} ${PROG.elf} ${.TARGET} 63 64.include <bsd.prog.mk> 65 66${PROG.elf}: ${OBJS} 67 ${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} ${LDADD} 68 @if ${OBJDUMP} -t ${.TARGET}.tmp | grep 'UND'; then \ 69 (echo Undefined symbols; false); \ 70 fi 71 mv ${.TARGET}.tmp ${.TARGET} 72 73.if !make(clean) && !make(cleandir) && !make(includes) && !make(obj) 74.BEGIN: 75 @([ -h machine ] || ln -s ${.CURDIR}/../../../${MACHINE}/include machine) 76 @([ -h arm ] || ln -s ${.CURDIR}/../../../arm/include arm) 77.NOPATH: machine arm 78CLEANFILES+= machine arm 79.endif 80 81.else 82NOPROG=yes 83.include <bsd.prog.mk> 84.endif 85