xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Anthony PERARD <anthony.perard@citrix.com>
To: <xen-devel@lists.xenproject.org>
Cc: Anthony PERARD <anthony.perard@citrix.com>,
	Jan Beulich <jbeulich@suse.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>,
	George Dunlap <george.dunlap@citrix.com>,
	Ian Jackson <iwj@xenproject.org>, Julien Grall <julien@xen.org>,
	Stefano Stabellini <sstabellini@kernel.org>, Wei Liu <wl@xen.org>,
	Doug Goldstein <cardoe@cardoe.com>
Subject: [XEN PATCH v8 15/47] build: hook kconfig into xen build system
Date: Thu, 25 Nov 2021 13:39:34 +0000	[thread overview]
Message-ID: <20211125134006.1076646-16-anthony.perard@citrix.com> (raw)
In-Reply-To: <20211125134006.1076646-1-anthony.perard@citrix.com>

Now that xen's build system is very close to Linux's ones, we can hook
"Makefile.host" into Xen's build system, and we can build Kconfig with
that.

"tools/kconfig/Makefile" now needs a workaround to not rebuild
"$(XEN_ROOT)/.config", as `make` tries the rules "%.config" which
fails with:
    tools/kconfig/Makefile:95: *** No configuration exists for this target on this architecture.  Stop.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
---

Notes:
    v8:
    - reviewed
    - adjust Makefile.host to use the renamed macro "multi-depend".
    - move .config empty rules workaround into kconfig/Makefile (from Rules.mk)
      and merge the change of patch
            build: add an other explicite rules to not build $(XEN_ROOT)/.config
      into
            build: hook kconfig into xen build system

 xen/Makefile                                 |  34 ++++--
 xen/Rules.mk                                 |  13 ++-
 xen/scripts/Kbuild.include                   |  31 ++++++
 xen/scripts/Makefile.clean                   |  11 +-
 xen/{tools/kconfig => scripts}/Makefile.host |  11 +-
 xen/tools/kconfig/Makefile                   |   3 +
 xen/tools/kconfig/Makefile.kconfig           | 106 -------------------
 7 files changed, 86 insertions(+), 123 deletions(-)
 rename xen/{tools/kconfig => scripts}/Makefile.host (95%)
 delete mode 100644 xen/tools/kconfig/Makefile.kconfig

diff --git a/xen/Makefile b/xen/Makefile
index d38425234c6c..c26c44818916 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -40,6 +40,7 @@ ARCH=$(XEN_TARGET_ARCH)
 SRCARCH=$(shell echo $(ARCH) | \
           sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g' \
               -e s'/riscv.*/riscv/g')
+export ARCH SRCARCH
 
 # Don't break if the build process wasn't called from the top level
 # we need XEN_TARGET_ARCH to generate the proper config
@@ -163,6 +164,13 @@ ifneq ($(filter %config,$(MAKECMDGOALS)),)
     config-build := y
 endif
 
+export CONFIG_SHELL := $(SHELL)
+export YACC = $(if $(BISON),$(BISON),bison)
+export LEX = $(if $(FLEX),$(FLEX),flex)
+
+# Default file for 'make defconfig'.
+export KBUILD_DEFCONFIG := $(ARCH)_defconfig
+
 # CLANG_FLAGS needs to be calculated before calling Kconfig
 ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
 CLANG_FLAGS :=
@@ -203,9 +211,6 @@ PHONY += tools_fixdep
 tools_fixdep:
 	$(MAKE) -C tools fixdep
 
-# Shorthand for kconfig
-kconfig = -f $(BASEDIR)/tools/kconfig/Makefile.kconfig ARCH=$(ARCH) SRCARCH=$(SRCARCH) HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)"
-
 ifeq ($(config-build),y)
 # ===========================================================================
 # *config targets only - make sure prerequisites are updated, and descend
@@ -221,14 +226,14 @@ filechk_kconfig_allconfig = \
 .allconfig.tmp: FORCE
 	set -e; { $(call filechk_kconfig_allconfig); } > $@
 
-config: FORCE
-	$(MAKE) $(kconfig) $@
+config: tools_fixdep FORCE
+	$(Q)$(MAKE) $(build)=tools/kconfig $@
 
 # Config.mk tries to include .config file, don't try to remake it
 %/.config: ;
 
-%config: .allconfig.tmp FORCE
-	$(MAKE) $(kconfig) KCONFIG_ALLCONFIG=$< $@
+%config: .allconfig.tmp tools_fixdep FORCE
+	$(Q)$(MAKE) $(build)=tools/kconfig KCONFIG_ALLCONFIG=$< $@
 
 else # !config-build
 
@@ -238,9 +243,15 @@ ifeq ($(need-config),y)
 # changes are detected.
 -include include/config/auto.conf.cmd
 
+# This allows make to build fixdep before invoking defconfig. We can't use
+# "tools_fixdep" which is a .PHONY target and would force make to call
+# "defconfig" again to update $(KCONFIG_CONFIG).
+tools/fixdep:
+	$(MAKE) -C tools fixdep
+
 # Allow people to just run `make` as before and not force them to configure
-$(KCONFIG_CONFIG):
-	$(MAKE) $(kconfig) defconfig
+$(KCONFIG_CONFIG): tools/fixdep
+	$(Q)$(MAKE) $(build)=tools/kconfig defconfig
 
 # The actual configuration files used during the build are stored in
 # include/generated/ and include/config/. Update them if .config is newer than
@@ -249,7 +260,7 @@ $(KCONFIG_CONFIG):
 # This exploits the 'multi-target pattern rule' trick.
 # The syncconfig should be executed only once to make all the targets.
 include/config/%.conf include/config/%.conf.cmd: $(KCONFIG_CONFIG)
-	$(MAKE) $(kconfig) syncconfig
+	$(Q)$(MAKE) $(build)=tools/kconfig syncconfig
 
 ifeq ($(CONFIG_DEBUG),y)
 CFLAGS += -O1
@@ -409,9 +420,10 @@ _clean:
 	$(MAKE) $(clean) arch/riscv
 	$(MAKE) $(clean) arch/x86
 	$(MAKE) $(clean) test
-	$(MAKE) $(kconfig) clean
+	$(MAKE) $(clean) tools/kconfig
 	find . \( -name "*.o" -o -name ".*.d" -o -name ".*.d2" \
 		-o -name ".*.o.tmp" -o -name "*~" -o -name "core" \
+		-o -name '*.lex.c' -o -name '*.tab.[ch]' \
 		-o -name "*.gcno" -o -name ".*.cmd" -o -name "lib.a" \) -exec rm -f {} \;
 	rm -f include/asm $(TARGET) $(TARGET).gz $(TARGET).efi $(TARGET).efi.map $(TARGET)-syms $(TARGET)-syms.map *~ core
 	rm -f asm-offsets.s arch/*/include/asm/asm-offsets.h
diff --git a/xen/Rules.mk b/xen/Rules.mk
index d32fec0ae037..f452a821cc86 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -89,6 +89,13 @@ subdir-y        := $(addprefix $(obj)/,$(subdir-y))
 nocov-y         := $(addprefix $(obj)/,$(nocov-y))
 noubsan-y       := $(addprefix $(obj)/,$(noubsan-y))
 
+# Do not include hostprogs rules unless needed.
+# $(sort ...) is used here to remove duplicated words and excessive spaces.
+hostprogs-y := $(sort $(hostprogs-y))
+ifneq ($(hostprogs-y),)
+include scripts/Makefile.host
+endif
+
 # subdir-builtin may contain duplications. Use $(sort ...)
 subdir-builtin := $(sort $(filter %/built_in.o, $(obj-y)))
 
@@ -267,7 +274,11 @@ intermediate_targets = $(foreach sfx, $(2), \
 				$(patsubst %$(strip $(1)),%$(sfx), \
 					$(filter %$(strip $(1)), $(targets))))
 # %.init.o <- %.o
-targets += $(call intermediate_targets, .init.o, .o)
+# %.lex.o <- %.lex.c <- %.l
+# %.tab.o <- %.tab.[ch] <- %.y
+targets += $(call intermediate_targets, .init.o, .o) \
+	   $(call intermediate_targets, .lex.o, .lex.c) \
+	   $(call intermediate_targets, .tab.o, .tab.c .tab.h)
 
 # Build
 # ---------------------------------------------------------------------------
diff --git a/xen/scripts/Kbuild.include b/xen/scripts/Kbuild.include
index 6be38301e835..79b42e1252d6 100644
--- a/xen/scripts/Kbuild.include
+++ b/xen/scripts/Kbuild.include
@@ -25,6 +25,37 @@ real-prereqs = $(filter-out $(PHONY), $^)
 # Escape single quote for use in echo statements
 escsq = $(subst $(squote),'\$(squote)',$1)
 
+###
+# Easy method for doing a status message
+       kecho := :
+ quiet_kecho := echo
+silent_kecho := :
+kecho := $($(quiet)kecho)
+
+###
+# filechk is used to check if the content of a generated file is updated.
+# Sample usage:
+#
+# filechk_sample = echo $(KERNELRELEASE)
+# version.h: FORCE
+#	$(call filechk,sample)
+#
+# The rule defined shall write to stdout the content of the new file.
+# The existing file will be compared with the new one.
+# - If no file exist it is created
+# - If the content differ the new file is used
+# - If they are equal no change, and no timestamp update
+define filechk
+	$(Q)set -e;						\
+	mkdir -p $(dir $@);					\
+	trap "rm -f $(dot-target).tmp" EXIT;			\
+	{ $(filechk_$(1)); } > $(dot-target).tmp;		\
+	if [ ! -r $@ ] || ! cmp -s $@ $(dot-target).tmp; then	\
+		$(kecho) '  UPD     $@';			\
+		mv -f $(dot-target).tmp $@;			\
+	fi
+endef
+
 # as-insn: Check whether assembler supports an instruction.
 # Usage: cflags-y += $(call as-insn,CC FLAGS,"insn",option-yes,option-no)
 as-insn = $(if $(shell echo 'void _(void) { asm volatile ( $(2) ); }' \
diff --git a/xen/scripts/Makefile.clean b/xen/scripts/Makefile.clean
index c3b0681611da..156d6307cf83 100644
--- a/xen/scripts/Makefile.clean
+++ b/xen/scripts/Makefile.clean
@@ -17,8 +17,17 @@ include $(src)/Makefile
 subdir-all := $(subdir-y) $(subdir-n) $(subdir-) \
               $(patsubst %/,%, $(filter %/, $(obj-y) $(obj-n) $(obj-)))
 
+__clean-files := \
+    $(clean-files) $(hostprogs-y) $(hostprogs-)
+
+__clean-files := $(wildcard $(__clean-files))
+
 .PHONY: clean
-clean:: $(subdir-all) ;
+clean:: $(subdir-all)
+ifneq ($(strip $(__clean-files)),)
+	rm -rf $(__clean-files)
+endif
+	@:
 
 # Descending
 # ---------------------------------------------------------------------------
diff --git a/xen/tools/kconfig/Makefile.host b/xen/scripts/Makefile.host
similarity index 95%
rename from xen/tools/kconfig/Makefile.host
rename to xen/scripts/Makefile.host
index 4c51c95d40f4..8a85f94316bc 100644
--- a/xen/tools/kconfig/Makefile.host
+++ b/xen/scripts/Makefile.host
@@ -1,5 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 
+# target with $(obj)/ and its suffix stripped
+target-stem = $(basename $(patsubst $(obj)/%,%,$@))
+
 # LEX
 # ---------------------------------------------------------------------------
 quiet_cmd_flex = LEX     $@
@@ -114,7 +117,7 @@ quiet_cmd_host-cmulti	= HOSTLD  $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cmulti): FORCE
 	$(call if_changed,host-cmulti)
-$(call multi_depend, $(host-cmulti), , -objs)
+$(call multi-depend, $(host-cmulti), , -objs)
 
 # Create .o file from a single .c file
 # host-cobjs -> .o
@@ -132,7 +135,7 @@ quiet_cmd_host-cxxmulti	= HOSTLD  $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
 $(host-cxxmulti): FORCE
 	$(call if_changed,host-cxxmulti)
-$(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
+$(call multi-depend, $(host-cxxmulti), , -objs -cxxobjs)
 
 # Create .o file from a single .cc (C++) file
 quiet_cmd_host-cxxobjs	= HOSTCXX $@
@@ -165,7 +168,7 @@ quiet_cmd_host-cshlib	= HOSTLLD -shared $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cshlib): FORCE
 	$(call if_changed,host-cshlib)
-$(call multi_depend, $(host-cshlib), .so, -objs)
+$(call multi-depend, $(host-cshlib), .so, -objs)
 
 # Link a shared library, based on position independent .o files
 # *.o -> .so shared library (host-cxxshlib)
@@ -175,7 +178,7 @@ quiet_cmd_host-cxxshlib	= HOSTLLD -shared $@
 			  $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem).so)
 $(host-cxxshlib): FORCE
 	$(call if_changed,host-cxxshlib)
-$(call multi_depend, $(host-cxxshlib), .so, -objs)
+$(call multi-depend, $(host-cxxshlib), .so, -objs)
 
 targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)\
 	   $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
diff --git a/xen/tools/kconfig/Makefile b/xen/tools/kconfig/Makefile
index f39521a0ed5b..b7b9a419ad59 100644
--- a/xen/tools/kconfig/Makefile
+++ b/xen/tools/kconfig/Makefile
@@ -91,6 +91,9 @@ endif
 
 configfiles=$(wildcard $(srctree)/kernel/configs/$@ $(srctree)/arch/$(SRCARCH)/configs/$@)
 
+# Don't try to remake this file included by Config.mk.
+$(XEN_ROOT)/.config: ;
+
 %.config: $(obj)/conf
 	$(if $(call configfiles),, $(error No configuration exists for this target on this architecture))
 	$(Q)$(CONFIG_SHELL) $(srctree)/tools/kconfig/merge_config.sh -m .config $(configfiles)
diff --git a/xen/tools/kconfig/Makefile.kconfig b/xen/tools/kconfig/Makefile.kconfig
deleted file mode 100644
index 799321ec4d07..000000000000
--- a/xen/tools/kconfig/Makefile.kconfig
+++ /dev/null
@@ -1,106 +0,0 @@
-# xen/tools/kconfig
-
-# default rule to do nothing
-all:
-
-# Xen doesn't have a silent build flag
-quiet :=
-Q :=
-kecho := :
-
-# eventually you'll want to do out of tree builds
-srctree := $(BASEDIR)
-objtree := $(srctree)
-src := tools/kconfig
-obj := $(src)
-
-# handle functions (most of these lifted from different Linux makefiles
-dot-target = $(dir $@).$(notdir $@)
-depfile = $(subst $(comma),,$(dot-target).d)
-basetarget = $(basename $(notdir $@))
-# target with $(obj)/ and its suffix stripped
-target-stem = $(basename $(patsubst $(obj)/%,%,$@))
-cmd = $(cmd_$(1))
-if_changed = $(cmd_$(1))
-if_changed_dep = $(cmd_$(1))
-
-###
-# filechk is used to check if the content of a generated file is updated.
-# Sample usage:
-#
-# filechk_sample = echo $(KERNELRELEASE)
-# version.h: FORCE
-#	$(call filechk,sample)
-#
-# The rule defined shall write to stdout the content of the new file.
-# The existing file will be compared with the new one.
-# - If no file exist it is created
-# - If the content differ the new file is used
-# - If they are equal no change, and no timestamp update
-# - stdin is piped in from the first prerequisite ($<) so one has
-#   to specify a valid file as first prerequisite (often the kbuild file)
-define filechk
-	$(Q)set -e;				\
-	mkdir -p $(dir $@);			\
-	{ $(filechk_$(1)); } > $@.tmp;		\
-	if [ -r $@ ] && cmp -s $@ $@.tmp; then	\
-		rm -f $@.tmp;			\
-	else					\
-		$(kecho) '  UPD     $@';	\
-		mv -f $@.tmp $@;		\
-	fi
-endef
-
-define multi_depend
-$(foreach m, $(notdir $1), \
-	$(eval $(obj)/$m: \
-	$(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s)))))))
-endef
-
-# Set our default defconfig file
-KBUILD_DEFCONFIG := $(ARCH)_defconfig
-
-# provide our shell
-CONFIG_SHELL := $(SHELL)
-
-# provide the host compiler
-HOSTCC ?= gcc
-HOSTCXX ?= g++
-YACC = $(if $(BISON),$(BISON),bison)
-LEX = $(if $(FLEX),$(FLEX),flex)
-
-# force target
-PHONY += FORCE
-
-FORCE:
-
-# include the original Makefile and Makefile.host from Linux
-include $(src)/Makefile
-include $(src)/Makefile.host
-
-# Add intermediate targets:
-# When building objects with specific suffix patterns, add intermediate
-# targets that the final targets are derived from.
-intermediate_targets = $(foreach sfx, $(2), \
-				$(patsubst %$(strip $(1)),%$(sfx), \
-					$(filter %$(strip $(1)), $(targets))))
-
-# %.lex.o <- %.lex.c <- %.l
-# %.tab.o <- %.tab.[ch] <- %.y
-targets += $(call intermediate_targets, .lex.o, .lex.c) \
-	   $(call intermediate_targets, .tab.o, .tab.c .tab.h)
-
-# clean up rule
-clean-deps = $(foreach f,$(host-cobjs) $(host-cxxobjs),$(dir $f).$(notdir $f).d)
-clean-shipped = $(patsubst %_shipped,%,$(wildcard $(obj)/*_shipped))
-
-clean:
-	rm -rf $(clean-files)
-	rm -rf $(clean-deps)
-	rm -rf $(host-csingle) $(host-cmulti) $(host-cxxmulti) $(host-cobjs) $(host-cxxobjs)
-	rm -rf $(clean-shipped)
-
-$(obj)/zconf%: $(src)/zconf%_shipped
-	cp -f $< $@
-
-.PHONY: $(PHONY)
-- 
Anthony PERARD



  parent reply	other threads:[~2021-11-25 13:48 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-25 13:39 [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build! Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 01/47] build: factorise generation of the linker scripts Anthony PERARD
2021-12-14 16:54   ` Julien Grall
2021-12-14 17:09     ` Anthony PERARD
2021-12-14 17:12       ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 02/47] xen: move include/asm-* to arch/*/include/asm Anthony PERARD
2021-12-02 13:54   ` Jan Beulich
2021-12-14 16:59   ` Julien Grall
2021-12-14 17:39   ` Andrew Cooper
2021-11-25 13:39 ` [XEN PATCH v8 03/47] build: generate "include/xen/compile.h" with if_changed Anthony PERARD
2021-12-02 13:57   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 04/47] build: set XEN_BUILD_EFI earlier Anthony PERARD
2021-12-02 14:06   ` Jan Beulich
2021-12-07 11:04     ` Anthony PERARD
2021-12-07 11:24       ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 05/47] build: adjust $(TARGET).efi creation in arch/arm Anthony PERARD
2021-12-14 17:01   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 06/47] build: avoid re-executing the main Makefile by introducing build.mk Anthony PERARD
2021-12-06 16:42   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 07/47] build: set ALL_OBJS to main Makefile; move prelink.o to main Makefile Anthony PERARD
2021-12-06 16:52   ` Jan Beulich
2021-12-07 11:23     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 08/47] build: prepare to always invoke $(MAKE) from xen/, use $(obj) Anthony PERARD
2021-12-14 17:02   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 09/47] build: rework test/livepatch/Makefile Anthony PERARD
2021-12-06 17:00   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 10/47] build: rework cloc recipe Anthony PERARD
2021-12-06 17:03   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 11/47] build: fix enforce unique symbols for recent clang version Anthony PERARD
2021-12-07 10:23   ` Jan Beulich
2021-12-07 11:33     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 12/47] build: build everything from the root dir, use obj=$subdir Anthony PERARD
2021-12-07 11:10   ` Jan Beulich
2021-12-16 11:08     ` Anthony PERARD
2021-12-20 11:29       ` Anthony PERARD
2021-12-21  7:55         ` Jan Beulich
2021-12-21  9:30           ` Anthony PERARD
2021-12-14 17:03   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 13/47] build: introduce if_changed_deps Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 14/47] build: rename __LINKER__ to LINKER_SCRIPT Anthony PERARD
2021-12-14 17:05   ` Julien Grall
2021-12-15  7:49     ` Jan Beulich
2021-12-15  9:20       ` Julien Grall
2021-11-25 13:39 ` Anthony PERARD [this message]
2021-11-25 13:39 ` [XEN PATCH v8 16/47] xen/tools/kconfig: fix build with -Wdeclaration-after-statement Anthony PERARD
2021-12-07 11:20   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 17/47] build: remove KBUILD_ specific from Makefile.host Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 18/47] build: handle always-y and hostprogs-always-y Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 19/47] build: start building the tools with the main makefiles Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 20/47] build: add headers path to CFLAGS once for all archs Anthony PERARD
2021-12-14 17:06   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 21/47] build: generate x86's asm-macros.h with filechk Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 22/47] build: clean-up "clean" rules of duplication Anthony PERARD
2021-12-14 17:07   ` Julien Grall
2021-11-25 13:39 ` [XEN PATCH v8 23/47] build: rework "clean" to clean from the root dir Anthony PERARD
2021-12-10 13:29   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 24/47] build: use main rune to build host binary x86's mkelf32 and mkreloc Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 25/47] build: rework coverage and ubsan CFLAGS handling Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 26/47] build,x86: remove the need for build32.mk Anthony PERARD
2021-12-21 13:33   ` Jan Beulich
2022-01-18 10:50     ` Anthony PERARD
2022-01-18 13:44       ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 27/47] build: grab common EFI source files in arch specific dir Anthony PERARD
2021-12-21 13:53   ` Jan Beulich
2022-01-18 11:06     ` Anthony PERARD
2022-01-18 13:49       ` Jan Beulich
2022-01-18 16:49         ` Anthony PERARD
2022-01-18 16:21       ` Anthony PERARD
2022-01-19  7:46         ` Jan Beulich
2022-01-20 10:16           ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 28/47] build: replace $(BASEDIR) by $(objtree) Anthony PERARD
2021-12-21 13:55   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 29/47] build: replace $(BASEDIR) and use $(srctree) Anthony PERARD
2021-12-21 14:00   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 30/47] build: rework "headers*.chk" prerequisite in include/ Anthony PERARD
2021-12-21 14:07   ` Jan Beulich
2022-01-18 11:41     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 31/47] build: specify source tree in include/ for prerequisite Anthony PERARD
2021-12-21 14:16   ` Jan Beulich
2022-01-18 12:14     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 32/47] build: shuffle main Makefile Anthony PERARD
2021-12-21 14:18   ` Jan Beulich
2022-01-20 17:27     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 33/47] build: adding out-of-tree support to the xen build Anthony PERARD
2022-01-10 11:26   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 34/47] build: add %.E targets Anthony PERARD
2021-12-16 11:18   ` Andrew Cooper
2021-12-16 11:56     ` Anthony PERARD
2021-12-21 14:20   ` Jan Beulich
2021-11-25 13:39 ` [XEN PATCH v8 35/47] RFC, no-VPATH: Kconfig: tell where Kconfig files are Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 36/47] RFC, no-VPATH: Kconfig: only ready auto.conf from objtree Anthony PERARD
2021-12-21 14:23   ` Jan Beulich
2021-12-21 15:12     ` Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 37/47] RFC, no-VPATH: build: remove --include-dir option from MAKEFLAGS Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 38/47] WIP, no-VPATH: rework Makefile.host Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 39/47] RFC, no-VPATH: x86/boot: workaround gcc including the wrong file Anthony PERARD
2021-11-25 13:39 ` [XEN PATCH v8 40/47] RFC, no-VPATH: prepend $(srctree) to source prerequisite Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 41/47] WIP, no-VPATH: build object from generated C files Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 42/47] RFC, no-VPATH: workaround includes in xsm/flask Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 43/47] WIP, no-VPATH: build object from generated assembly source file Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 44/47] WIP, no-VPATH: build object from S source to be in build_in.o Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 45/47] WIP, no-VPATH: build xen, out-of-tree! Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 46/47] RFC, no-VPATH: remove check for clean source tree for out-of-tree builds Anthony PERARD
2021-11-25 13:40 ` [XEN PATCH v8 47/47] WIP: no more link farming for xen-shim Anthony PERARD
2021-12-21 15:26 ` [XEN PATCH v8 00/47] xen: Build system improvements, now with out-of-tree build! Jan Beulich
2022-01-10 11:19   ` Jan Beulich
2022-01-18 10:33   ` Anthony PERARD
2022-01-21  6:59 ` Jan Beulich
2022-01-21 10:34   ` Anthony PERARD
2022-01-21 10:58     ` Jan Beulich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211125134006.1076646-16-anthony.perard@citrix.com \
    --to=anthony.perard@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=cardoe@cardoe.com \
    --cc=george.dunlap@citrix.com \
    --cc=iwj@xenproject.org \
    --cc=jbeulich@suse.com \
    --cc=julien@xen.org \
    --cc=sstabellini@kernel.org \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).