define buildmakevars2file-closure
.PHONY: genpath
genpath:
- rm -f $(1); \
- echo "SBINDIR=\"$(SBINDIR)\"" >> $(1); \
- echo "BINDIR=\"$(BINDIR)\"" >> $(1); \
- echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1); \
- echo "LIBDIR=\"$(LIBDIR)\"" >> $(1); \
- echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1); \
- echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1); \
- echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1); \
- echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1); \
- echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1)
+ rm -f $(1).tmp; \
+ echo "SBINDIR=\"$(SBINDIR)\"" >> $(1).tmp; \
+ echo "BINDIR=\"$(BINDIR)\"" >> $(1).tmp; \
+ echo "LIBEXEC=\"$(LIBEXEC)\"" >> $(1).tmp; \
+ echo "LIBDIR=\"$(LIBDIR)\"" >> $(1).tmp; \
+ echo "SHAREDIR=\"$(SHAREDIR)\"" >> $(1).tmp; \
+ echo "PRIVATE_BINDIR=\"$(PRIVATE_BINDIR)\"" >> $(1).tmp; \
+ echo "XENFIRMWAREDIR=\"$(XENFIRMWAREDIR)\"" >> $(1).tmp; \
+ echo "XEN_CONFIG_DIR=\"$(XEN_CONFIG_DIR)\"" >> $(1).tmp; \
+ echo "XEN_SCRIPT_DIR=\"$(XEN_SCRIPT_DIR)\"" >> $(1).tmp; \
+ if ! cmp $(1).tmp $(1); then mv -f $(1).tmp $(1); fi
endef
ifeq ($(debug),y)
@rm -f $*.[ch]
$(FLEX) --header-file=$*.h --outfile=$*.c $<
-genpath-target = $(call buildmakevars2file,_libxl_paths.h)
+genpath-target = $(call buildmakevars2file,_libxl_paths.h.tmp)
$(eval $(genpath-target))
_libxl_paths.h: genpath
- sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@ >_$@
- mv _$@ $@
+ sed -e "s/\([^=]*\)=\(.*\)/#define \1 \2/g" $@.tmp >$@.2.tmp
+ if ! cmp $@.2.tmp $@; then mv -f $@.2.tmp $@; fi
libxl_paths.c: _libxl_paths.h