Makefile.booters revision 1.42
1# $NetBSD: Makefile.booters,v 1.42 2003/10/26 07:25:37 lukem Exp $ 2 3.include <bsd.sys.mk> # for HOST_SH 4 5# $S must correspond to the top of the 'sys' tree 6S= ${.CURDIR}/../../../.. 7 8.BEGIN: machine pmax mips 9${PROG} realdepend realall: machine pmax mips 10CLEANFILES+= machine pmax mips 11machine: 12 -rm -f ${.TARGET} 13 ln -s $S/arch/${MACHINE}/include ${.TARGET} 14pmax: 15 -rm -f ${.TARGET} 16 ln -s $S/arch/${MACHINE}/include ${.TARGET} 17mips: 18 -rm -f ${.TARGET} 19 ln -s $S/arch/mips/include mips 20 21BINMODE?= 444 22 23# XXX SHOULD NOT NEED TO DEFINE THESE! 24LIBCRT0= 25LIBC= 26LIBCRTBEGIN= 27LIBCRTEND= 28 29.PATH: ${.CURDIR}/../common 30AFLAGS+= -D_LOCORE -D_KERNEL -mno-abicalls 31# -I${.CURDIR}/../.. done by Makefile.inc 32CPPFLAGS+= -nostdinc -D_STANDALONE -DNO_ABICALLS -D_NO_PROM_DEFINES \ 33 -I${.OBJDIR} -I${S} 34# compiler flags for smallest code size 35CFLAGS= -ffreestanding -Os -g -mmemcpy -mno-abicalls -G 128 36OFORMAT= --oformat elf32-littlemips 37LDBUG= -T $S/arch/mips/conf/stand.ldscript 38 39NETBSD_VERS!= ${HOST_SH} ${.CURDIR}/../../../../conf/osrelease.sh 40CPPFLAGS+= -DNETBSD_VERS='"${NETBSD_VERS}"' 41 42PRIMARY_LOAD_ADDRESS?= 0x80700000 43SECONDARY_LOAD_ADDRESS?=0x80710000 44 45NOMAN= # defined 46 47.if defined(PRIMARY_PROG) 48PROG= ${PRIMARY_PROG} 49SRCS = start.S bootxx.c callvec.c 50SRCS+= devopen.c conf.c rz.c 51SRCS+= bootinit.S bootread.S clear_cache.S printf.S 52 53LOAD_ADDRESS= ${PRIMARY_LOAD_ADDRESS} 54# Pick a number, any number... 55PRIMARY_MAX_TOTAL!= expr 16 \* 1024 56 57CPPFLAGS+= -DPRIMARY_BOOTBLOCK \ 58 -DPRIMARY_LOAD_ADDRESS="${PRIMARY_LOAD_ADDRESS}" \ 59 -DNO_GETCHAR \ 60 -DLIBSA_NO_FS_SYMLINK -DLIBSA_NO_FS_WRITE \ 61 -DLIBSA_NO_FS_CLOSE \ 62 -DLIBSA_NO_DEV_CLOSE \ 63 -DLIBSA_SINGLE_DEVICE=rz \ 64 -D"rzioctl(x,y,z)=EINVAL" -D"rzclose(f)=0" \ 65 -DLIBSA_NO_TWIDDLE \ 66 -DLIBSA_NO_FD_CHECKING \ 67 -DLIBSA_NO_RAW_ACCESS \ 68 -DLIBSA_NO_DISKLABEL_MSGS \ 69 -DALLOC_FIRST_FIT \ 70 -DLIBSA_USE_MEMCPY -DLIBSA_USE_MEMSET 71 72CHECKSIZE_CMD?= SIZE=${SIZE} ${HOST_SH} ${.CURDIR}/../common/checksize.sh 73 74.elif defined(SECONDARY_PROG) 75PROG= ${SECONDARY_PROG} 76LOAD_ADDRESS= ${SECONDARY_LOAD_ADDRESS} 77CPPFLAGS+= -DSECONDARY_BOOTBLOCK 78SRCS+= vers.c 79CLEANFILES+= vers.c 80.else 81# XXX ? 82.endif 83 84### find out what to use for libkern 85KERN_AS= library 86.include "${S}/lib/libkern/Makefile.inc" 87LIBKERN= ${KERNLIB} 88 89### find out what to use for libz 90.if defined(PRIMARY_PROG) 91LIBZ= 92.else 93Z_AS= library 94.include "${S}/lib/libz/Makefile.inc" 95LIBZ= ${ZLIB} 96.endif 97 98### find out what to use for libsa 99SA_AS= library 100.if defined(PRIMARY_PROG) 101SAMISCMAKEFLAGS+=SA_INCLUDE_NET=no 102.endif 103.if defined(SECONDARY_PROG) 104SAMISCMAKEFLAGS+=SA_USE_LOADFILE=yes SA_USE_CREAD=yes 105SAMISCMAKEFLAGS+=SA_INCLUDE_NET=yes 106.endif 107.include "${S}/lib/libsa/Makefile.inc" 108LIBSA= ${SALIB} 109 110LIBS= ${LIBSA} ${LIBZ} ${LIBSA} ${LIBKERN} 111 112.include <bsd.own.mk> 113 114.PHONY: vers.c 115vers.c: ${.CURDIR}/version 116 ${HOST_SH} ${S}/conf/newvers_stand.sh -N ${.CURDIR}/version "pmax" 117 118${PROG}: machine mips pmax ${OBJS} ${LIBS} 119 ${LD} ${OFORMAT} -Map ${PROG}.map -N -x -Ttext ${LOAD_ADDRESS} \ 120 ${LDBUG} -e start -o ${PROG} ${OBJS} ${LIBS} 121 @${SIZE} ${PROG} 122.if defined(CHECKSIZE_CMD) 123 @${CHECKSIZE_CMD} ${PROG} ${PRIMARY_MAX_LOAD} ${PRIMARY_MAX_TOTAL} || \ 124 (rm -f ${PROG} ; false) 125.endif 126.if defined(DO_ECOFF_BINARY) 127 @echo -n "Creating ECOFF binary... " 128 @mv ${PROG} ${PROG}.elf 129 @${ELF2ECOFF} ${PROG}.elf ${PROG} 130 @echo done. 131.endif 132 133.include <bsd.prog.mk> 134 135CLEANFILES+= ${PROG}.map 136 137cleandir distclean: cleanlibdir 138 139cleanlibdir: 140 rm -rf lib 141