xref: /openbsd-src/sys/arch/amd64/stand/boot/Makefile (revision a9e161243e2d393eb39549a8ca7e57afd445d16d)
1#	$OpenBSD: Makefile,v 1.50 2024/06/30 18:17:09 deraadt Exp $
2
3COPTS?=
4MAN?=	boot.8
5
6.if !empty(COPTS:M-DFDBOOT)
7SOFTRAID?=no
8.else
9SOFTRAID?=yes
10.endif
11
12.if ${MACHINE} == "amd64"
13S=	${.CURDIR}/../../../..
14SADIR=	${.CURDIR}/..
15
16PROG?=	boot
17SRCS=	srt0.S conf.c
18LD?=	ld
19SIZE?=	size
20AFLAGS+=-Dendbr64=
21LDFLAGS+=-nostdlib -Bstatic -Ttext $(LINKADDR) -N -x -nopie -znorelro
22LDFLAGS+=-melf_i386 -L/usr/libdata
23
24.PATH:	${S}/stand/boot
25SRCS+=	boot.c bootarg.c cmd.c vars.c
26
27.PATH:	${SADIR}/libsa
28SRCS+=	gidt.S mdrandom.c run_amd64.S
29SRCS+=	cmd_i386.c dev_i386.c exec_i386.c gateA20.c machdep.c
30SRCS+=	bioscons.c biosdev.c diskprobe.c memprobe.c time.c
31.if ${SOFTRAID:L} == "yes"
32SRCS+=	softraid_amd64.c
33.endif
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 fchmod.c \
41	fstat.c lseek.c open.c read.c readdir.c stat.c
42SRCS+=	elf32.c elf64.c loadfile.c arc4.c
43SRCS+=	ufs.c
44.if empty(COPTS:M-DFDBOOT)
45SRCS+=	ufs2.c
46.endif
47.if ${SOFTRAID:L} == "yes"
48SRCS+=	aes_xts.c bcrypt_pbkdf.c blowfish.c explicit_bzero.c hmac_sha1.c \
49	pkcs5_pbkdf2.c rijndael.c sha1.c sha2.c softraid.c
50.endif
51
52.PATH:	${S}/lib/libkern
53SRCS+=	ashldi3.c ashrdi3.c divdi3.c lshrdi3.c moddi3.c qdivrem.c
54SRCS+=	strlcpy.c
55
56.PATH:	${S}/lib/libz
57SRCS+=	adler32.c crc32.c inflate.c inftrees.c
58
59boot.bin: boot
60	objcopy -v -O binary ${PROG} boot.bin
61
62CLEANFILES+= ${PROG}.new
63
64srt0.o gidt.o: assym.h
65
66${PROG}: $(OBJS)
67	$(LD) $(LDFLAGS) -o ${PROG}.new $(OBJS)
68	@perl ${SADIR}/boot/check-boot.pl ${PROG}.new
69	@mv ${PROG}.new ${PROG}
70	@$(SIZE) ${PROG}
71
72.else
73NOPROG=
74.endif
75
76.include <bsd.prog.mk>
77
78.if ${SOFTRAID:L} == "yes"
79CPPFLAGS+=-DSOFTRAID
80.endif
81CPPFLAGS+=-DBOOTMAGIC=$(BOOTMAGIC) ${DEBUGFLAGS} -DLINKADDR=${LINKADDR}
82CPPFLAGS+=-DSLOW -DSMALL -DNO_GZIP -DDYNAMIC_CRC_TABLE -DBUILDFIXED
83CPPFLAGS+=-DHIBERNATE
84CPPFLAGS+=-DHEAP_LIMIT=${HEAP_LIMIT} -I${S}/stand/boot #-DCOMPAT_UFS
85CFLAGS+=-m32 $(SACFLAGS) -D__INTERNAL_LIBSA_CREAD -fno-pie
86AFLAGS+=${NO_INTEGR_AS}
87AFLAGS+=-m32 # -Wa,-R
88# AFLAGS+=-Wa,-a
89AFLAGS+=-fno-pie
90