mirror of
https://gitlab.com/prpl-foundation/prplos/prplos.git
synced 2026-01-14 20:44:37 +00:00
To further improve cleanup and maintenance usage, move the kernel
version files to target/linux/generic directory. This permits to self
contain any change to the specific generic directory instead of having
to bload the include directory of periodic changes.
In kernel-version.mk we now use GENERIC_PLATFORM_DIR provided by
target.mk. To make this work, we need to move the inclusion of
kernel-version.mk in target.mk right after GENERIC_PLATFORM_DIR is
defined.
This also comes to permit downstream project to provide a custom generic
directory and specify the kernel version complete of the hash and the
minor version without having to affect other feeds.
In such case both generic and the target directory are provided as feeds
and OpenWrt reference these specific one instead of the generic one.
For downstream it's still suggested and preferable to all match the
shipped generic kernel minor version but this change permits to at least
enforce good practice instead of having to bloat OpenWrt include file of
all kind of downstream changes (making porting to OpenWrt mainline even
more difficult)
(cherry picked from commit 8865dadea7)
[ rebased on top of openwrt-23.04 ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
52 lines
1.9 KiB
Makefile
52 lines
1.9 KiB
Makefile
|
|
# Use the default kernel version if the Makefile doesn't override it
|
|
LINUX_RELEASE?=1
|
|
|
|
ifdef CONFIG_TESTING_KERNEL
|
|
KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
|
|
endif
|
|
|
|
KERNEL_DETAILS_FILE=$(GENERIC_PLATFORM_DIR)/kernel-$(KERNEL_PATCHVER)
|
|
ifeq ($(wildcard $(KERNEL_DETAILS_FILE)),)
|
|
$(error Missing kernel version/hash file for $(KERNEL_PATCHVER). Please create $(KERNEL_DETAILS_FILE))
|
|
endif
|
|
|
|
include $(KERNEL_DETAILS_FILE)
|
|
|
|
ifdef KERNEL_TESTING_PATCHVER
|
|
KERNEL_TESTING_DETAILS_FILE=$(GENERIC_PLATFORM_DIR)/kernel-$(KERNEL_TESTING_PATCHVER)
|
|
ifeq ($(wildcard $(KERNEL_TESTING_DETAILS_FILE)),)
|
|
$(error Missing kernel version/hash file for $(KERNEL_TESTING_PATCHVER). Please create $(KERNEL_TESTING_DETAILS_FILE))
|
|
endif
|
|
|
|
include $(KERNEL_TESTING_DETAILS_FILE)
|
|
endif
|
|
|
|
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
|
sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))
|
|
|
|
ifneq ($(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),)
|
|
LINUX_VERSION:=$(call sanitize_uri,$(call remove_uri_prefix,$(CONFIG_KERNEL_GIT_CLONE_URI)))
|
|
ifeq ($(call qstrip,$(CONFIG_KERNEL_GIT_REF)),)
|
|
CONFIG_KERNEL_GIT_REF:=HEAD
|
|
endif
|
|
LINUX_VERSION:=$(LINUX_VERSION)-$(call sanitize_uri,$(CONFIG_KERNEL_GIT_REF))
|
|
else
|
|
ifdef KERNEL_PATCHVER
|
|
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
|
|
endif
|
|
ifdef KERNEL_TESTING_PATCHVER
|
|
LINUX_TESTING_VERSION:=$(KERNEL_TESTING_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_TESTING_PATCHVER)))
|
|
endif
|
|
endif
|
|
|
|
split_version=$(subst ., ,$(1))
|
|
merge_version=$(subst $(space),.,$(1))
|
|
KERNEL_BASE=$(firstword $(subst -, ,$(LINUX_VERSION)))
|
|
KERNEL=$(call merge_version,$(wordlist 1,2,$(call split_version,$(KERNEL_BASE))))
|
|
KERNEL_PATCHVER ?= $(KERNEL)
|
|
|
|
# disable the md5sum check for unknown kernel versions
|
|
LINUX_KERNEL_HASH:=$(LINUX_KERNEL_HASH-$(strip $(LINUX_VERSION)))
|
|
LINUX_KERNEL_HASH?=x
|