summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile90
1 files changed, 90 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..0ca9b4c
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,90 @@
+ver=$(shell date +%Y.%m.%d)
+
+WORKDIR=work
+
+ARCH?=$(shell uname -m)
+
+PWD=$(shell pwd)
+NETname=$(PWD)/parabola-$(ver)-netinstall-$(ARCH).iso
+COREname=$(PWD)/parabola-$(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 -v iso $(WORKDIR) $@
+$(NETname): base-fs
+ mkarchiso -v 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 -v -p base create $(WORKDIR)
+ mkarchiso -v -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/syslinux/
+ cp $(WORKDIR)/root-image/usr/lib/syslinux/isolinux.bin $(WORKDIR)/iso/boot/syslinux/
+ cp $(WORKDIR)/root-image/usr/lib/syslinux/memdisk $(WORKDIR)/iso/boot/syslinux/
+ cp $(WORKDIR)/root-image/usr/lib/syslinux/pxelinux.0 $(WORKDIR)/iso/boot/syslinux/
+ cp $(WORKDIR)/root-image/usr/lib/syslinux/gpxelinux.0 $(WORKDIR)/iso/boot/syslinux/
+ # Add pci.ids and modules.alias for hdt
+ mkdir -p $(WORKDIR)/iso/boot/syslinux/hdt/
+ wget -O - http://pciids.sourceforge.net/v2.2/pci.ids | gzip -9 > $(WORKDIR)/iso/boot/syslinux/hdt/pciids.gz
+ cat $(WORKDIR)/root-image/lib/modules/$(shell grep ^ALL_kver $(kver_FILE) | cut -d= -f2)/modules.alias | gzip -9 > $(WORKDIR)/iso/boot/syslinux/hdt/modalias.gz
+
+# 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://parabolagnulinux.org/mirrorlist
+ 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/src/core/pkg
+
+
+# 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
+