Makefile.booters revision 1.1
11.1Spooka# $NetBSD: Makefile.booters,v 1.1 2011/01/26 01:18:53 pooka Exp $
21.1Spooka
31.1Spooka.include <bsd.sys.mk>		# for HOST_SH
41.1Spooka
51.1Spooka# $S must correspond to the top of the 'sys' tree
61.1SpookaS=	${.CURDIR}/../../../..
71.1Spooka
81.1Spooka.if !make(obj) && !make(clean) && !make(cleandir)
91.1Spooka.BEGIN:
101.1Spooka	@[ -h machine ] || ln -s $S/arch/${MACHINE}/include machine
111.1Spooka	@[ -h emips ] || ln -s $S/arch/${MACHINE}/include emips
121.1Spooka	@[ -h mips ] || ln -s $S/arch/mips/include mips
131.1Spooka.NOPATH: machine emips mips
141.1Spooka.endif
151.1SpookaCLEANFILES+= machine emips mips
161.1Spooka
171.1SpookaBINMODE?=	444
181.1Spooka
191.1Spooka# XXX SHOULD NOT NEED TO DEFINE THESE!
201.1SpookaLIBCRT0=
211.1SpookaLIBC=
221.1SpookaLIBCRTBEGIN=
231.1SpookaLIBCRTEND=
241.1Spooka
251.1Spooka.PATH:		${.CURDIR}/../common
261.1SpookaAFLAGS+=	-D_LOCORE -D_KERNEL -mno-abicalls
271.1Spooka# -I${.CURDIR}/../.. done by Makefile.inc
281.1SpookaCPPFLAGS+=	-nostdinc -D_STANDALONE -DNO_ABICALLS -D_NO_PROM_DEFINES \
291.1Spooka		-I${.OBJDIR} -I${S}
301.1Spooka# compiler flags for smallest code size
311.1SpookaCFLAGS=		-ffreestanding -Os -g -mmemcpy -mno-abicalls -G 128
321.1SpookaLDBUG=		-T $S/arch/mips/conf/stand.ldscript
331.1Spooka
341.1SpookaNETBSD_VERS!=	${HOST_SH} ${.CURDIR}/../../../../conf/osrelease.sh
351.1SpookaCPPFLAGS+=	-DNETBSD_VERS='"${NETBSD_VERS}"'
361.1Spooka
371.1SpookaPRIMARY_LOAD_ADDRESS?=	0x80000000
381.1SpookaSECONDARY_LOAD_ADDRESS?=0x80000000
391.1Spooka
401.1SpookaNOMAN=		# defined
411.1Spooka
421.1Spooka.if defined(PRIMARY_PROG)
431.1SpookaPROG=		${PRIMARY_PROG}
441.1SpookaSRCS =		start.S bootxx.c
451.1SpookaSRCS+=		devopen.c conf.c ace.c printf.c putchar.c
461.1Spooka
471.1SpookaLOAD_ADDRESS=	${PRIMARY_LOAD_ADDRESS}
481.1Spooka# Pick a number, any number...
491.1SpookaPRIMARY_MAX_TOTAL!=	expr 16 \* 1024
501.1Spooka
511.1SpookaCPPFLAGS+=	-DPRIMARY_BOOTBLOCK \
521.1Spooka		-DPRIMARY_LOAD_ADDRESS="${PRIMARY_LOAD_ADDRESS}" \
531.1Spooka		-DNO_GETCHAR \
541.1Spooka		-DLIBSA_NO_FS_SYMLINK -DLIBSA_NO_FS_WRITE \
551.1Spooka		-DLIBSA_NO_FS_CLOSE \
561.1Spooka		-DLIBSA_NO_DEV_CLOSE \
571.1Spooka		-DLIBSA_SINGLE_DEVICE=ace \
581.1Spooka		-D"aceioctl(x,y,z)=EINVAL" -D"aceclose(f)=0" \
591.1Spooka		-DLIBSA_NO_TWIDDLE \
601.1Spooka		-DLIBSA_NO_FD_CHECKING \
611.1Spooka		-DLIBSA_NO_RAW_ACCESS \
621.1Spooka		-DLIBSA_NO_DISKLABEL_MSGS \
631.1Spooka		-DALLOC_FIRST_FIT \
641.1Spooka		-DLIBSA_USE_MEMCPY -DLIBSA_USE_MEMSET
651.1Spooka
661.1SpookaCHECKSIZE_CMD?=	SIZE=${SIZE} ${HOST_SH} ${.CURDIR}/../common/checksize.sh
671.1Spooka
681.1Spooka.elif defined(SECONDARY_PROG)
691.1SpookaPROG=		${SECONDARY_PROG}
701.1SpookaLOAD_ADDRESS=	${SECONDARY_LOAD_ADDRESS}
711.1SpookaCPPFLAGS+=	-DSECONDARY_BOOTBLOCK -DHEAP_VARIABLE
721.1SpookaSRCS+=	vers.c
731.1SpookaCLEANFILES+= vers.c
741.1Spooka.else
751.1Spooka# XXX ?
761.1Spooka.endif
771.1Spooka
781.1Spooka### find out what to use for libkern
791.1SpookaKERN_AS=	library
801.1Spooka.include "${S}/lib/libkern/Makefile.inc"
811.1SpookaLIBKERN=	${KERNLIB}
821.1Spooka
831.1Spooka### find out what to use for libz
841.1Spooka.if defined(PRIMARY_PROG)
851.1SpookaLIBZ=
861.1Spooka.else
871.1SpookaZ_AS=		library
881.1Spooka.include "${S}/lib/libz/Makefile.inc"
891.1SpookaLIBZ=		${ZLIB}
901.1Spooka.endif
911.1Spooka
921.1Spooka### find out what to use for libsa
931.1SpookaSA_AS=		library
941.1Spooka.if defined(PRIMARY_PROG)
951.1SpookaSAMISCMAKEFLAGS+=SA_INCLUDE_NET=no
961.1Spooka.endif
971.1Spooka.if defined(SECONDARY_PROG)
981.1SpookaSAMISCMAKEFLAGS+=SA_USE_LOADFILE=yes SA_USE_CREAD=yes
991.1SpookaSAMISCMAKEFLAGS+=SA_INCLUDE_NET=yes
1001.1Spooka.endif
1011.1Spooka.include "${S}/lib/libsa/Makefile.inc"
1021.1SpookaLIBSA=		${SALIB}
1031.1Spooka
1041.1SpookaLIBS=		${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN}
1051.1Spooka
1061.1Spooka.include <bsd.own.mk>
1071.1Spooka
1081.1Spookavers.c: ${.CURDIR}/version
1091.1Spooka	${HOST_SH} ${S}/conf/newvers_stand.sh ${${MKREPRO} == "yes" :?:-D} \
1101.1Spooka	    -N ${.CURDIR}/version "emips"
1111.1Spooka
1121.1Spooka${PROG}: machine mips emips ${OBJS} ${LIBS}
1131.1Spooka	${LD} -Map ${PROG}.map -N -x -Ttext ${LOAD_ADDRESS} \
1141.1Spooka	    ${LDBUG} -e start -o ${PROG}.elf ${OBJS} ${LIBS}
1151.1Spooka	@${SIZE} ${PROG}.elf
1161.1Spooka.if defined(CHECKSIZE_CMD)
1171.1Spooka	@${CHECKSIZE_CMD} ${PROG}.elf ${PRIMARY_MAX_LOAD} ${PRIMARY_MAX_TOTAL} || \
1181.1Spooka	    (rm -f ${PROG}.elf ; false)
1191.1Spooka.endif
1201.1Spooka	@${OBJCOPY} --output-target=binary ${PROG}.elf ${PROG}.bin
1211.1Spooka	dd if=${PROG}.bin of=${PROG} bs=512 conv=sync
1221.1Spooka
1231.1Spooka.include <bsd.prog.mk>
1241.1Spooka
1251.1SpookaCLEANFILES+=	${PROG}.map
1261.1Spooka
1271.1Spookacleandir distclean: cleanlibdir
1281.1Spooka
1291.1Spookacleanlibdir:
1301.1Spooka	-rm -rf lib
131