ISO/configs/syslinux-iso/Makefile
Gerardo Exequiel Pozzi f62c58bce6 [syslinux-iso] create root-image tree in two steps
First install {base} group, then install rest of packages listed
at in packages file.
In this way, ensure a fully base system installed first,
avoinding errors from install scriptlets of rest of packages.

(currently there is no issue with packages listed on packages files,
but if some add more packages to customize the iso will see errors)

Signed-off-by: Gerardo Exequiel Pozzi <vmlinuz386@yahoo.com.ar>
2010-06-28 23:24:34 -03:00

87 lines
2.6 KiB
Makefile

ver=$(shell date +%Y.%m.%d)
WORKDIR=work
ARCH?=$(shell uname -m)
PWD=$(shell pwd)
NETname=$(PWD)/archlinux-$(ver)-netinstall-$(ARCH).iso
COREname=$(PWD)/archlinux-$(ver)-core-$(ARCH).iso
PACKAGES="$(shell cat packages.$(ARCH))"
kver_FILE=$(WORKDIR)/root-image/etc/mkinitcpio.d/kernel26.kver
all: net-iso core-iso
# Rules for each type of image
core-iso: $(COREname)
net-iso: $(NETname)
$(COREname): core-pkgs base-fs
mkarchiso iso $(WORKDIR) $@
$(NETname): base-fs
mkarchiso iso $(WORKDIR) $@
# This is the main rule for make the working filesystem.
base-fs: root-image bootfiles initcpio overlay iso-mounts
# Rules for make the root-image for base filesystem.
root-image: $(WORKDIR)/root-image/.arch-chroot
$(WORKDIR)/root-image/.arch-chroot:
mkarchiso -p base create $(WORKDIR)
mkarchiso -p $(PACKAGES) create $(WORKDIR)
# Rule for make /boot
bootfiles: root-image
mkdir -p $(WORKDIR)/iso/boot
cp $(WORKDIR)/root-image/boot/System.map26 $(WORKDIR)/iso/boot/
cp $(WORKDIR)/root-image/boot/vmlinuz26 $(WORKDIR)/iso/boot/
cp $(WORKDIR)/root-image/boot/memtest86+/memtest.bin $(WORKDIR)/iso/boot/memtest
cp $(WORKDIR)/root-image/usr/share/licenses/common/GPL2/license.txt $(WORKDIR)/iso/boot/memtest.COPYING
cp -r boot-files/* $(WORKDIR)/iso/boot/
cp $(WORKDIR)/root-image/usr/lib/syslinux/*.c32 $(WORKDIR)/iso/boot/isolinux/
cp $(WORKDIR)/root-image/usr/lib/syslinux/isolinux.bin $(WORKDIR)/iso/boot/isolinux/
cp $(WORKDIR)/root-image/usr/lib/syslinux/memdisk $(WORKDIR)/iso/boot/isolinux/
cp $(WORKDIR)/root-image/usr/lib/syslinux/pxelinux.0 $(WORKDIR)/iso/boot/isolinux/
# Rules for initcpio images
initcpio: $(WORKDIR)/iso/boot/archiso.img
$(WORKDIR)/iso/boot/archiso.img: mkinitcpio.conf $(WORKDIR)/root-image/.arch-chroot
mkdir -p $(WORKDIR)/iso/boot
mkinitcpio -c ./mkinitcpio.conf -b $(WORKDIR)/root-image -k $(shell grep ^ALL_kver $(kver_FILE) | cut -d= -f2) -g $@
# overlay filesystem
overlay:
mkdir -p $(WORKDIR)/overlay/etc/pacman.d
cp -r overlay $(WORKDIR)/
wget -O $(WORKDIR)/overlay/etc/pacman.d/mirrorlist http://www.archlinux.org/mirrorlist/$(ARCH)/all/
sed -i "s/#Server/Server/g" $(WORKDIR)/overlay/etc/pacman.d/mirrorlist
# Rule to process isomounts file.
iso-mounts: $(WORKDIR)/isomounts
$(WORKDIR)/isomounts: isomounts root-image
sed "s|@ARCH@|$(ARCH)|g" isomounts > $@
# Rule for make the [core] repo packages
core-pkgs:
./download-repo.sh core $(WORKDIR)/core-pkgs
# Clean-up all work
clean:
rm -rf $(WORKDIR) $(NETname) $(COREname)
.PHONY: all core-iso net-iso
.PHONY: base-fs
.PHONY: root-image bootfiles initcpio overlay iso-mounts
.PHONY: core-pkgs
.PHONY: clean