# This file is part of the FreeWRT project. FreeWRT is copyrighted
# material, please see the LICENCE file in the top-level directory

include $(TOPDIR)/rules.mk
include ../rules.mk

# linux kernel headers for toolchain

LINUX_HEADERS_VERSION=6.12.41
LINUX_KERNEL_MD5SUM:=187f109b9212a304c228e07566791e97
LINUX_HEADERS_SITE=https://www.kernel.org/pub/linux/kernel/v6.x

SOURCE=linux-$(LINUX_HEADERS_VERSION).tar.gz
LINUX_HEADERS_ARCH:=	mips
KERNEL_MAKE_OPTS:=	CC="$(TARGET_CC)"
KERNEL_MAKE_OPTS+=	V=1 \
			ARCH="$(LINUX_HEADERS_ARCH)" \
			CROSS_COMPILE="$(TARGET_CROSS)"
KERNEL_MAKE:=env $(KERNEL_MAKE_ENV) $(MAKE) -C "$(LINUX_HEADERS_DIR)" $(KERNEL_MAKE_OPTS)

$(DL_DIR)/$(SOURCE):
	-mkdir -p $(DL_DIR)
	$(SCRIPT_DIR)/download.pl $(DL_DIR) $(SOURCE) $(LINUX_KERNEL_MD5SUM) $(LINUX_HEADERS_SITE)

$(LINUX_HEADERS_DIR)/.unpacked: $(DL_DIR)/$(SOURCE)
	mkdir -p $(TOOLCHAIN_BUILD_DIR)
	cd $(TOOLCHAIN_BUILD_DIR) && gzip -dc $(DL_DIR)/$(SOURCE) | tar -xvf -
	ln -sf $(LINUX_HEADERS_DIR)-$(LINUX_HEADERS_VERSION) $(LINUX_HEADERS_DIR)
	cd $(LINUX_HEADERS_DIR)-$(LINUX_HEADERS_VERSION) && \
	  for f in $(TOPDIR)/toolchain/kernel-headers/patches/*.patch; do \
		patch -lp1 <$$f; \
	done
	touch $(LINUX_HEADERS_DIR)/.unpacked

$(LINUX_HEADERS_DIR)/.configured: $(LINUX_HEADERS_DIR)/.unpacked
	$(KERNEL_MAKE) INSTALL_HDR_PATH=$(STAGING_DIR)/usr headers_install
	touch $(LINUX_HEADERS_DIR)/.configured

source: $(DL_DIR)/$(SOURCE)
prepare: $(LINUX_HEADERS_DIR)/.configured
compile:
install:
clean:
	rm -rf $(LINUX_HEADERS_DIR)
