CONTENT=/sbin/lvm /sbin/vgchange /sbin/vgscan /bin/busybox init /dev/console etc/kmap-de /sbin/fsck.ext4 CONTENT-LINKS=bin/sh CONTENT-MARKER=$(addprefix .root-done/,$(CONTENT)) DATE=$(shell date +%F_%T) all: initramfs initramfs: initramfs.cpio gzip > initramfs < initramfs.cpio initramfs.cpio: .root-done/.complete cd root ;\ find . | cpio -H newc -o > ../initramfs.cpio .root-done/.complete: $(CONTENT-MARKER) .root-done/.links touch .root-done/.complete $(CONTENT-MARKER): .root-done/%: % -ldd $* | cut -d" " -f 3 | while read i ; do \ if [ -n "$$i" ]; then \ mkdir -p $$(dirname $$i) ;\ cp --parents $$i root/ ;\ fi ;\ done -ldd $* | grep -v "=>" | cut -f1 -d" " | while read i ; do \ if [ -n "$$i" ]; then \ mkdir -p $$(dirname $$i) ;\ cp --parents $$i root/ ;\ fi ;\ done mkdir -p $(shell dirname $*) cp -a --parents $* root/ mkdir -p $(dir .root-done/$*) touch .root-done/$* .root-done/.links: Makefile for i in $(CONTENT-LINKS) ; do \ mkdir -p $$(dirname $$i) ;\ cp -a --parents $$i root/ ;\ done touch .root-done/.static $(CONTENT-MARKER): Makefile clean: ${RM} initramfs initramfs.cpio ${RM} -r root/* ${RM} -r .root-done/ install: if [ ! -d "/boot/grub" ]; then \ mount /boot ;\ fi if [ -r /boot/initramfs ]; then \ mv /boot/initramfs /boot/initramfs-$(DATE) ;\ fi cp initramfs /boot/initramfs