Makefile.xxboot revision 1.19 1 # $NetBSD: Makefile.xxboot,v 1.19 2022/02/04 06:16:03 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 conf.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
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