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) 20 check_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) 30 IMAGEMB= ${INSTIMAGEMB} 31 .endif 32 SWAPMB= 0 # no swap 33 34 KERN_SET?= kern-GENERIC 35 SETS?= gpufw modules base etc 36 37 FSTAB_IN?= ${NETBSDSRCDIR}/distrib/common/bootimage/fstab.install.in 38 39 USE_MBR?= no 40 41 .if ${USE_MBR} != "no" 42 DISKPROTO_IN?= ${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.mbr.in 43 .else 44 DISKPROTO_IN?= ${NETBSDSRCDIR}/distrib/common/bootimage/diskproto.noswap.in 45 .endif 46 47 # XXX: no permission info for makefs(8) 48 IMGDIR_EXTRA= ${RELEASEDIR}/${RELEASEMACHINEDIR} ${RELEASEMACHINEDIR} 49 IMGDIR_EXCLUDE+= -s ',./installation/floppy/.*,,gp' 50 IMGDIR_EXCLUDE+= -s ',./installation/cdrom.*,,gp' 51 IMGDIR_EXCLUDE+= -s ',./installation/liveimage.*,,gp' 52 IMGDIR_EXCLUDE+= -s ',./installation/installimage.*,,gp' 53 .if defined(MD_IMGDIR_EXCLUDE) 54 IMGDIR_EXCLUDE+= ${MD_IMGDIR_EXCLUDE} 55 .endif 56 57 IMGBASE= ${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. 64 INSTIMG_RELEASEDIR?= ${RELEASEMACHINEDIR}/installation/installimage 65 66 # should be defined elsewhere? 67 MKDIR?= mkdir -p 68 69 install_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 74 release: 75 76