From e454ca3ec585793728632070befd28959f1377b6 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 13 Dec 2022 13:25:06 +0100 Subject: [PATCH] Cygwin: Makefile: only regenerate cygwin_version.c if it changes Make sure to create a new cygwin_version.c if it either doesn't exist yet, or if it would be different from the former file. This avoids unnecessary DLL rebuilding. Fixes: 97eb64b909bc ("Cygwin: uname: generate default release string from git as well") Fixes: 4949a82cde98 ("Cygwin: uname: fix building in non-git source dir") Signed-off-by: Corinna Vinschen --- winsup/cygwin/Makefile.am | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/Makefile.am b/winsup/cygwin/Makefile.am index e61f72716..cf12b97f8 100644 --- a/winsup/cygwin/Makefile.am +++ b/winsup/cygwin/Makefile.am @@ -419,12 +419,20 @@ dirs = $(srcdir) $(srcdir)/fhandler $(srcdir)/lib $(srcdir)/libc $(srcdir)/math find_src_files = $(wildcard $(dir)/*.[chS]) $(wildcard $(dir)/*.cc) src_files := $(foreach dir,$(dirs),$(find_src_files)) +# Regenerate uname_version.c only if it doesn't exist or if it differs +# from the former uname_version.c uname_version.c: .FORCE $(AM_V_GEN)cd $(srcdir) && \ echo "const char *uname_dev_version = \ \"$$(git rev-parse --git-dir >/dev/null 2>&1 && \ git describe --dirty | sed -e 's/cygwin-//')\";" \ - > $(abs_builddir)/uname_version.c + > $(abs_builddir)/uname_version-pre.c && \ + if [ -f $(abs_builddir)/uname_version.c ] && \ + cmp $(abs_builddir)/uname_version.c \ + $(abs_builddir)/uname_version-pre.c >/dev/null 2>&1 ; \ + then :; else \ + mv $(abs_builddir)/uname_version-pre.c \ + $(abs_builddir)/uname_version.c; fi .FORCE: # mkvers.sh creates version.cc in the first place, winver.o always -- 2.43.5