Makefile (2498B)
1 .POSIX: 2 3 TC="aarch64-linux-gnu-" 4 5 KERNEL_URL = https://github.com/raspberrypi/linux 6 KERNEL_BRANCH = rpi-5.11.y 7 KERNEL_SRC = linux-raspberrypi 8 IMAGEGZ = $(KERNEL_SRC)/arch/arm64/boot/Image.gz 9 10 FIRMWARE_URL = https://github.com/raspberrypi/firmware 11 FIRMWARE_BRANCH = master 12 FIRMWARE_SRC = firmware 13 14 AOE_URL = https://github.com/OpenAoE/aoetools 15 AOE_BRANCH = master 16 AOE_SRC = aoetools 17 18 BUSYBOX_URL = https://git.busybox.net/busybox 19 BUSYBOX_BRANCH = 1_32_1 20 BUSYBOX_SRC = busybox 21 22 all: boot/kernel8.img bin/aoe-stat boot/bootcode.bin bin/busybox 23 24 $(KERNEL_SRC): 25 git clone --depth 1 -b $(KERNEL_BRANCH) $(KERNEL_URL) $@ 26 27 $(FIRMWARE_SRC): 28 git clone --depth 1 -b $(FIRMWARE_BRANCH) $(FIRMWARE_URL) $@ 29 30 $(AOE_SRC): 31 git clone --depth 1 -b $(AOE_BRANCH) $(AOE_URL) $@ 32 33 $(BUSYBOX_SRC): 34 git clone --depth 1 -b $(BUSYBOX_BRANCH) $(BUSYBOX_URL) $@ 35 36 boot/bootcode.bin: $(FIRMWARE_SRC) 37 cp $(FIRMWARE_SRC)/boot/start* boot 38 cp $(FIRMWARE_SRC)/boot/fixup* boot 39 cp $(FIRMWARE_SRC)/boot/LICENCE.broadcom boot 40 cp $(FIRMWARE_SRC)/boot/COPYING.linux boot 41 cp $(FIRMWARE_SRC)/boot/bootcode.bin boot 42 43 $(IMAGEGZ): $(KERNEL_SRC) pi3.config 44 cp -f pi3.config $(KERNEL_SRC)/.config 45 $(MAKE) -C $(KERNEL_SRC) ARCH=arm64 CROSS_COMPILE=$(TC) oldconfig 46 $(MAKE) -C $(KERNEL_SRC) ARCH=arm64 CROSS_COMPILE=$(TC) 47 48 boot/kernel8.img: $(IMAGEGZ) 49 mkdir -p boot/overlays 50 cp $(KERNEL_SRC)/arch/arm64/boot/Image.gz $@ 51 cp $(KERNEL_SRC)/arch/arm64/boot/dts/broadcom/bcm*.dtb boot 52 cp $(KERNEL_SRC)/arch/arm64/boot/dts/overlays/*.dtbo boot/overlays 53 cp $(KERNEL_SRC)/arch/arm64/boot/dts/overlays/README boot/overlays 54 55 bin/aoe-stat: $(AOE_SRC) 56 sed -e 's@^CFLAGS =.*@CFLAGS = -Os -s -static@' -i $(AOE_SRC)/Makefile 57 sed -e 's@^SBINDIR =.*@SBINDIR = $${PREFIX}/bin@' -i $(AOE_SRC)/Makefile 58 $(MAKE) -C $(AOE_SRC) CC=$(TC)gcc PREFIX=$(CURDIR) 59 $(MAKE) -C $(AOE_SRC) CC=$(TC)gcc PREFIX=$(CURDIR) install 60 rm -rf usr 61 62 bin/busybox: $(BUSYBOX_SRC) 63 cp busybox.config $(BUSYBOX_SRC)/.config 64 $(MAKE) -C $(BUSYBOX_SRC) ARCH=arm64 CROSS_COMPILE=$(TC) busybox 65 cp $(BUSYBOX_SRC)/busybox $@ 66 67 initramfs.gz: bin/aoe-stat bin/busybox 68 mkdir -p initramfs/dev initramfs/proc initramfs/sys 69 cp init initramfs 70 cp -r bin initramfs 71 cp -a /dev/console /dev/random /dev/tty /dev/urandom initramfs/dev 72 ( cd initramfs ; find . | cpio -o -H newc | gzip -c9 > ../$@ ) 73 74 install: all initramfs.gz 75 ifeq ($(DESTDIR),) 76 @echo "You need to set DESTDIR. See README.md for more information." 77 @exit 1 78 endif 79 cp -r boot/* initramfs.gz $(DESTDIR) 80 81 .PHONY: all install