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