null := space := $(null) $(null) KERNVER ?= $(lastword $(subst /,$(space),$(wildcard /lib/modules/*/))) # slightly faster MAKEFLAGS += -r FORCE: all: initramfs.img initramfs.img: gen_init_cpio make modules.dep $(shell awk '$$1 == "file" { print $$3 }' cpio_list.txt) KERNVER=$(KERNVER) COMPRESSOR="zstd -19 -c -T0" ./make gen_init_cpio: gen_init_cpio.c $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $< -o $@ dropbear_ed25519_host_key: dropbearkey -t ed25519 -f $@ modules.dep.ver: FORCE if ! [ -f $@ ] || [ "$$(cat $@)" != "$(KERNVER)" ]; then echo $(KERNVER) > $@; fi modules.dep: modules modules.dep.ver /lib/modules/$(KERNVER)/modules.dep awk '!/^#/ { print $$1 }' modules | xargs modinfo -F filename -k $(KERNVER) | sed -e 's:^/lib/modules/$(KERNVER)/:^:' | grep -f - /lib/modules/$(KERNVER)/modules.dep > $@ install: initramfs.img install -m644 initramfs.img /boot/initramfs.img.new if [ -e /boot/initramfs.img ]; then mv /boot/initramfs.img /boot/initramfs.img.old; fi mv /boot/initramfs.img.new /boot/initramfs.img clean: rm -f initramfs.img initramfs.d gen_init_cpio modules.dep -include initramfs.d .PHONY: all install clean