# Makefile for initramfs included on the LFS livecd

NM= initramfs
VRS= 1

MK= mknod
CP= cp
WDIR= temp

# Targets

include $(ROOT)/scripts/functions

chroot:
	chroot "$(MP)" $(chenv-blfs) \
	'cd $(ROOT) && make ch-$(NM) $(chbash-post-bash)'

stage2: Makefile
	@make compile-$@
	@make clean
	@touch $@

init: init.in
	sed 's@LFS_CD@lfslivecd-$(VERSION)@' init.in >init
	chmod 755 init

run-init: run-init.c
	$(CC) $(CFLAGS) -o run-init run-init.c

compile-stage2: init run-init
	mkdir -p $(WDIR)/{dev,bin,lib,.tmpfs,.union}
	$(CP) /sbin/losetup $(WDIR)/bin
	$(CP) /bin/{dd,ln,mkdir,mount,sh,sleep} $(WDIR)/bin
	$(CP) run-init $(WDIR)/bin
	$(CP) -a /lib/libc-* /lib/libc.* /lib/librt* /lib/libpthread* $(WDIR)/lib
	$(CP) -a /lib/ld* /lib/libdl* /lib/libblkid* /lib/libuuid* $(WDIR)/lib
	$(CP) -a /lib/libncurses* /lib/libreadline* /lib/libhistory* $(WDIR)/lib
	$(CP) init $(WDIR)
	$(MK) -m 660 $(WDIR)/dev/console c 5 1
	$(MK) -m 664 $(WDIR)/dev/null c 1 3
	$(MK) -m 660 $(WDIR)/dev/hda b 3 0
	$(MK) -m 660 $(WDIR)/dev/hdb b 3 64
	$(MK) -m 660 $(WDIR)/dev/hdc b 22 0
	$(MK) -m 660 $(WDIR)/dev/hdd b 22 64
	$(MK) -m 660 $(WDIR)/dev/hde b 33 0
	$(MK) -m 660 $(WDIR)/dev/hdf b 33 64
	$(MK) -m 660 $(WDIR)/dev/hdg b 34 0
	$(MK) -m 660 $(WDIR)/dev/hdh b 34 64
	$(MK) -m 660 $(WDIR)/dev/sr0 b 11 0
	$(MK) -m 660 $(WDIR)/dev/sr1 b 11 1
	$(MK) -m 660 $(WDIR)/dev/sr2 b 11 2
	$(MK) -m 660 $(WDIR)/dev/sr3 b 11 3
	$(MK) -m 660 $(WDIR)/dev/sr4 b 11 4
	$(MK) -m 660 $(WDIR)/dev/sr5 b 11 5
	$(MK) -m 660 $(WDIR)/dev/sr6 b 11 6
	$(MK) -m 660 $(WDIR)/dev/sr7 b 11 7
	$(MK) -m 660 $(WDIR)/dev/loop0 b 7 0
	cd $(WDIR); find . | cpio -o -H newc | gzip -9 > ../initramfs_data.cpio.gz
ifeq ($(LFS-ARCH),x86)
	$(CP) initramfs_data.cpio.gz /boot/isolinux/initramfs_data_cpio.gz
endif
ifeq ($(LFS-ARCH),x86_64)
	$(CP) initramfs_data.cpio.gz /boot/isolinux/initramfs_data_cpio.gz
endif
ifeq ($(LFS-ARCH),ppc)
	$(CP) initramfs_data.cpio.gz /boot/
endif
ifeq ($(LFS-ARCH),sparc64)
	$(CP) initramfs_data.cpio.gz /boot/
endif
	rm -rf temp

clean:
	-rm -rf temp
	-rm -f initramfs_data* init run-init

.PHONY: clean chroot compile-stage2
