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