Home | History | Annotate | Line # | Download | only in boot
Makefile revision 1.45
      1 #	$NetBSD: Makefile,v 1.45 2023/06/03 08:52:57 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.clang+=      -Wno-error=address-of-packed-member
     21 CWARNFLAGS.gcc+=	${CC_WNO_ADDRESS_OF_PACKED_MEMBER}
     22 
     23 .include "../Makefile.buildboot"
     24 
     25 .if ${MACHINE} == sparc64
     26 CFLAGS+=	-m32
     27 LDFLAGS+=	-m elf32_sparc
     28 AFLAGS+=	-Wa,-32
     29 .endif
     30 
     31 .include <bsd.own.mk>
     32 
     33 OBJS=${SRCS:N*.h:N*.sh:N*.fth:R:S/$/.o/g}
     34 
     35 LINKFLAGS=-N -e start -Map $@.map
     36 
     37 .MAIN: all
     38 realall: ${FILES}
     39 
     40 
     41 # conjure up a magic header that is accepted by all Sun PROMS;
     42 # see installboot.c for details.
     43 
     44 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'
     45 
     46 boot.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 
     54 bootjs.net: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
     55 	${LD} -S -o ${.TARGET} ${LINKFLAGS} -Ttext 300000 ${OBJS} \
     56 	    ${LIBSA} ${LIBZ} ${LIBKERN}
     57 	${SIZE} ${.TARGET}
     58 CLEANFILES+=	bootjs.net.map
     59 
     60 .for RELOC in ${RELOCS}
     61 boot.${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
     67 CLEANFILES+=	boot.${RELOC}.map
     68 .endfor
     69