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.6 2018/11/13 21:22:37 skrll Exp $

NOPIE=yes
NOSSP=yes
NODEBUG=yes
RELOC=	120000
HEAP_LIMIT=0x1c0000
#DEBUGFLAGS=-DDEBUG
#DEBUGFLAGS+=-DDEBUGBUG
#DEBUGFLAGS+=-DPDCDEBUG
#DEBUGFLAGS+=-DLIFDEBUG
#DEBUGFLAGS+=-DEXEC_DEBUG
#DEBUGFLAGS+=-DALLOC_TRACE
#DEBUGLIBS=	no

LIBCRT0=	# nothing
LIBCRTI=	# nothing
LIBCRTBEGIN=	# nothing
LIBCRTEND=	# nothing
LIBC=		# nothing

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

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

SRCS=		${PROGSOURCE} ${COMMONSOURCE} ${DRIVERSOURCE}
NOMAN=
STRIPFLAG=
BINMODE=	444

.include <bsd.own.mk>

CPPFLAGS+=	-nostdinc -I${.CURDIR}/../../.. -I${.CURDIR}/../../../.. \
		-I${.OBJDIR}
CFLAGS+=	-Os -fno-delete-null-pointer-checks -msoft-float -Wno-main
CFLAGS+=	-fno-builtin
CFLAGS+=	-mdisable-fpregs -mfast-indirect-calls -mpa-risc-1-0

.include "${S}/conf/newvers_stand.mk"

CPPFLAGS+=		-D_STANDALONE -Dhppa ${DEBUGFLAGS}
CPPFLAGS+=		-DRELOC=0x${RELOC} -DHEAP_LIMIT=${HEAP_LIMIT}
CPPFLAGS+=		-DNO_NET

COMMONSOURCE=		cons.c dev_hppa.c dk.c itecons.c \
			machdep.c milli_tiny.S pdc.c time.c
DRIVERSOURCE=

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

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

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

LDFLAGS+=	-static -nostdlib -Wl,-N -Wl,-Ttext,$(RELOC)
LDFLAGS+=	-Wl,-T,${.CURDIR}/ld.script -Wl,-Map,${PROG}.map

${PROG}: ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
	${CC} ${LDFLAGS} -o ${PROG} ${OBJS} ${LIBSA} ${LIBZ} ${LIBKERN}
	@${SIZE} ${PROG}
	@echo ${PROG} total size should not exceed XXXX bytes

.include <bsd.prog.mk>
.include <bsd.klinks.mk>