Home | History | Annotate | Line # | Download | only in xxboot
Makefile.xxboot revision 1.16
      1 #	$NetBSD: Makefile.xxboot,v 1.16 2020/08/14 03:40:47 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 consio1.c xx.c
     29 
     30 .include "${S}/conf/newvers_stand.mk"
     31 
     32 CFLAGS=	-Os -fomit-frame-pointer -fno-unwind-tables -Wno-attributes
     33 #CFLAGS+= -Wall
     34 CPPFLAGS+= -D_STANDALONE
     35 CPPFLAGS+= -DTEXTADDR="$(TEXT)" -DBOOT_TEXTADDR="$(BOOT_TEXT)"
     36 CPPFLAGS+= -DTDSIZE="$(TEXTDATASIZE)"
     37 CPPFLAGS+= -DPROG=\"$(PROG)\" -DBOOT_VERS=\"$(VERSION)\"
     38 CPPFLAGS+= -DBOOT_STAGE1 $(BOOTCPPFLAGS)
     39 CPPFLAGS+= -DHEAP_START=0x00100000
     40 CPPFLAGS+= -nostdinc -I${.OBJDIR} -I${S}
     41 CPPFLAGS+= -I$M/stand/libiocs -I$M/stand/libsa -I$M/stand/common
     42 AFLAGS=	   ${CFLAGS:M-[ID]*}
     43 LINKFLAGS=   -n -Bstatic -T ${.CURDIR}/../xxboot.ldscript
     44 LINKFLAGS+=  --defsym=TEXTADDR=$(TEXT)
     45 LINKFLAGS+=  --defsym=BOOT_TEXTADDR=$(BOOT_TEXT)
     46 LINKFLAGS+=  --defsym=TEXTDATASIZE=$(TEXTDATASIZE)
     47 LIBIOCS!= cd $M/stand/libiocs && ${PRINTOBJDIR}
     48 LIBSA!=	  cd $M/stand/libsa && ${PRINTOBJDIR}
     49 LDLIBS=	  -L${LIBSA}/lib/sa -lsa -L ${LIBSA}/lib/kern -lkern
     50 LDLIBS+=  -L${LIBIOCS} -liocs
     51 
     52 .PATH: $S/lib/libsa
     53 CPPFLAGS+= -DLIBSA_SINGLE_FILESYSTEM=$(FS)
     54 CPPFLAGS+= -DLIBSA_SINGLE_DEVICE=xx
     55 CPPFLAGS+= -DLIBSA_NO_FD_CHECKING
     56 CPPFLAGS+= -DLIBSA_NO_FS_WRITE
     57 CPPFLAGS+= -DLIBSA_NO_RAW_ACCESS
     58 CPPFLAGS+= -DLIBSA_NO_TWIDDLE
     59 SRCS+=	open.c close.c read.c lseek.c loadfile.c loadfile_aout.c alloc.c
     60 SRCS+=  $(FS).c
     61 
     62 .PATH: $M/stand/common
     63 SRCS+=	exec_image.S
     64 
     65 .include "${.CURDIR}/../../Makefile.booters"
     66 
     67 CLEANFILES+=	${PROG}.map
     68 
     69 
     70 ${PROG}: $(OBJS)
     71 	${_MKTARGET_LINK}
     72 	$(LD) $(LINKFLAGS) -Map=${PROG}.map -o ${PROG} $(OBJS) $(LDLIBS)
     73 	: Print some addresses for convenience
     74 	@${TOOL_AWK} '/first_kbyte$$/ { print "\t\t" $$2 "\t" $$1 }' ${PROG}.map
     75 	@echo "		filesize	"`${TOOL_STAT} -f %z ${PROG}`
     76 	@if [ `${TOOL_STAT} -f %z ${PROG}` -gt 8192 ]; then \
     77 	    echo "${PROG} filesize exceeds 8192 bytes"; \
     78 		exit 1; \
     79 	fi
     80 	${TOUCHPROG}
     81 
     82 .include <bsd.prog.mk>
     83