1# $NetBSD: Makefile.xxboot,v 1.21 2024/01/07 07:58:34 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 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 38CFLAGS+= -m68020-60 39#CFLAGS+= -Wall 40CPPFLAGS+= -D_STANDALONE 41CPPFLAGS+= -DTEXTADDR="$(TEXT)" -DBOOT_TEXTADDR="$(BOOT_TEXT)" 42CPPFLAGS+= -DTDSIZE="$(TEXTDATASIZE)" 43CPPFLAGS+= -DPROG=\"$(PROG)\" -DBOOT_VERS=\"$(VERSION)\" 44CPPFLAGS+= -DBOOT_STAGE1 $(BOOTCPPFLAGS) 45CPPFLAGS+= -DHEAP_START=0x00100000 46CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S} 47CPPFLAGS+= -I$M/stand/libiocs -I$M/stand/libsa -I$M/stand/common 48AFLAGS= ${CFLAGS:M-[ID]*} 49AFLAGS+= -Wa,-l 50LINKFLAGS= -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript 51LINKFLAGS+= --defsym=TEXTADDR=$(TEXT) 52LINKFLAGS+= --defsym=BOOT_TEXTADDR=$(BOOT_TEXT) 53LINKFLAGS+= --defsym=TEXTDATASIZE=$(TEXTDATASIZE) 54LIBIOCS!= cd $M/stand/libiocs && ${PRINTOBJDIR} 55LIBSA!= cd $M/stand/libsa && ${PRINTOBJDIR} 56LDLIBS= -L ${LIBSA}/lib/kern -lkern 57LDLIBS+= -L${LIBIOCS} -liocs 58 59.PATH: $S/lib/libsa 60CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=$(FS) 61CPPFLAGS+= -DLIBSA_SINGLE_DEVICE=xx 62CPPFLAGS+= -DLIBSA_NO_FD_CHECKING 63CPPFLAGS+= -DLIBSA_NO_FS_WRITE 64CPPFLAGS+= -DLIBSA_NO_RAW_ACCESS 65CPPFLAGS+= -DLIBSA_NO_TWIDDLE 66CPPFLAGS+= -DUSTAR_SECT_PER_CYL=30 67SRCS+= open.c close.c read.c lseek.c loadfile.c loadfile_aout.c alloc.c 68SRCS+= errno.c globals.c files.c 69SRCS+= $(FS).c 70SRCS+= ${BOOTSRCS} 71 72.PATH: $M/stand/common 73SRCS+= exec_image.S 74 75.include "${.CURDIR}/../../Makefile.booters" 76 77CLEANFILES+= ${PROG}.map 78 79 80${PROG}: $(OBJS) 81 ${_MKTARGET_LINK} 82 $(LD) $(LINKFLAGS) -Map=${PROG}.map -o ${PROG} $(OBJS) $(LDLIBS) 83 : Print some addresses for convenience 84 @${TOOL_AWK} '/first_kbyte$$/ { print "\t\t" $$2 "\t" $$1 }' ${PROG}.map 85 @echo " filesize "`${TOOL_STAT} -f %z ${PROG}` 86 @if [ `${TOOL_STAT} -f %z ${PROG}` -gt 8192 ]; then \ 87 echo "${PROG} filesize exceeds 8192 bytes"; \ 88 exit 1; \ 89 fi 90 ${TOUCHPROG} 91 92.include <bsd.prog.mk> 93