diff --git a/kernel/Makefile b/kernel/Makefile index c19de2d4..aa380e9a 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -16,32 +16,18 @@ ccflags-y += -I$(objtree)/security/selinux -include $(srctree)/include/uapi/asm- obj-$(CONFIG_KSU) += kernelsu.o -REPO_OWNER := KernelSU-Next -REPO_NAME := KernelSU-Next -REPO_BRANCH := next - -GIT_BIN := /usr/bin/env PATH="$$PATH":/usr/bin:/usr/local/bin git -CURL_BIN := /usr/bin/env PATH="$$PATH":/usr/bin:/usr/local/bin curl - -KSU_GITHUB_VERSION := $(shell $(CURL_BIN) -sI "https://api.github.com/repos/$(REPO_OWNER)/$(REPO_NAME)/commits?sha=$(REPO_BRANCH)&per_page=1" | grep -i "link:" | sed -n 's/.*page=\([0-9]*\)>; rel="last".*/\1/p') - -ifeq ($(KSU_GITHUB_VERSION),) - ifeq ($(shell test -e $(srctree)/$(src)/../.git; echo $$?),0) - $(shell cd $(srctree)/$(src); [ -f ../.git/shallow ] && $(GIT_BIN) fetch --unshallow) - KSU_LOCAL_VERSION := $(shell cd $(srctree)/$(src); $(GIT_BIN) rev-list --count HEAD) - $(eval KSU_VERSION := $(shell expr 10000 + $(KSU_LOCAL_VERSION) + 200)) - $(info -- KernelSU-Next version (local .git): $(KSU_VERSION)) - else - $(eval KSU_VERSION := 11998) - $(warning -- Could not fetch version online or via local .git! Using fallback version: $(KSU_VERSION)) - endif -else - $(eval KSU_VERSION := $(shell expr 10000 + $(KSU_GITHUB_VERSION) + 200)) - $(info -- KernelSU-Next version (GitHub): $(KSU_VERSION)) -endif - +# .git is a text file while the module is imported by 'git submodule add'. +ifeq ($(shell test -e $(srctree)/$(src)/../.git; echo $$?),0) +$(shell cd $(srctree)/$(src); /usr/bin/env PATH="$$PATH":/usr/bin:/usr/local/bin [ -f ../.git/shallow ] && git fetch --unshallow) +KSU_GIT_VERSION := $(shell cd $(srctree)/$(src); /usr/bin/env PATH="$$PATH":/usr/bin:/usr/local/bin git rev-list --count HEAD) +# ksu_version: major * 10000 + git version + 200 for historical reasons +$(eval KSU_VERSION=$(shell expr 10000 + $(KSU_GIT_VERSION) + 200)) $(info -- KernelSU-Next version: $(KSU_VERSION)) ccflags-y += -DKSU_VERSION=$(KSU_VERSION) +else # If there is no .git file, the default version will be passed. +$(warning "KSU_GIT_VERSION not defined! It is better to make KernelSU-Next a git submodule!") +ccflags-y += -DKSU_VERSION=11998 +endif ifeq ($(shell grep -q " current_sid(void)" $(srctree)/security/selinux/include/objsec.h; echo $$?),0) ccflags-y += -DKSU_COMPAT_HAS_CURRENT_SID