1# $NetBSD: Makefile.xxboot,v 1.18 2020/08/16 06:43:43 isaki Exp $ 2 3NOMAN= # defined 4 5.include <bsd.own.mk> 6 7BOOT= xxboot_$(FS) 8VERSIONFILE= ${.CURDIR}/../version 9VERSION!= ${TOOL_AWK} -F: '$$1 ~ /^[0-9.]*$$/ { it = $$1; } \ 10 END { print it }' ${VERSIONFILE} 11NEWVERSWHAT= "${BOOT}" 12 13# text and bss addresses 14TEXT= 0x003000 # Primary (me) 15TEXTDATASIZE= 0x002000 # 8KB for UFS at maximum 16 # 30KB (=(16-1)*2048) for ISO9660 at max. 17 # but should use up to 8KB. See boot.S 18BOOT_TEXT= 0x006000 # Secondary (/boot) 19 20PROG= $(BOOT) 21BINDIR= /usr/mdec 22STRIPFLAG= 23BINMODE= 444 24 25S= ${.CURDIR}/../../../../.. 26M= $S/arch/x68k 27.PATH: ${.CURDIR}/.. 28SRCS= boot.S bootmain.c conf.c xx.c 29SRCS+= ashrdi3.S 30SRCS+= ashldi3.S 31SRCS+= memcpy.S 32SRCS+= memset.S 33SRCS+= memcmp.S 34 35.include "${S}/conf/newvers_stand.mk" 36 37CFLAGS= -Os -fomit-frame-pointer -fno-unwind-tables -Wno-attributes 38#CFLAGS+= -Wall 39CPPFLAGS+= -D_STANDALONE 40CPPFLAGS+= -DTEXTADDR="$(TEXT)" -DBOOT_TEXTADDR="$(BOOT_TEXT)" 41CPPFLAGS+= -DTDSIZE="$(TEXTDATASIZE)" 42CPPFLAGS+= -DPROG=\"$(PROG)\" -DBOOT_VERS=\"$(VERSION)\" 43CPPFLAGS+= -DBOOT_STAGE1 $(BOOTCPPFLAGS) 44CPPFLAGS+= -DHEAP_START=0x00100000 45CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S} 46CPPFLAGS+= -I$M/stand/libiocs -I$M/stand/libsa -I$M/stand/common 47AFLAGS= ${CFLAGS:M-[ID]*} 48AFLAGS+= -Wa,-l 49LINKFLAGS= -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript 50LINKFLAGS+= --defsym=TEXTADDR=$(TEXT) 51LINKFLAGS+= --defsym=BOOT_TEXTADDR=$(BOOT_TEXT) 52LINKFLAGS+= --defsym=TEXTDATASIZE=$(TEXTDATASIZE) 53LIBIOCS!= cd $M/stand/libiocs && ${PRINTOBJDIR} 54LIBSA!= cd $M/stand/libsa && ${PRINTOBJDIR} 55LDLIBS= -L ${LIBSA}/lib/kern -lkern 56LDLIBS+= -L${LIBIOCS} -liocs 57 58.PATH: $S/lib/libsa 59CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=$(FS) 60CPPFLAGS+= -DLIBSA_SINGLE_DEVICE=xx 61CPPFLAGS+= -DLIBSA_NO_FD_CHECKING 62CPPFLAGS+= -DLIBSA_NO_FS_WRITE 63CPPFLAGS+= -DLIBSA_NO_RAW_ACCESS 64CPPFLAGS+= -DLIBSA_NO_TWIDDLE 65CPPFLAGS+= -DUSTAR_SECT_PER_CYL=30 66SRCS+= open.c close.c read.c lseek.c loadfile.c loadfile_aout.c alloc.c 67SRCS+= errno.c globals.c 68SRCS+= $(FS).c 69SRCS+= ${BOOTSRCS} 70 71.PATH: $M/stand/common 72SRCS+= exec_image.S 73 74.include "${.CURDIR}/../../Makefile.booters" 75 76CLEANFILES+= ${PROG}.map 77 78 79${PROG}: $(OBJS) 80 ${_MKTARGET_LINK} 81 $(LD) $(LINKFLAGS) -Map=${PROG}.map -o ${PROG} $(OBJS) $(LDLIBS) 82 : Print some addresses for convenience 83 @${TOOL_AWK} '/first_kbyte$$/ { print "\t\t" $$2 "\t" $$1 }' ${PROG}.map 84 @echo " filesize "`${TOOL_STAT} -f %z ${PROG}` 85 @if [ `${TOOL_STAT} -f %z ${PROG}` -gt 8192 ]; then \ 86 echo "${PROG} filesize exceeds 8192 bytes"; \ 87 exit 1; \ 88 fi 89 ${TOUCHPROG} 90 91.include <bsd.prog.mk> 92