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