From: "haibiao.xiao" <xiaohaibiao331@xxxxxxxxxxx> Command 'lvm version' works incorrect. It is expected to print: # ./lvm version # kvm tool [KVMTOOLS_VERSION] but the KVMTOOLS_VERSION is missed: # ./lvm version # kvm tool The KVMTOOLS_VERSION is defined in the KVMTOOLS-VERSION-FILE file which is included at the end of Makefile. Since the CFLAGS is a 'Simply expanded variables' which means CFLAGS is only scanned once. So the definetion of KVMTOOLS_VERSION at the end of Makefile would not scanned by CFLAGS. So the '-DKVMTOOLS_VERSION=' remains empty. I fixed the bug by moving the '-include $(OUTPUT)KVMTOOLS-VERSION-FILE' before the CFLAGS. --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index bb7ad3e..9afb5e3 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ export E Q include config/utilities.mak include config/feature-tests.mak +-include $(OUTPUT)KVMTOOLS-VERSION-FILE CC := $(CROSS_COMPILE)gcc CFLAGS := @@ -559,5 +560,4 @@ ifneq ($(MAKECMDGOALS),clean) KVMTOOLS-VERSION-FILE: @$(SHELL_PATH) util/KVMTOOLS-VERSION-GEN $(OUTPUT) --include $(OUTPUT)KVMTOOLS-VERSION-FILE -endif +endif \ No newline at end of file -- 2.30.2