1# $OpenBSD: Makefile.common,v 1.22 2021/11/14 21:51:48 guenther Exp $ 2 3S= ${.CURDIR}/../../../../.. 4SADIR= ${.CURDIR}/../.. 5EFIDIR= ${S}/stand/efi 6 7OBJCOPY?= objcopy 8OBJDUMP?= objdump 9 10EFI_HEAP_LIMIT= 0xc00000 11 12LDFLAGS+= -nostdlib -T${.CURDIR}/../${LDSCRIPT} -Bsymbolic -shared 13LDFLAGS+= --pack-dyn-relocs=none 14 15COPTS+= -DEFIBOOT -DFWRANDOM -DNEEDS_HEAP_H -I${.CURDIR}/.. 16COPTS+= -I${EFIDIR}/include -I${S}/stand/boot 17COPTS+= -ffreestanding -std=gnu99 18COPTS+= -fshort-wchar -fPIC -mno-red-zone 19.if ${SOFTRAID:L} == "yes" 20COPTS+= -DSOFTRAID 21.endif 22COPTS+= -D_STANDALONE -nostdinc -fno-builtin 23 24AFLAGS+= -pipe -fPIC 25 26.PATH: ${.CURDIR}/.. 27SRCS+= self_reloc.c 28SRCS+= efiboot.c efidev.c efipxe.c efirng.c 29SRCS+= conf.c dev_i386.c cmd_i386.c diskprobe.c exec_i386.c machdep.c 30SRCS+= memprobe.c 31 32.PATH: ${S}/stand/boot 33SRCS+= boot.c bootarg.c cmd.c vars.c 34 35.PATH: ${S}/lib/libsa 36SRCS+= alloc.c ctime.c exit.c getchar.c hexdump.c \ 37 memcmp.c memcpy.c memmove.c memset.c printf.c \ 38 putchar.c snprintf.c strcmp.c strerror.c strlen.c strncmp.c strncpy.c \ 39 strtol.c strtoll.c 40SRCS+= close.c closeall.c cons.c cread.c dev.c disklabel.c dkcksum.c \ 41 fchmod.c fstat.c lseek.c open.c read.c readdir.c stat.c 42SRCS+= ufs.c ufs2.c cd9660.c 43.if ${SOFTRAID:L} == "yes" 44SRCS+= aes_xts.c bcrypt_pbkdf.c blowfish.c explicit_bzero.c hmac_sha1.c \ 45 pkcs5_pbkdf2.c rijndael.c sha1.c sha2.c softraid.c 46.endif 47 48.PATH: ${S}/lib/libz 49SRCS+= adler32.c crc32.c inflate.c inftrees.c 50 51.PATH: ${S}/lib/libkern 52SRCS+= ashldi3.c ashrdi3.c divdi3.c lshrdi3.c moddi3.c qdivrem.c 53SRCS+= strlcpy.c 54 55.PATH: ${SADIR}/libsa 56SRCS+= loadfile.c arc4.c elf64.c elf32.c 57 58.if ${SOFTRAID:L} == "yes" 59SRCS+= softraid_amd64.c 60.endif 61 62PROG.so= ${PROG:S/.EFI/.so/} 63CLEANFILES+= ${PROG.so} ${PROG.so}.tmp 64 65${PROG}: ${PROG.so} 66 ${OBJCOPY} -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ 67 -j .rel.dyn -j .rela -j .rela.dyn -j .reloc \ 68 --target=${OBJFMT} ${PROG.so} ${.TARGET} 69 70.include <bsd.prog.mk> 71CFLAGS+= -Wno-pointer-sign 72CPPFLAGS+= -DSMALL -DSLOW -DNOBYFOUR -D__INTERNAL_LIBSA_CREAD 73CPPFLAGS+= -DHEAP_LIMIT=${EFI_HEAP_LIMIT} -DHIBERNATE 74 75${PROG.so}: ${OBJS} 76 ${LD} ${LDFLAGS} -o ${.TARGET}.tmp ${OBJS} ${LDADD} 77 @if ${OBJDUMP} -t ${.TARGET}.tmp | grep 'UND'; then \ 78 (echo Undefined symbols; false); \ 79 fi 80 mv ${.TARGET}.tmp ${.TARGET} 81