On 2017-04-11 18:56, Henning Schild wrote:
> Move it up one level so the hypervisor core can make use of it
> itself.
>
> Signed-off-by: Henning Schild <[email protected]>
>
> diff --git a/Kbuild b/Kbuild
> --- a/Kbuild
> +++ b/Kbuild
> @@ -1,7 +1,7 @@
> #
> # Jailhouse, a Linux-based partitioning hypervisor
> #
> -# Copyright (c) Siemens AG, 2013-2015
> +# Copyright (c) Siemens AG, 2013-2017
> #
> # Authors:
> # Jan Kiszka <[email protected]>
> @@ -11,12 +11,40 @@
> # the COPYING file in the top-level directory.
> #
>
> +define filechk_config_mk
> +( \
> + echo "\$$(foreach config,\$$(filter CONFIG_%, \
> + \$$(.VARIABLES)), \$$(eval undefine \$$(config)))"; \
> + if [ -f $(src)/hypervisor/include/jailhouse/config.h ]; then \
> + sed -e "/^#define \([^[:space:]]*\)[[:space:]]*1/!d" \
> + -e "s/^#define \([^[:space:]]*\)[[:space:]]*1/\1=y/"\
> + $(src)/hypervisor/include/jailhouse/config.h; \
> + fi \
> +)
> +endef
> +
> +$(obj)/hypervisor/include/generated/config.mk: $(src)/Makefile FORCE
> + $(call filechk,config_mk)
> +
> +CONFIG_MK := $(obj)/hypervisor/include/generated/config.mk
I've just realized that you can make use of this variable also in
hypervisor/Makefile if you add
export CONFIG_MK
And then that makefile can re-export the var to the arch makefile as it
used to do it so far. Nicer than traversing via ../../...
> +
> +define filechk_version
> + $(src)/scripts/gen_version_h $(src)/
> +endef
> +
> +$(obj)/hypervisor/include/generated/version.h: $(src)/Makefile FORCE
> + $(call filechk,version)
> +
> +VERSION_H := $(obj)/hypervisor/include/generated/version.h
> +
> +FORCE:
Why this target, BTW?
> +
> subdir-y := driver hypervisor configs inmates tools
>
> subdir-ccflags-y := -Werror
>
> -# inmates build depends on generated config.mk of the hypervisor,
> -# and the driver needs version.h from there
> -$(obj)/inmates $(obj)/driver: $(obj)/hypervisor
> +# directory dependencies on generated files
> +$(obj)/driver $(obj)/hypervisor: $(VERSION_H)
> +$(obj)/hypervisor $(obj)/inmates $(obj)/driver: $(CONFIG_MK)
>
> -clean-dirs := Documentation/generated
> +clean-dirs := Documentation/generated hypervisor/include/generated
> diff --git a/hypervisor/Makefile b/hypervisor/Makefile
> --- a/hypervisor/Makefile
> +++ b/hypervisor/Makefile
> @@ -1,7 +1,7 @@
> #
> # Jailhouse, a Linux-based partitioning hypervisor
> #
> -# Copyright (c) Siemens AG, 2013-2016
> +# Copyright (c) Siemens AG, 2013-2017
> # Copyright (c) Valentine Sinitsyn, 2014
> #
> # Authors:
> @@ -35,26 +35,7 @@ GCOV_PROFILE := n
> CORE_OBJECTS = setup.o printk.o paging.o control.o lib.o mmio.o pci.o
> ivshmem.o
> CORE_OBJECTS += uart.o uart-8250.o
>
> -define filechk_config_mk
> -( \
> - echo "\$$(foreach config,\$$(filter CONFIG_%, \
> - \$$(.VARIABLES)), \$$(eval undefine \$$(config)))"; \
> - if [ -f $(src)/include/jailhouse/config.h ]; then \
> - sed -e "/^#define \([^[:space:]]*\)[[:space:]]*1/!d" \
> - -e "s/^#define \([^[:space:]]*\)[[:space:]]*1/\1=y/" \
> - $(src)/include/jailhouse/config.h; \
> - fi \
> -)
> -endef
> -
> -$(obj)/include/generated/config.mk: Makefile FORCE
> - $(call filechk,config_mk)
> -
> -define filechk_version
> - $(src)/../scripts/gen_version_h $(src)/..
> -endef
> -
> -clean-dirs := include/generated arch/$(SRCARCH)/include/generated
> +clean-dirs := arch/$(SRCARCH)/include/generated
>
> define sed-y
> "/^=>/{s:=>#\(.*\):/* \1 */:; \
> @@ -91,17 +72,13 @@ targets := $(defines-file) arch/$(SRCARC
> $(Q)mkdir -p $(dir $@)
> $(call cmd,defines)
>
> -$(obj)/include/generated/version.h: $(src)/Makefile FORCE
> - $(call filechk,version)
> -
> $(foreach co,$(CORE_OBJECTS),\
> $(eval $(obj)/$(co): $(obj)/$(defines-file)))
>
> $(obj)/setup.o: $(obj)/include/generated/version.h
>
> -arch-builtin: $(obj)/$(defines-file) $(obj)/include/generated/config.mk FORCE
> - $(Q)$(MAKE) $(build)=$(obj)/arch/$(SRCARCH) \
> - CONFIG_MK=$(obj)/include/generated/config.mk
> +arch-builtin: $(obj)/$(defines-file) FORCE
> + $(Q)$(MAKE) $(build)=$(obj)/arch/$(SRCARCH)
+ CONFIG_MK=$(CONFIG_MK), see above.
>
> always :=
>
> diff --git a/hypervisor/arch/arm-common/Kbuild
> b/hypervisor/arch/arm-common/Kbuild
> --- a/hypervisor/arch/arm-common/Kbuild
> +++ b/hypervisor/arch/arm-common/Kbuild
> @@ -1,7 +1,7 @@
> #
> # Jailhouse, a Linux-based partitioning hypervisor
> #
> -# Copyright (c) Siemens AG, 2013-2016
> +# Copyright (c) Siemens AG, 2013-2017
> #
> # Authors:
> # Jan Kiszka <[email protected]>
> @@ -10,7 +10,7 @@
> # the COPYING file in the top-level directory.
> #
>
> -include $(CONFIG_MK)
> +include $(obj)/../../include/generated/config.mk
And keep this.
>
> GCOV_PROFILE := n
>
> diff --git a/hypervisor/arch/x86/Kbuild b/hypervisor/arch/x86/Kbuild
> --- a/hypervisor/arch/x86/Kbuild
> +++ b/hypervisor/arch/x86/Kbuild
> @@ -1,7 +1,7 @@
> #
> # Jailhouse, a Linux-based partitioning hypervisor
> #
> -# Copyright (c) Siemens AG, 2013
> +# Copyright (c) Siemens AG, 2013-2017
> # Copyright (c) Valentine Sinitsyn, 2014
> #
> # Authors:
> @@ -12,6 +12,8 @@
> # the COPYING file in the top-level directory.
> #
>
> +include $(obj)/../../include/generated/config.mk
> +
> GCOV_PROFILE := n
>
> BUILT_IN_OBJECTS := built-in-amd.o built-in-intel.o
>
The x86 include isn't needed, right? But I agree that it's nicer to have
it for consistency reasons. Then I would just add it to
hypervisor/Makefile already in this patch and declare common availability.
Jan
--
Siemens AG, Corporate Technology, CT RDA ITP SES-DE
Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.