On 2017-04-12 13:38, 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]>
> Tested-by: Ralf Ramsauer <[email protected]>
> 

[side note: didn't you patch hg to produce diffstats?]

> 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
> +
> +FILE_CONFIG_MK := $(obj)/hypervisor/include/generated/config.mk
> +export FILE_CONFIG_MK

I would rather prefer GENERATED_CONFIG_MK and, for consistency,
GENERATED_VERSION_H. Leave a note on the changelog about this renaming
such as

"Rename CONFIG_MK var at this chance to avoid confusing it to be a
tunable itself. Chose a consistent name for VERSION_H as well."


> +$(FILE_CONFIG_MK): $(src)/Makefile FORCE
> +     $(call filechk,config_mk)
> +
> +define filechk_version
> +     $(src)/scripts/gen_version_h $(src)/
> +endef
> +
> +FILE_VERSION_H := $(obj)/hypervisor/include/generated/version.h
> +export FILE_VERSION_H
> +$(FILE_VERSION_H): $(src)/Makefile FORCE
> +     $(call filechk,version)
> +
> +FORCE:
> +
>  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: $(FILE_VERSION_H)
> +$(obj)/hypervisor $(obj)/inmates $(obj)/driver: $(FILE_CONFIG_MK)
>  
> -clean-dirs := Documentation/generated
> +clean-dirs := Documentation/generated hypervisor/include/generated

Sorry, but there is still one cosmetic remaining: "make clean" checks
and generates the two files. I'm looking for a pattern that allows to
express the proper dependency without causing this, but maybe you have
an idea as well.

Yeah, surgeries on the build system are never simple...

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.

Reply via email to