blob: 768deaaf3c7464ffe173f9ac3cac34b5829b63f1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
ver=2009.12
kver=2.6.31-ARCH
WORKDIR=work
ARCH?=$(shell uname -m)
BOOTLOADER?=syslinux
PWD=$(shell pwd)
NETname=$(PWD)/archlinux-$(ver)-netinstall-$(ARCH).iso
COREname=$(PWD)/archlinux-$(ver)-core-$(ARCH).iso
PACKAGES="$(shell cat packages.$(ARCH)) $(BOOTLOADER)"
all: net-iso core-iso
# Rules for each type of image
core-iso: $(COREname)
net-iso: $(NETname)
$(COREname): core-pkgs base-fs
mkarchiso -p syslinux iso $(WORKDIR) $@
isohybrid $@
$(NETname): base-fs
mkarchiso -p syslinux iso $(WORKDIR) $@
isohybrid $@
# This is the main rule for make the working filesystem.
base-fs: root-image boot-files initcpio overlay iso-mounts syslinux
# Rules for make the root-image for base filesystem.
root-image: $(WORKDIR)/root-image/.arch-chroot
$(WORKDIR)/root-image/.arch-chroot:
mkarchiso -p $(PACKAGES) create $(WORKDIR)
# Rule for make /boot
boot-files: root-image
cp -r $(WORKDIR)/root-image/boot $(WORKDIR)/iso/
cp -r boot-files/* $(WORKDIR)/iso/boot/
# Rules for initcpio images
initcpio: $(WORKDIR)/iso/boot/archiso.img
$(WORKDIR)/iso/boot/archiso.img: initcpio.cfg root-image
mkdir -p $(WORKDIR)/iso/boot
mkinitcpio -c ./initcpio.cfg -b $(WORKDIR)/root-image -k $(kver) -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
# Rules for bootloaders
syslinux: root-image
mkdir -p $(WORKDIR)/iso/boot/isolinux
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/
# Clean-up all work
clean:
rm -rf $(WORKDIR) $(NETname) $(COREname)
.PHONY: all core-iso net-iso
.PHONY: base-fs
.PHONY: root-image boot-files initcpio overlay iso-mounts
.PHONY: core-pkgs
.PHONY: syslinux
.PHONY: clean
|