xref: /netbsd-src/sys/arch/x68k/stand/xxboot/Makefile.xxboot (revision 73d56d5b0be8704e4f0a7e8221a2c7309572c9a1)
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