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.installimage,v 1.10 2021/09/25 21:26:03 maya Exp $
#
# Common Makefile to create a bootable installation image for USB flash etc.
#

#
# Required variables:
#	INSTIMGBASE
#		Basename of the liveimage
#
# Optional variables:
#	INSTIMAGEMB
#		target image size in MB
#		(if empty default IMAGEMB in Makefile.bootimage is used)
#
# See Makefile.bootimage for other variables.
#

.if !target(check_INSTIMGBASE)
check_INSTIMGBASE: .PHONY .NOTMAIN
.if !defined(INSTIMGBASE)
	@echo "Error: INSTIMGBASE is not set"
	@false
.else
	@true
.endif
.endif

.if defined(INSTIMAGEMB)
IMAGEMB=	${INSTIMAGEMB}
.endif
SWAPMB=		0			# no swap

KERN_SET?=	kern-GENERIC
SETS?=		gpufw modules base etc

FSTAB_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/fstab.install.in

USE_MBR?=	no

.if ${USE_MBR} != "no"
DISKPROTO_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.mbr.in
.else
DISKPROTO_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.in
.endif

# XXX: no permission info for makefs(8)
IMGDIR_EXTRA=	${RELEASEDIR}/${RELEASEMACHINEDIR}	${RELEASEMACHINEDIR}
IMGDIR_EXCLUDE= 	-s ',./installation/cdrom.*,,gp'
IMGDIR_EXCLUDE+=	-s ',./installation/liveimage.*,,gp'
IMGDIR_EXCLUDE+=	-s ',./installation/installimage.*,,gp'
.if defined(MD_IMGDIR_EXCLUDE)
IMGDIR_EXCLUDE+=	${MD_IMGDIR_EXCLUDE}
.endif

IMGBASE=        ${INSTIMGBASE}

.include "${NETBSDSRCDIR}/distrib/common/bootimage/Makefile.bootimage"

# INSTIMG_RELEASEDIR specifies where to install ${INSTIMGBASE}.img.gz.
# This should be passed from etc/Makefile or etc/etc.${MACHINE}/Makefile.inc
# but also set default here for manual builds.
INSTIMG_RELEASEDIR?=	${RELEASEMACHINEDIR}/installation/installimage

# should be defined elsewhere? 
MKDIR?=		mkdir -p

install_image: check_INSTIMGBASE check_RELEASEDIR ${IMGBASE}.img.gz
	${MKDIR} ${MKDIRPERM} ${INSTIMG_RELEASEDIR}
	${RELEASE_INSTALL} ${IMGBASE}.img.gz ${INSTIMG_RELEASEDIR}
	# note ${MAKESUM} will be calculated in src/etc/Makefile

release: