[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [XEN PATCH v6 20/31] build: generate "include/xen/compile.h" with filechk


  • To: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • From: Jan Beulich <jbeulich@xxxxxxxx>
  • Date: Thu, 5 Aug 2021 09:20:10 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2EMomkWaxoZzXGsUzuFH1inaUAtedG0NP/A7yzsiF6c=; b=eawMkEAQxheX3VbP1IqkpfLQIFKH9o2QuWkf+wROpC4qf/3EYaYn+xGFurOs9NrV+hHMWEfsA4W+LpJg+r57TXMViVz1TxtePnpn3h9Y+JpGC/Zgx38TFqGKcgPV0bSXUxwujYh06QfukNhvnVTJ37auPEJ6xL7ISRlBhQIZ1BpZs3CSFVpj5vN9gdZeippRY7NDyk9lMXI/Zp8rw7+UGDHXB0kPcwH9aiRfXUfQ3/PF1Yv62Tpvm7rpm1xsdyGuTAP4rCO5cjAsqg8+1Eskj3V8AJNXGPqBsg1mx69nPOuwowzzUI/UyUBk7JrvRMyDCzWg/N/seDyn9DswzdtjYg==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V/fYqp5AxZtTZc0fdbdOIeWDuVEqvD6q7rUqEtDsD+hOu7zQ1WGa2s9WmowcSpbQeKiBJsNl6MSPY8uGG0Tl0yYhaKTzbFB1utzvNydV4IXXyZcfZCwF2Hqhb8AugEocYeGXnpK4rupv6Ek/eIBrlQmoc0EWZj3GzOATsejPoqdsVMtYxvkVp8aouYo5kRGfrONavEYnNDgDYRZueQ4qlTAtmqWmOgq37Rsv367akUBqyQxxWg6vWhcJBkazYkZ9QAGb4df5VYli0AjArIqZbl8gSoNADb658dKSZ0BOPaAe5zeTqXnyrUWQPJwYtxnR5VvTeaJcT1JYWPnXEcZsGw==
  • Authentication-results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=suse.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, George Dunlap <george.dunlap@xxxxxxxxxx>, Ian Jackson <iwj@xxxxxxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 05 Aug 2021 07:20:19 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 01.07.2021 16:10, Anthony PERARD wrote:
> This will always try regenerate the content of compile.h, but if it
> didn't change the file isn't updated.
> 
> Also, as it's currently the case, the file isn't regenerated during
> `sudo make install` if it exist and does belong to a different user.
> 
> Thus, we can remove the target "delete-unfresh-files".
> Target $(TARGET) still need a phony dependency, so add FORCE.
> 
> This patch imports the macro 'filechk' from Linux v5.12.

Would you mind clarifying why $(if_changed ...) cannot be used here
(unlike for .banner in the earlier patch)?

> @@ -413,22 +405,29 @@ endef
>       $(call if_changed,banner)
>  targets += .banner
>  
> -# compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
> -include/xen/compile.h: include/xen/compile.h.in .banner
> -     @sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
> -         -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
> -         -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
> -         -e 's/@@domain@@/$(XEN_DOMAIN)/g' \
> -         -e 's/@@hostname@@/$(XEN_BUILD_HOST)/g' \
> -         -e 's!@@compiler@@!$(shell $(CC) $(CFLAGS) --version 2>&1 | head 
> -1)!g' \
> -         -e 's/@@version@@/$(XEN_VERSION)/g' \
> -         -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
> -         -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
> -         -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo 
> "unavailable")!g' \
> -         < include/xen/compile.h.in > $@.new
> +# Don't refresh this files during e.g., 'sudo make install'
> +define filechk_compile.h
> +    if [ ! -r $@ -o -O $@ ]; then \
> +    sed -e 's/@@date@@/$(XEN_BUILD_DATE)/g' \
> +        -e 's/@@time@@/$(XEN_BUILD_TIME)/g' \
> +        -e 's/@@whoami@@/$(XEN_WHOAMI)/g' \
> +        -e 's/@@domain@@/$(XEN_DOMAIN)/g' \
> +        -e 's/@@hostname@@/$(XEN_BUILD_HOST)/g' \
> +        -e 's!@@compiler@@!$(shell $(CC) $(CFLAGS) --version 2>&1 | head 
> -1)!g' \
> +        -e 's/@@version@@/$(XEN_VERSION)/g' \
> +        -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
> +        -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
> +        -e 's!@@changeset@@!$(shell tools/scmversion $(XEN_ROOT) || echo 
> "unavailable")!g' \
> +     < $<; \
> +    sed -rf tools/process-banner.sed < .banner; \
> +    else \
> +     cat $@; \
> +    fi

Just like "cat" I think the "sed" invocations should be indented deeper
than if/else/fi.

Jan




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.