automatic arch-version.h update; CTCP support; helpfile fixes; disk-out-of-space...
[srvx.git] / src / Makefile.am
index c31f287bb1350e0edd6ca7abd522abc7e1dc7f8c..f605f8632aff520f6c4029d23274c64420c64885 100644 (file)
@@ -7,13 +7,19 @@ noinst_DATA = chanserv.help global.help modcmd.help nickserv.help opserv.help sa
 EXTRA_DIST = $(noinst_DATA)
 BUILT_SOURCES = arch-version.h
 noinst_HEADERS = arch-version.h
-arch-version.h:
-       @if [ -e $@ ] ; then OLD_REVISION=`cat $@` ; else OLD_REVISION="" ; fi ; \
-       ARCH_REVISION=`tla logs -f | tail -n 1` ; \
-       VERSION_CONTENTS="#define ARCH_VERSION \"$$ARCH_REVISION\"" ; \
-       if [ "z" != "z$$ARCH_REVISION" -a "z$$OLD_REVISION" != "z$$VERSION_CONTENTS" ] ; then \
-           echo "Putting new arch version into $@" ; \
-           echo $$VERSION_CONTENTS > $@ ; \
+
+.PHONY: checkversion
+arch-version.h: checkversion
+checkversion:
+       @tla logs -f >/dev/null || exit 0; \
+       TMPFILE=`mktemp arch-version.h.XXXXXX` || exit 1 ; \
+       echo "#define ARCH_VERSION \"`tla logs -f | tail -n 1`\"" >> $$TMPFILE ; \
+       if diff -q arch-version.h $$TMPFILE >/dev/null 2>&1 ; then \
+           rm $$TMPFILE ; \
+        else \
+           echo "Putting new arch version into arch-version.h" ; \
+           rm -f arch-version.h ; \
+           mv $$TMPFILE arch-version.h ; \
        fi
 
 EXTRA_srvx_SOURCES = proto-bahamut.c proto-common.c proto-p10.c mod-snoop.c mod-memoserv.c mod-helpserv.c mod-sockcheck.c