Skip to content

Commit 991d398

Browse files
committed
include/Makefile.am, clients/Makefile.am: fix possible clashes of parallel re-generation of nut_version.h and/or libupsclient-version.h [networkupstools#2875]
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
1 parent 9adb266 commit 991d398

File tree

4 files changed

+25
-18
lines changed

4 files changed

+25
-18
lines changed

clients/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/libupsclient-version.h
2-
/libupsclient-version.h.tmp
2+
/libupsclient-version.h.tmp*
33
/upsimage.cgi
44
/upsset.cgi
55
/upsstats.cgi

clients/Makefile.am

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,10 @@ endif HAVE_WINDOWS
132132
# dlname='libupsclient-6.dll'
133133
# library_names='libupsclient.dll.a'
134134
# libdir='//lib'
135-
CLEANFILES += libupsclient-version.h libupsclient-version.h.tmp
135+
CLEANFILES += libupsclient-version.h libupsclient-version.h.tmp*
136136
libupsclient-version.h: libupsclient.la
137137
@echo " GENERATE-HEADER $@" ; \
138+
RES=0; \
138139
dlname_filter() { sed -e 's/^[^=]*=//' -e 's/^"\(.*\)"$$/\1/' -e 's/^'"'"'\(.*\)'"'"'$$/\1/' ; }; \
139140
SOFILE_LIBUPSCLIENT="`grep -E '^dlname' '$?' | dlname_filter`" \
140141
|| SOFILE_LIBUPSCLIENT="" ; \
@@ -144,19 +145,21 @@ libupsclient-version.h: libupsclient.la
144145
else \
145146
printf "#ifndef SOFILE_LIBUPSCLIENT\n# define SOFILE_LIBUPSCLIENT \"%s\"\n#endif\n\n" "$${SOFILE_LIBUPSCLIENT}" ; \
146147
printf "#ifndef SOPATH_LIBUPSCLIENT\n# define SOPATH_LIBUPSCLIENT \"%s/%s\"\n#endif\n\n" "@LIBDIR@" "$${SOFILE_LIBUPSCLIENT}" ; \
147-
fi > "$@".tmp
148-
@if test -f "$@" && test -s "$@" ; then \
149-
if cmp -s "$@.tmp" "$@" ; then \
148+
fi > "$@".tmp.$$$$ && \
149+
if test -f "$@" && test -s "$@" ; then \
150+
if cmp -s "$@.tmp.$$$$" "$@" ; then \
150151
echo " GENERATE-HEADER $@ did not change" ; \
151152
else \
152153
echo " GENERATE-HEADER $@ got changed" ; \
153-
cp "$@.tmp" "$@" ; \
154+
cp "$@.tmp.$$$$" "$@" ; \
154155
fi ; \
155156
else \
156157
echo " GENERATE-HEADER $@ was absent"; \
157-
cp "$@.tmp" "$@" ; \
158-
fi
159-
-rm -f "$@.tmp"
158+
cp "$@.tmp.$$$$" "$@" ; \
159+
fi \
160+
|| RES=$$?; \
161+
rm -f "$@.tmp.$$$$" ; \
162+
exit $$RES
160163

161164
if HAVE_CXX11
162165
# libnutclient version information and build

include/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/config.h
22
/config.h.in
33
/nut_version.h
4+
/nut_version.h.tmp*
45
/stamp-h1
56
/stamp-h.in

include/Makefile.am

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,15 @@ endif !WITH_DEV
3131

3232
# http://www.gnu.org/software/automake/manual/automake.html#Clean
3333
BUILT_SOURCES = nut_version.h
34-
CLEANFILES = nut_version.h
34+
CLEANFILES = nut_version.h nut_version.h.tmp*
3535
MAINTAINERCLEANFILES = Makefile.in .dirstamp
3636

3737
# magic to include Git version information in NUT version string
3838
# (for builds not made from the tagged commit in a Git workspace)
3939

4040
nut_version.h: @FORCE_NUT_VERSION@
4141
@echo " GENERATE-HEADER $@" ; \
42+
RES=0; \
4243
GITREV="`$(top_srcdir)/tools/gitlog2version.sh`" || GITREV=""; \
4344
GITREV_IS_RELEASE="`NUT_VERSION_QUERY=IS_RELEASE $(top_srcdir)/tools/gitlog2version.sh 2>/dev/null`" || GITREV_IS_RELEASE="false"; \
4445
GITREV_SEMVER="`NUT_VERSION_QUERY=SEMVER $(top_srcdir)/tools/gitlog2version.sh 2>/dev/null`" || GITREV_SEMVER=""; \
@@ -64,20 +65,22 @@ nut_version.h: @FORCE_NUT_VERSION@
6465
else \
6566
echo "#define NUT_VERSION_IS_RELEASE 0" ; \
6667
fi ; \
67-
} > "$@.tmp" && \
68-
echo "NUT_VERSION: \"$$NUT_VERSION\" NUT_VERSION_IS_RELEASE:$$GITREV_IS_RELEASE NUT_VERSION_SEMVER: \"$$GITREV_SEMVER\""
69-
@if test -f "$@" && test -s "$@" ; then \
70-
if cmp -s "$@.tmp" "$@" ; then \
68+
} > "$@.tmp.$$$$" && \
69+
echo "NUT_VERSION: \"$$NUT_VERSION\" NUT_VERSION_IS_RELEASE:$$GITREV_IS_RELEASE NUT_VERSION_SEMVER: \"$$GITREV_SEMVER\"" && \
70+
if test -f "$@" && test -s "$@" ; then \
71+
if cmp -s "$@.tmp.$$$$" "$@" ; then \
7172
echo " GENERATE-HEADER $@ did not change" ; \
7273
else \
7374
echo " GENERATE-HEADER $@ got changed" ; \
74-
cp "$@.tmp" "$@" ; \
75+
cp "$@.tmp.$$$$" "$@" ; \
7576
fi ; \
7677
else \
7778
echo " GENERATE-HEADER $@ was absent"; \
78-
cp "$@.tmp" "$@" ; \
79-
fi
80-
-rm -f "$@.tmp"
79+
cp "$@.tmp.$$$$" "$@" ; \
80+
fi \
81+
|| RES=$$? ; \
82+
rm -f "$@.tmp.$$$$" ; \
83+
exit $$RES
8184

8285
FORCE:
8386

0 commit comments

Comments
 (0)