mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
tools build: Add 3-component logical version comparators
The next cset needs to compare if a flex version is greater or equal/less than another, but since there is no canonical, generally available way to compare versions in the command line (sort -V, yeah, but...), just use awk to canonicalize the versions like is also done in scripts/rust_is_available.sh. There was a problem spotted in linux-next where a bashism, here documents, aka the '<<<' stdin redirector, for strings to be used as the stdin for awk. Use $(shell echo | awk ...) instead. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Ian Rogers <irogers@google.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
e5764ae4c9
commit
a9b4515095
@ -177,3 +177,23 @@ $(if $($(1)),$(call _ge_attempt,$($(1)),$(1)),$(call _ge_attempt,$(2)))
|
||||
endef
|
||||
_ge_attempt = $(or $(get-executable),$(call _gea_err,$(2)))
|
||||
_gea_err = $(if $(1),$(error Please set '$(1)' appropriately))
|
||||
|
||||
# version-ge3
|
||||
#
|
||||
# Usage $(call version-ge3,2.6.4,$(FLEX_VERSION))
|
||||
#
|
||||
# To compare if a 3 component version is greater or equal to another, first use
|
||||
# was to check the flex version to see if we can use compiler warnings as
|
||||
# errors for one of the cases flex generates code C compilers complains about.
|
||||
|
||||
version-ge3 = $(shell echo "$(1).$(2)" | awk -F'.' '{ printf("%d\n", (10000000 * $$1 + 10000 * $$2 + $$3) >= (10000000 * $$4 + 10000 * $$5 + $$6)) }')
|
||||
|
||||
# version-lt3
|
||||
#
|
||||
# Usage $(call version-lt3,2.6.2,$(FLEX_VERSION))
|
||||
#
|
||||
# To compare if a 3 component version is less thjan another, first use was to
|
||||
# check the flex version to see if we can use compiler warnings as errors for
|
||||
# one of the cases flex generates code C compilers complains about.
|
||||
|
||||
version-lt3 = $(shell echo "$(1).$(2)" | awk -F'.' '{ printf("%d\n", (10000000 * $$1 + 10000 * $$2 + $$3) < (10000000 * $$4 + 10000 * $$5 + $$6)) }')
|
||||
|
Loading…
Reference in New Issue
Block a user