1#	$OpenBSD: Makefile,v 1.27 2024/01/28 01:07:26 deraadt Exp $
2#	$NetBSD: Makefile,v 1.17 1997/04/17 07:27:46 thorpej Exp $
3
4S=	${.CURDIR}/../../../..
5
6.PATH: ${.CURDIR}/..
7
8PROG = boot
9
10SRCS = start.S boot.c disk.c conf.c prom.c prom_disp.S OSFpal.c
11SRCS+= devopen.c filesystem.c loadfile_subr.c prom_swpal.S
12NOMAN=
13INSTALL_STRIP=
14BINMODE= 444
15
16BOOT_RELOC = ${SECONDARY_LOAD_ADDRESS}
17
18CLEANFILES+= vers.c vers.o ${PROG}.sym ${PROG}.nosym
19
20.PATH:	${S}/lib/libkern/arch/alpha ${S}/lib/libkern
21SRCS+=	__divlu.S __remqu.S __reml.S strlen.c bzero.c __divl.S __divqu.S \
22	__remlu.S __divq.S __remq.S
23
24.PATH:	${S}/lib/libkern/arch/alpha ${S}/lib/libsa
25SRCS+=	loadfile.c arc4.c ufs2.c
26
27DEFNS= -DCOMPAT_UFS
28
29AFLAGS += -DASSEMBLER ${DEFNS} -fno-pie
30CPPFLAGS += -I${.CURDIR}/../.. -I${S} ${DEFNS}
31CFLAGS = -Oz -Werror -mno-fp-regs -fno-pie \
32	-msmall-data -msmall-text -fno-stack-protector
33
34${PROG}.nosym: ${PROG}.sym
35	cp ${PROG}.sym ${PROG}.nosym
36	${STRIP} ${PROG}.nosym
37
38${PROG}: ${PROG}.nosym
39	${OBJCOPY} --output-target=binary ${PROG}.nosym ${PROG}
40
41.include <bsd.prog.mk>
42
43### find out what to use for libz
44Z_AS=		library
45ZDST=		${.CURDIR}/../libz/${__objdir}
46.include "${.CURDIR}/../libz/Makefile.inc"
47LIBZ=		${ZLIB}
48
49### find out what to use for libsa
50SA_AS=		library
51SADST=		${.CURDIR}/../libsa/${__objdir}
52SAREL=
53SA_ZLIB=	yes
54.include "${.CURDIR}/../libsa/Makefile.inc"
55LIBSA=		${SALIB}
56
57${PROG}.sym: ${OBJS} ${LIBSA} ${LIBZ}
58	sh ${.CURDIR}/newvers.sh ${.CURDIR}/version
59	${COMPILE.c} vers.c
60	${LD} -nopie -znorelro -Ttext ${BOOT_RELOC} -N -e start \
61	    -o ${PROG}.sym ${OBJS} vers.o ${LIBSA} ${LIBZ} ${LIBSA}
62	size ${PROG}.sym
63