|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH v7 16/51] build: generate "include/xen/compile.h" with if_changed
This will avoid regenerating "compile.h" if the content hasn't changed.
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".
Use "$(dot-target).tmp" as temporary file as this is already cover by
".*.tmp" partern in ".gitconfig".
Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
Notes:
v7:
- Use $(if_changed,) instead of importing a new macro from Linux
(filechk).
- use $(dot-target).tmp as temporary file, that way is hiden, and
already cover by .gitignore via ".*.tmp". (filechk was doing the same)
- update .gitignore.
.gitignore | 1 -
xen/Makefile | 34 +++++++++++++++++-----------------
2 files changed, 17 insertions(+), 18 deletions(-)
diff --git a/.gitignore b/.gitignore
index bc964663d25c..59a22d1685e2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -332,7 +332,6 @@ xen/include/compat/*
xen/include/config/
xen/include/generated/
xen/include/public/public
-xen/include/xen/*.new
xen/include/xen/acm_policy.h
xen/include/xen/compile.h
xen/include/xen/lib/x86/cpuid-autogen.h
diff --git a/xen/Makefile b/xen/Makefile
index da1b8ddb97ff..b408d35b4af0 100644
--- a/xen/Makefile
+++ b/xen/Makefile
@@ -351,7 +351,7 @@ _debug:
$(OBJDUMP) -D -S $(TARGET)-syms > $(TARGET).s
.PHONY: _clean
-_clean: delete-unfresh-files
+_clean:
$(MAKE) -C tools clean
$(MAKE) $(clean) include
$(MAKE) $(clean) common
@@ -368,7 +368,7 @@ _clean: delete-unfresh-files
-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
- rm -f .banner
+ rm -f .banner include/xen/compile.h
.PHONY: _distclean
_distclean: clean
@@ -378,7 +378,7 @@ $(TARGET).gz: $(TARGET)
gzip -n -f -9 < $< > $@.new
mv $@.new $@
-$(TARGET): delete-unfresh-files
+$(TARGET): FORCE
$(MAKE) -C tools
$(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
[ -e arch/$(TARGET_ARCH)/efi ] && for f in $$(cd common/efi; echo
*.[ch]); \
@@ -391,14 +391,6 @@ $(TARGET): delete-unfresh-files
$(MAKE) -f $(BASEDIR)/Rules.mk
arch/$(TARGET_ARCH)/include/asm/asm-offsets.h
$(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $@
-# drivers/char/console.o contains static banner/compile info. Blow it away.
-# Don't refresh these files during e.g., 'sudo make install'
-.PHONY: delete-unfresh-files
-delete-unfresh-files:
- @if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \
- rm -f include/xen/compile.h; \
- fi
-
quiet_cmd_banner = BANNER $@
define cmd_banner
if which figlet >/dev/null 2>&1 ; then \
@@ -413,9 +405,11 @@ 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' \
+# Don't refresh this files during e.g., 'sudo make install'
+quiet_cmd_compile.h = UPD $@
+define cmd_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' \
@@ -425,10 +419,16 @@ include/xen/compile.h: include/xen/compile.h.in .banner
-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
+ < $< > $(dot-target).tmp; \
+ sed -rf tools/process-banner.sed < .banner >> $(dot-target).tmp; \
+ mv -f $(dot-target).tmp $@; \
+ fi
+endef
+
+include/xen/compile.h: include/xen/compile.h.in .banner FORCE
@cat .banner
- @sed -rf tools/process-banner.sed < .banner >> $@.new
- @mv -f $@.new $@
+ $(call if_changed,compile.h)
+targets += include/xen/compile.h
asm-offsets.s: arch/$(TARGET_ARCH)/$(TARGET_SUBARCH)/asm-offsets.c
$(CC) $(call cpp_flags,$(c_flags)) -S -g0 -o $@.new -MQ $@ $<
--
Anthony PERARD
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |