diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e90648c3..80b3de3a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -209,6 +209,7 @@ jobs: - name: Build firmware run: | echo "8.8.8.8 invisible-mirror.net" | sudo tee -a /etc/hosts + echo "8.8.8.8 distfiles.dereferenced.org" | sudo tee -a /etc/hosts export GIT_HASH=$(git rev-parse --short ${GITHUB_SHA}) export GIT_BRANCH=${GITHUB_REF_NAME} diff --git a/Makefile b/Makefile index bf68001d..58ce7b59 100644 --- a/Makefile +++ b/Makefile @@ -4,35 +4,34 @@ BR_LINK = https://github.com/buildroot/buildroot/archive/refs/tags BR_FILE = /tmp/buildroot-$(BR_VER).tar.gz TARGET ?= $(PWD)/output -MAX_KERNEL_SIZE_LITE = 2048 -MAX_ROOTFS_SIZE_LITE = 5120 -MAX_KERNEL_SIZE_ULTIMATE = 3072 -MAX_ROOTFS_SIZE_ULTIMATE = 10240 -MAX_KERNEL_SIZE_NAND = 4096 -MAX_ROOTFS_SIZE_NAND = 16384 +MAX_KERNEL_SIZE_8M := 2048 +MAX_ROOTFS_SIZE_8M := 5120 +MAX_KERNEL_SIZE_16M := 3072 +MAX_ROOTFS_SIZE_16M := 10240 +MAX_KERNEL_SIZE_128M := 4096 +MAX_ROOTFS_SIZE_128M := 16384 -ifdef BOARD - CONFIG = $(shell find br-ext-*/configs/*_defconfig | grep -m1 $(BOARD)) +ifneq ($(filter $(MAKECMDGOALS), all repack),) +LIST = $(shell find ./br-ext-*/configs/*_defconfig | sort | \ + sed -E "s|br-ext-chip-(.+).configs.(.+)_defconfig|'\2' '\1 \2'|") +BOARD = $(or $(shell whiptail --title "Available boards" --menu "Please select a board:" 20 76 12 \ + --notags $(LIST) 3>&1 1>&2 2>&3),$(error variable BOARD must be defined)) +CONFIG := $(shell find br-ext-*/configs/*_defconfig | grep -m1 $(BOARD)) +include $(CONFIG) endif -ifeq ($(CONFIG),) - CONFIG = $(error variable BOARD must be defined to initialize build) -else - include $(CONFIG) -endif - -.PHONY: all clean defconfig deps distclean help prepare toolname +TIMER := $(shell date +%s) help: @printf "BR-OpenIPC usage:\n \ + - make list - show available device configurations\n \ - make deps - install build dependencies\n \ - make clean - remove defconfig and target folder\n \ - make distclean - remove buildroot and output folder\n \ - - make list - show available device configurations\n \ - - make select - show interactive device list\n \ - - make all BOARD= - build the selected device\n\n" + - make br-linux - build linux kernel only\n \ + - make all - build the device firmware\n\n" -all: build repack +all: build repack timer build: defconfig @$(BR_MAKE) all @@ -40,13 +39,11 @@ build: defconfig br-%: defconfig @$(BR_MAKE) $(subst br-,,$@) -defconfig: prepare - @$(BR_MAKE) BR2_DEFCONFIG=$(PWD)/$(CONFIG) defconfig - -prepare: +defconfig: @if test ! -e $(TARGET)/buildroot-$(BR_VER); then \ wget -c -q $(BR_LINK)/$(BR_VER).tar.gz -O $(BR_FILE); \ mkdir -p $(TARGET); tar -xf $(BR_FILE) -C $(TARGET); fi + @$(BR_MAKE) BR2_DEFCONFIG=$(PWD)/$(CONFIG) defconfig toolname: @general/scripts/show_toolchains.sh $(CONFIG) @@ -64,27 +61,24 @@ deps: sudo apt-get install -y automake autotools-dev bc build-essential cpio \ curl file fzf git libncurses-dev libtool lzop make rsync unzip wget -select: - $(eval MENU_LIST = $(shell find ./br-ext-*/configs/*_defconfig | sort | \ - sed -E "s|br-ext-chip-(.+).configs.(.+)_defconfig|'\2' '\1 \2'|")) - @$(MAKE) BOARD=$(shell whiptail --title "Available boards" --menu "Please select a board:" \ - 20 76 12 --notags $(MENU_LIST) 3>&1 1>&2 2>&3) all +timer: + @echo - Build time: $(shell date -d @$(shell expr $(shell date +%s) - $(TIMER)) -u +%M:%S) repack: ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS),y) ifeq ($(BR2_OPENIPC_FLASH_SIZE),"8") - @$(call CHECK_SIZE,uImage,$(MAX_KERNEL_SIZE_LITE)) - @$(call CHECK_SIZE,rootfs.squashfs,$(MAX_ROOTFS_SIZE_LITE)) + @$(call CHECK_SIZE,uImage,$(MAX_KERNEL_SIZE_8M)) + @$(call CHECK_SIZE,rootfs.squashfs,$(MAX_ROOTFS_SIZE_8M)) else - @$(call CHECK_SIZE,uImage,$(MAX_KERNEL_SIZE_ULTIMATE)) - @$(call CHECK_SIZE,rootfs.squashfs,$(MAX_ROOTFS_SIZE_ULTIMATE)) + @$(call CHECK_SIZE,uImage,$(MAX_KERNEL_SIZE_16M)) + @$(call CHECK_SIZE,rootfs.squashfs,$(MAX_ROOTFS_SIZE_16M)) endif @$(call REPACK_FIRMWARE,uImage,rootfs.squashfs,nor) endif ifeq ($(BR2_TARGET_ROOTFS_UBI),y) $(eval KERNEL_BIN = $(or $(BR2_LINUX_KERNEL_IMAGE_NAME),uImage)) - @$(call CHECK_SIZE,$(KERNEL_BIN),$(MAX_KERNEL_SIZE_NAND)) - @$(call CHECK_SIZE,rootfs.ubi,$(MAX_ROOTFS_SIZE_NAND)) + @$(call CHECK_SIZE,$(KERNEL_BIN),$(MAX_KERNEL_SIZE_128M)) + @$(call CHECK_SIZE,rootfs.ubi,$(MAX_ROOTFS_SIZE_128M)) @$(call REPACK_FIRMWARE,$(KERNEL_BIN),rootfs.ubi,nand) endif