11.11Snia#	$NetBSD: Makefile.installimage,v 1.11 2024/04/25 11:56:51 nia Exp $
21.1Stsutsui#
31.1Stsutsui# Common Makefile to create a bootable installation image for USB flash etc.
41.1Stsutsui#
51.1Stsutsui
61.1Stsutsui#
71.1Stsutsui# Required variables:
81.1Stsutsui#	INSTIMGBASE
91.1Stsutsui#		Basename of the liveimage
101.1Stsutsui#
111.4Stsutsui# Optional variables:
121.4Stsutsui#	INSTIMAGEMB
131.4Stsutsui#		target image size in MB
141.4Stsutsui#		(if empty default IMAGEMB in Makefile.bootimage is used)
151.4Stsutsui#
161.1Stsutsui# See Makefile.bootimage for other variables.
171.1Stsutsui#
181.1Stsutsui
191.2Stsutsui.if !target(check_INSTIMGBASE)
201.2Stsutsuicheck_INSTIMGBASE: .PHONY .NOTMAIN
211.2Stsutsui.if !defined(INSTIMGBASE)
221.1Stsutsui	@echo "Error: INSTIMGBASE is not set"
231.1Stsutsui	@false
241.2Stsutsui.else
251.2Stsutsui	@true
261.1Stsutsui.endif
271.1Stsutsui.endif
281.1Stsutsui
291.4Stsutsui.if defined(INSTIMAGEMB)
301.4StsutsuiIMAGEMB=	${INSTIMAGEMB}
311.4Stsutsui.endif
321.1StsutsuiSWAPMB=		0			# no swap
331.1Stsutsui
341.1StsutsuiKERN_SET?=	kern-GENERIC
351.10SmayaSETS?=		gpufw modules base etc
361.1Stsutsui
371.1StsutsuiFSTAB_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/fstab.install.in
381.1Stsutsui
391.7SjmcneillUSE_MBR?=	no
401.7Sjmcneill
411.1Stsutsui.if ${USE_MBR} != "no"
421.1StsutsuiDISKPROTO_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.mbr.in
431.1Stsutsui.else
441.1StsutsuiDISKPROTO_IN?=	${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.in
451.1Stsutsui.endif
461.1Stsutsui
471.3Stsutsui# XXX: no permission info for makefs(8)
481.1StsutsuiIMGDIR_EXTRA=	${RELEASEDIR}/${RELEASEMACHINEDIR}	${RELEASEMACHINEDIR}
491.11SniaIMGDIR_EXCLUDE+= 	-s ',./installation/floppy/.*,,gp'
501.11SniaIMGDIR_EXCLUDE+= 	-s ',./installation/cdrom.*,,gp'
511.1StsutsuiIMGDIR_EXCLUDE+=	-s ',./installation/liveimage.*,,gp'
521.1StsutsuiIMGDIR_EXCLUDE+=	-s ',./installation/installimage.*,,gp'
531.8Sjmcneill.if defined(MD_IMGDIR_EXCLUDE)
541.8SjmcneillIMGDIR_EXCLUDE+=	${MD_IMGDIR_EXCLUDE}
551.8Sjmcneill.endif
561.1Stsutsui
571.1StsutsuiIMGBASE=        ${INSTIMGBASE}
581.1Stsutsui
591.1Stsutsui.include "${NETBSDSRCDIR}/distrib/common/bootimage/Makefile.bootimage"
601.1Stsutsui
611.1Stsutsui# INSTIMG_RELEASEDIR specifies where to install ${INSTIMGBASE}.img.gz.
621.1Stsutsui# This should be passed from etc/Makefile or etc/etc.${MACHINE}/Makefile.inc
631.1Stsutsui# but also set default here for manual builds.
641.1StsutsuiINSTIMG_RELEASEDIR?=	${RELEASEMACHINEDIR}/installation/installimage
651.1Stsutsui
661.1Stsutsui# should be defined elsewhere? 
671.1StsutsuiMKDIR?=		mkdir -p
681.1Stsutsui
691.2Stsutsuiinstall_image: check_INSTIMGBASE check_RELEASEDIR ${IMGBASE}.img.gz
701.5Schristos	${MKDIR} ${MKDIRPERM} ${INSTIMG_RELEASEDIR}
711.1Stsutsui	${RELEASE_INSTALL} ${IMGBASE}.img.gz ${INSTIMG_RELEASEDIR}
721.1Stsutsui	# note ${MAKESUM} will be calculated in src/etc/Makefile
731.1Stsutsui
741.1Stsutsuirelease:
751.1Stsutsui
76