Home | History | Annotate | Line # | Download | only in boot
      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