ifdef iso
target := isoimage
endif
+ifdef subvol
+ target := subvolume
+endif
include $(addsuffix .mk, $(addprefix targets/, ${target}))
export SOURCES SYSROOT CFGROOT ARCH KEYRING BOOTSTRAP
-sys_root_${release}_${ARCH}/:
+sys_root_${release}_${ARCH}:
btrfs subvol create "$@" || mkdir "$@"
chmod 755 "$@"
-${CFGROOT}: sys_root_${release}_${ARCH}/ _install
- -btrfs sub del "$@" || rm -r "$@"
- btrfs sub snap "$<" "$@" || mkdir "$@"
- chmod 755 "$@"
+# do not use ${CFGROOT} variable, because some targets need different receipes
+cfg_root: ${SYSROOT} _install
+ -btrfs sub del "$@" || rm -r -- "$@"
+ btrfs sub snap "$<" "$@" || mkdir -- "$@"
+ chmod 755 -- "$@"
_bootstrap: ${SYSROOT}/bin/sh
${SYSROOT}/bin/sh: | ${SYSROOT}
_norecommends: ${SYSROOT}/etc/apt/apt.conf.d/10norecommends
${SYSROOT}/etc/apt/apt.conf.d/10norecommends: ${SYSROOT}
- mkdir -p -m 755 "$(dir $@)"
+ mkdir -p -m 755 -- "$(@D)"
printf 'APT::%s "false";\n' "Install-Recommends" "Keep-Recommends" "Install-Suggests" "Keep-Suggests" >"$@"
chmod 644 "$@"
_copy: ${SYSROOT} ${CFGROOT}
cp -au "$${SYSROOT}/." "$${CFGROOT}/"
-_config: ${CFGROOT}
+_config:
-ln -sf /dev/null "$${CFGROOT}/etc/systemd/network/99-default.link"
- printf '\nsession optional pam_mkhomedir.so umask=0027\n' >>"$${CFGROOT}/etc/pam.d/common-session"
- mountpoint "$${CFGROOT}/proc" || mount -o bind /proc "$${CFGROOT}/proc"
+ printf '\n%s\n' \
+ 'session optional pam_mkhomedir.so umask=0027' \
+ >>"$${CFGROOT}/etc/pam.d/common-session"
+ mountpoint "$${CFGROOT}/proc" \
+ || mount -o bind /proc "$${CFGROOT}/proc"
chroot "$${CFGROOT}" update-initramfs -u
-umount "$${CFGROOT}/proc"