blob: 3870e2190870b4f98990e294547edefd9a2d2ed8 (
plain) (
tree)
|
|
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
@echo "Compressing archive"
@gzip > initramfs < initramfs.cpio
initramfs.cpio: .root-done/.complete
@echo "Generating cpio archive"
@cd root ;\
find . | cpio -H newc --quiet -o > ../initramfs.cpio
.root-done/.complete: $(CONTENT-MARKER) .root-done/.links
@touch .root-done/.complete
$(CONTENT-MARKER): .root-done/%: %
@echo "Installing $*"
@if ldd $* > /dev/null 2>&1 ; then \
ldd $* | cut -d" " -f 3 | while read i ; do \
if [ -n "$$i" ]; then \
mkdir -p $$(dirname $$i) ;\
cp --parents $$i root/ ;\
echo -e "\tCopy library: $$i" ;\
fi ;\
done ;\
\
ldd $* | grep -v "=>" | cut -f1 -d" " | while read i ; do \
if [ -n "$$i" ]; then \
mkdir -p $$(dirname $$i) ;\
cp --parents $$i root/ ;\
echo -e "\tCopy library: $$i" ;\
fi ;\
done #;\
fi
@mkdir -p $(shell dirname $*)
@cp -a --parents $* root/
@mkdir -p $(dir .root-done/$*)
@touch .root-done/$*
@echo
.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
|