#       $NetBSD: Makefile.installimage,v 1.11 2024/04/25 11:56:51 nia 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/floppy/.*,,gp'
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: