Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#	$NetBSD: Makefile.buildboot,v 1.32 2016/10/01 13:57:44 christos Exp $
#
# This file is for the sparc `boot' and `bootxx' only; it does not
# currently play well on a 64-bit system.

NOSSP=		# defined
NOPIE=		# defined
NOMAN=		# defined

S=	${.CURDIR}/../../../..

.PATH: ${.CURDIR}/../common ${.CURDIR}/../../sparc

COMMONSOURCE=	srt0.S promdev.c dvma.c promlib.c isfloppy.c

SRCS=		${COMMONSOURCE} ${PROGSOURCE}
BINMODE=	444

.include <bsd.own.mk>

#
# The relocation address for `boot' must leave enough free memory below
# it to load a kernel at address 0x4000. On the other hand, on some
# machines, the PROM uses memory in the upper portion of the first 4MB
# segment, depending on the actual memory bank configuration probably.
# Our boot program must stear clear of that as well.
#
# Relocating `boot' at 0x388000 seems to provide a working compromise
# on the machines tested so far.
#
RELOC_DEFAULT?=	388000
RELOCS=		$(RELOC_DEFAULT)
#RELOCS+=	200000 400000 700000		# additional link addresses

# `bootxx' is linked at a different address to circumvent i-cache
# flushing issues on Hypersparcs
RELOC_BOOTXX=	300000

CPPFLAGS+=	-D_STANDALONE -DSUN4 -DSUN4C -DSUN4M -DSUN4D -DHEAP_VARIABLE

CPPFLAGS+=	-I. -I${.CURDIR}/../../.. -I${.CURDIR}/../../../..
CPPFLAGS+=	-I${.CURDIR}/../../../../../common/include
CFLAGS=		${${ACTIVE_CC} == "clang":? -Oz -fomit-frame-pointer : -Os } -fno-unwind-tables
AFLAGS+=	${${ACTIVE_CC} == "clang":? -Oz :}
CFLAGS+=	-Wall -Wstrict-prototypes -Wmissing-prototypes -ffreestanding

### find out what to use for libkern
KERN_AS=	library
.include "${S}/lib/libkern/Makefile.inc"
LIBKERN=	${KERNLIB}

.ifdef INCLUDE_LIBZ
### find out what to use for libz
Z_AS=		library
.include "${S}/lib/libz/Makefile.inc"
LIBZ=		${ZLIB}
.endif

### find out what to use for libsa
SA_AS=		library
SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes"
.include "${S}/lib/libsa/Makefile.inc"
LIBSA=		${SALIB}

.include <bsd.klinks.mk>

cleandir distclean: .WAIT cleanlibdir

cleanlibdir:
	-rm -rf lib