1# $NetBSD: Makefile,v 1.44 2020/09/06 07:20:29 mrg Exp $ 2 3STRIPFLAG= 4PROGSOURCE= boot.c net.c netif_sun.c conf.c openfirm.c bootinfo.c \ 5 mmu.c prompatch.c 6NEWVERSWHAT= "Secondary Boot" 7FILES= boot.net bootjs.net ${RELOCS:S/^/boot./g} 8CLEANFILES:= ${FILES} 9LINKS= ${BINDIR}/boot.${RELOC_DEFAULT} ${BINDIR}/boot 10 11CPPFLAGS+= -DBOOT_AOUT -DBOOT_ELF32 -DSUPPORT_DHCP 12CFLAGS+= -freestanding 13 14INCLUDE_LIBZ= yes 15SAMISCMAKEFLAGS= 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. 20CWARNFLAGS.clang+= -Wno-error=address-of-packed-member 21CWARNFLAGS.gcc+= ${GCC_NO_ADDR_OF_PACKED_MEMBER} 22 23.include "../Makefile.buildboot" 24 25.if ${MACHINE} == sparc64 26CFLAGS+= -m32 27LDFLAGS+= -m elf32_sparc 28AFLAGS+= -Wa,-32 29.endif 30 31.include <bsd.own.mk> 32 33OBJS=${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g} 34 35LINKFLAGS=-N -e start -Map $@.map 36 37.MAIN: all 38realall: ${FILES} 39 40 41# conjure up a magic header that is accepted by all Sun PROMS; 42# see installboot.c for details. 43 44SUN_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' 45 46boot.net: boot.${RELOC_DEFAULT} 47 (printf ${SUN_MAGIC_HEADER}; cat ${.ALLSRC} ) > ${.TARGET} 48 49 50.include "${S}/conf/newvers_stand.mk" 51 52.include <bsd.prog.mk> 53 54bootjs.net: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 55 ${LD} -S -o ${.TARGET} ${LINKFLAGS} -Ttext 300000 ${OBJS} \ 56 ${LIBSA} ${LIBZ} ${LIBKERN} 57 ${SIZE} ${.TARGET} 58CLEANFILES+= bootjs.net.map 59 60.for RELOC in ${RELOCS} 61boot.${RELOC}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN} 62 ${LD} -S -o ${.TARGET}.tmp ${LINKFLAGS} -Ttext ${RELOC} ${OBJS} \ 63 ${LIBSA} ${LIBZ} ${LIBKERN} 64 ${SIZE} ${.TARGET}.tmp 65 ${OBJCOPY} -O binary ${.TARGET}.tmp ${.TARGET} 66 rm -f ${.TARGET}.tmp 67CLEANFILES+= boot.${RELOC}.map 68.endfor 69