1 # $NetBSD: Makefile.xxboot,v 1.21 2024/01/07 07:58:34 isaki Exp $ 2 3 NOMAN= # defined 4 5 .include <bsd.own.mk> 6 7 BOOT= xxboot_$(FS) 8 VERSIONFILE= ${.CURDIR}/../version 9 VERSION!= ${TOOL_AWK} -F: '$$1 ~ /^[0-9.]*$$/ { it = $$1; } \ 10 END { print it }' ${VERSIONFILE} 11 NEWVERSWHAT= "${BOOT}" 12 13 # text and bss addresses 14 TEXT= 0x003000 # Primary (me) 15 TEXTDATASIZE= 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 18 BOOT_TEXT= 0x006000 # Secondary (/boot) 19 20 PROG= $(BOOT) 21 BINDIR= /usr/mdec 22 STRIPFLAG= 23 BINMODE= 444 24 25 S= ${.CURDIR}/../../../../.. 26 M= $S/arch/x68k 27 .PATH: ${.CURDIR}/.. 28 SRCS= boot.S bootmain.c xx.c 29 SRCS+= ashrdi3.S 30 SRCS+= ashldi3.S 31 SRCS+= memcpy.S 32 SRCS+= memset.S 33 SRCS+= memcmp.S 34 35 .include "${S}/conf/newvers_stand.mk" 36 37 CFLAGS= -Os -fomit-frame-pointer -fno-unwind-tables -Wno-attributes 38 CFLAGS+= -m68020-60 39 #CFLAGS+= -Wall 40 CPPFLAGS+= -D_STANDALONE 41 CPPFLAGS+= -DTEXTADDR="$(TEXT)" -DBOOT_TEXTADDR="$(BOOT_TEXT)" 42 CPPFLAGS+= -DTDSIZE="$(TEXTDATASIZE)" 43 CPPFLAGS+= -DPROG=\"$(PROG)\" -DBOOT_VERS=\"$(VERSION)\" 44 CPPFLAGS+= -DBOOT_STAGE1 $(BOOTCPPFLAGS) 45 CPPFLAGS+= -DHEAP_START=0x00100000 46 CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S} 47 CPPFLAGS+= -I$M/stand/libiocs -I$M/stand/libsa -I$M/stand/common 48 AFLAGS= ${CFLAGS:M-[ID]*} 49 AFLAGS+= -Wa,-l 50 LINKFLAGS= -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript 51 LINKFLAGS+= --defsym=TEXTADDR=$(TEXT) 52 LINKFLAGS+= --defsym=BOOT_TEXTADDR=$(BOOT_TEXT) 53 LINKFLAGS+= --defsym=TEXTDATASIZE=$(TEXTDATASIZE) 54 LIBIOCS!= cd $M/stand/libiocs && ${PRINTOBJDIR} 55 LIBSA!= cd $M/stand/libsa && ${PRINTOBJDIR} 56 LDLIBS= -L ${LIBSA}/lib/kern -lkern 57 LDLIBS+= -L${LIBIOCS} -liocs 58 59 .PATH: $S/lib/libsa 60 CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=$(FS) 61 CPPFLAGS+= -DLIBSA_SINGLE_DEVICE=xx 62 CPPFLAGS+= -DLIBSA_NO_FD_CHECKING 63 CPPFLAGS+= -DLIBSA_NO_FS_WRITE 64 CPPFLAGS+= -DLIBSA_NO_RAW_ACCESS 65 CPPFLAGS+= -DLIBSA_NO_TWIDDLE 66 CPPFLAGS+= -DUSTAR_SECT_PER_CYL=30 67 SRCS+= open.c close.c read.c lseek.c loadfile.c loadfile_aout.c alloc.c 68 SRCS+= errno.c globals.c files.c 69 SRCS+= $(FS).c 70 SRCS+= ${BOOTSRCS} 71 72 .PATH: $M/stand/common 73 SRCS+= exec_image.S 74 75 .include "${.CURDIR}/../../Makefile.booters" 76 77 CLEANFILES+= ${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