From 3f5ba607ce4a0a455d5306211dce7565bf24c48e Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 26 Jun 2006 15:26:59 +0000 Subject: [PATCH] isolinux.mk: Add file --- make/isolinux.mk | 81 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 make/isolinux.mk diff --git a/make/isolinux.mk b/make/isolinux.mk new file mode 100644 index 00000000..45c048ff --- /dev/null +++ b/make/isolinux.mk @@ -0,0 +1,81 @@ +# == defs + +# -- overwrite these >> +ifeq ($(ROOT_FS_DEVICE),) +ROOT_FS_DEVICE = /dev/hda1 +endif + +BOOT_FILES = $(wildcard /boot/*$(shell uname -r)*) +# -- overwrite these << + +URL = http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.11.tar.bz2 +DLOAD_DIR = /home/samba/dat/share/exe/linux/syslinux +DLOAD_PKG = $(DLOAD_DIR)/$(notdir $(URL)) +BUILD_DIR = cd_root +DIRS = $(DLOAD_DIR) $(BUILD_DIR) +UNPACK_DIR = $(notdir $(shell echo $(DLOAD_PKG) | sed 's/.tar.bz2$$//')) +ISO_IMAGE = image.iso +ISOLINUX_BIN = /usr/share/syslinux/isolinux.bin +ISOLINUX_CFG = isolinux.cfg +INITRD = /boot/initrd + +CD_FILES = \ + $(BOOT_FILES) \ + $(UNPACK_DIR)/com32/modules/menu.c32 \ + $(INITRD) \ + $(ISOLINUX_BIN) \ + $(ISOLINUX_CFG) + +KERNELS = $(shell file $(BOOT_FILES) | grep -ie 'linux.*kernel' | sed 's/:.*//') + +export ROOT_FS_DEVICE + +# == targets + +all: $(ISO_IMAGE) +install: +clean: + rm -rf *.done + rm -rf $(BUILD_DIR) $(UNPACK_DIR) + rm -f $(ISO_IMAGE) + rm -f $(ISOLINUX_CFG) + +distclean: clean + +# == rules + +dirs.done: + mkdir -p $(DIRS) + touch $@ + +$(DLOAD_PKG): + wget -c $(URL) -P $(DLOAD_DIR) + +dload.done: $(DLOAD_PKG) + touch $@ + +unpack.done: dload.done + tar -xjf $(DLOAD_PKG) + touch $@ + +copy.done: unpack.done dirs.done $(CD_FILES) + mkdir -p $(BUILD_DIR) + cp $(CD_FILES) $(BUILD_DIR)/ + touch $@ + +$(ISO_IMAGE): copy.done + mkisofs -o $(ISO_IMAGE) \ + -b isolinux.bin -c boot.cat \ + -no-emul-boot -boot-load-size 4 -boot-info-table \ + $(BUILD_DIR) + +isolinux.cfg: + ( \ + echo DEFAULT menu.c32 ;\ + echo PROMPT 0 ;\ + for k in $(KERNELS); do \ + l=`echo $$k | sed 's/vmlinuz-//g'` ;\ + echo -e "LABEL $$l\n KERNEL $$k\n APPEND initrd=initrd root=$(ROOT_FS_DEVICE)" ;\ + done \ + ) > $@ +