jw-pkg/make/isolinux.mk

81 lines
1.7 KiB
Makefile

# == 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 = $(UNPACK_DIR)/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 $(notdir $(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 \
) > $@