1 # $NetBSD: Makefile,v 1.46 2023/06/03 21:26:28 lukem Exp $ 2 3 STRIPFLAG= 4 PROGSOURCE= boot.c net.c netif_sun.c conf.c openfirm.c bootinfo.c \ 5 mmu.c prompatch.c 6 NEWVERSWHAT= "Secondary Boot" 7 FILES= boot.net bootjs.net ${RELOCS:S/^/boot./g} 8 CLEANFILES:= ${FILES} 9 LINKS= ${BINDIR}/boot.${RELOC_DEFAULT} ${BINDIR}/boot 10 11 CPPFLAGS+= -DBOOT_AOUT -DBOOT_ELF32 -DSUPPORT_DHCP 12 CFLAGS+= -freestanding 13 14 INCLUDE_LIBZ= yes 15 SAMISCMAKEFLAGS= SA_USE_CREAD=yes 16 17 # Follow the suit of Makefile.kern.inc; needed for the lfs64 union 18 # accessors -- they don't actually dereference the resulting pointer, 19 # just use it for type-checking. 20 CWARNFLAGS+= ${CC_WNO_ADDRESS_OF_PACKED_MEMBER} 21 22 .include "../Makefile.buildboot" 23 24 .if ${MACHINE} == sparc64 25 CFLAGS+= -m32 26 LDFLAGS+= -m elf32_sparc 27 AFLAGS+= -Wa,-32 28 .endif 29 30 .include <bsd.own.mk> 31 32 OBJS=${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g} 33 34 LINKFLAGS=-N -e start -Map $@.map 35 36 .MAIN: all 37 realall: ${FILES} 38 39 40 # conjure up a magic header that is accepted by all Sun PROMS; 41 # see installboot.c for details. 42 43 SUN_MAGIC_HEADER='\01\03\01\07\060\200\0\07\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' 44 45 boot.net: boot.${RELOC_DEFAULT} 46 (printf ${SUN_MAGIC_HEADER}; cat ${.ALLSRC} ) > ${.TARGET} 47 48 49 .include "${S}/conf/newvers_stand.mk" 50 51 .include <bsd.prog.mk> 52 53 bootjs.net: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 54 ${LD} -S -o ${.TARGET} ${LINKFLAGS} -Ttext 300000 ${OBJS} \ 55 ${LIBSA} ${LIBZ} ${LIBKERN} 56 ${SIZE} ${.TARGET} 57 CLEANFILES+= bootjs.net.map 58 59 .for RELOC in ${RELOCS} 60 boot.${RELOC}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 61 ${LD} -S -o ${.TARGET}.tmp ${LINKFLAGS} -Ttext ${RELOC} ${OBJS} \ 62 ${LIBSA} ${LIBZ} ${LIBKERN} 63 ${SIZE} ${.TARGET}.tmp 64 ${OBJCOPY} -O binary ${.TARGET}.tmp ${.TARGET} 65 rm -f ${.TARGET}.tmp 66 CLEANFILES+= boot.${RELOC}.map 67 .endfor 68