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