X-Git-Url: http://git.plutz.net/?p=bootimage;a=blobdiff_plain;f=Makefile;h=8879c09a942ac481e23aaf002b21301f9ca01037;hp=a80a8a73fac6f26b11b3c992c99d400f97fcd6df;hb=9ff678e0eabd42da88178d2bdc91d394bb0f8a1e;hpb=6b5a1635659e158e71c3ef319f0cb191bf965093 diff --git a/Makefile b/Makefile index a80a8a7..8879c09 100644 --- a/Makefile +++ b/Makefile @@ -7,20 +7,22 @@ GROUPS := sudo ARCH := amd64 CONFIG := config_base/ -PACKAGES := apt bilibop-lockfs btrfs-tools busybox-static bzip2 ca-certificates cron deborphan extlinux gzip htop ifupdown init iputils-ping irqbalance isc-dhcp-client less live-boot live-boot-initramfs-tools make man-db nbd-client net-tools nmap ntpdate openssh-client openssh-server p7zip-full pciutils rsync squashfs-tools sshfs sudo systemd unace unrar-free unzip vim wget wireless-tools wpasupplicant xz-utils zip +PACKAGES := apt bilibop-lockfs btrfs-tools busybox-static bzip2 ca-certificates cron deborphan efibootmgr firmware-linux-free gzip htop ifupdown init iputils-ping irqbalance isc-dhcp-client less live-boot live-boot-initramfs-tools make man-db nbd-client net-tools nmap ntpdate openssh-client openssh-server p7zip-full pciutils rsync squashfs-tools sshfs sudo syslinux syslinux-common syslinux-efi systemd unace unrar-free unzip vim wget wireless-tools wpasupplicant xz-utils zip -Include *.mk +include *.mk + +.PRECIOUS: stretch_%_root/bin/sh stretch_%_root/bin/sh: btrfs subvolume create "$(subst bin/sh,,$@)" || mkdir "$(subst bin/sh,,$@)" chmod 755 "$(subst bin/sh,,$@)" debootstrap --arch=${ARCH} --variant=minbase stretch "$(subst bin/sh,,$@)" -stretch_%_root/: stretch_%_root/bin/sh ${CONFIG} .FORCE +stretch_%_root/: stretch_%_root/bin/sh ${CONFIG} permissions .FORCE for tree in ${CONFIG}; do for file in apt default timezone; do cp -av "$$tree/etc/$$file" "$@/etc/" || true; done; done chroot "$@" ln -sf /bin/true /usr/local/sbin/invoke-rc.d chroot "$@" sh -c 'apt-mark showmanual |xargs apt-mark auto || true' - chroot "$@" apt-get update + -chroot "$@" apt-get update chroot "$@" umount /proc /dev || true chroot "$@" mount -t devtmpfs udev /dev chroot "$@" mount -t proc proc /proc @@ -32,16 +34,58 @@ stretch_%_root/: stretch_%_root/bin/sh ${CONFIG} .FORCE chroot "$@" apt-get clean touch "$@" -stretch_%_config/: stretch_%_root/ ${CONFIG} .FORCE - btrfs subvolume delete "$@" || rm -r "$@" || true +stretch_%_config/: stretch_%_root/ ${CONFIG} permissions .FORCE + if [ -d "$@" ]; then btrfs subvolume delete "$@" || rm -r "$@"; else true; fi btrfs subvolume snapshot "$<" "$@" || cp -rlv "$<" "$@" cp -av $(addsuffix /*, ${CONFIG}) "$@" - chroot "$@" locale-gen - chroot "$@" update-locale - chroot "$@" useradd -M -p "$$(printf %s\\n '${PASS}' |mkpasswd -m sha-256 -s)" '${USER}' - for g in ${GROUPS}; do chroot "$@" adduser '${USER}' "$$g"; done + -chroot "$@" locale-gen + -chroot "$@" update-locale + -chroot "$@" useradd -M -p "$$(printf %s\\n '${PASS}' |mkpasswd -m sha-256 -s)" '${USER}' + -for g in ${GROUPS}; do chroot "$@" adduser '${USER}' "$$g"; done touch "$@" stretch_%.squashfs: stretch_%_config/ rm "$@" || true mksquashfs "$<" "$@" -comp xz + +vmlinuz: stretch_*_root/ + ln -fs '$<$@' ./ + +initrd.img: stretch_*_root/ + ln -fs '$<$@' ./ + +/dev/sd%: partitions .FORCE + sfdisk ${@}