1#         $NetBSD: Makefile.installimage,v 1.11 2024/04/25 11:56:51 nia Exp $
2#
3# Common Makefile to create a bootable installation image for USB flash etc.
4#
5
6#
7# Required variables:
8#         INSTIMGBASE
9#                   Basename of the liveimage
10#
11# Optional variables:
12#         INSTIMAGEMB
13#                   target image size in MB
14#                   (if empty default IMAGEMB in Makefile.bootimage is used)
15#
16# See Makefile.bootimage for other variables.
17#
18
19.if !target(check_INSTIMGBASE)
20check_INSTIMGBASE: .PHONY .NOTMAIN
21.if !defined(INSTIMGBASE)
22          @echo "Error: INSTIMGBASE is not set"
23          @false
24.else
25          @true
26.endif
27.endif
28
29.if defined(INSTIMAGEMB)
30IMAGEMB=  ${INSTIMAGEMB}
31.endif
32SWAPMB=             0                             # no swap
33
34KERN_SET?=          kern-GENERIC
35SETS?=              gpufw modules base etc
36
37FSTAB_IN?=          ${NETBSDSRCDIR}/distrib/common/bootimage/fstab.install.in
38
39USE_MBR?= no
40
41.if ${USE_MBR} != "no"
42DISKPROTO_IN?=      ${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.mbr.in
43.else
44DISKPROTO_IN?=      ${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.in
45.endif
46
47# XXX: no permission info for makefs(8)
48IMGDIR_EXTRA=       ${RELEASEDIR}/${RELEASEMACHINEDIR}      ${RELEASEMACHINEDIR}
49IMGDIR_EXCLUDE+=    -s ',./installation/floppy/.*,,gp'
50IMGDIR_EXCLUDE+=    -s ',./installation/cdrom.*,,gp'
51IMGDIR_EXCLUDE+=    -s ',./installation/liveimage.*,,gp'
52IMGDIR_EXCLUDE+=    -s ',./installation/installimage.*,,gp'
53.if defined(MD_IMGDIR_EXCLUDE)
54IMGDIR_EXCLUDE+=    ${MD_IMGDIR_EXCLUDE}
55.endif
56
57IMGBASE=        ${INSTIMGBASE}
58
59.include "${NETBSDSRCDIR}/distrib/common/bootimage/Makefile.bootimage"
60
61# INSTIMG_RELEASEDIR specifies where to install ${INSTIMGBASE}.img.gz.
62# This should be passed from etc/Makefile or etc/etc.${MACHINE}/Makefile.inc
63# but also set default here for manual builds.
64INSTIMG_RELEASEDIR?=          ${RELEASEMACHINEDIR}/installation/installimage
65
66# should be defined elsewhere?
67MKDIR?=             mkdir -p
68
69install_image: check_INSTIMGBASE check_RELEASEDIR ${IMGBASE}.img.gz
70          ${MKDIR} ${MKDIRPERM} ${INSTIMG_RELEASEDIR}
71          ${RELEASE_INSTALL} ${IMGBASE}.img.gz ${INSTIMG_RELEASEDIR}
72          # note ${MAKESUM} will be calculated in src/etc/Makefile
73
74release:
75
76