Improved method of generating POTFILES.in
[pspp-builds.git] / Smake
diff --git a/Smake b/Smake
index eae10349e95931c1f01a6450ee6157bf0ceec484..c89247cb2f3833cb123e28ad6a08028985699727 100644 (file)
--- a/Smake
+++ b/Smake
@@ -1,4 +1,4 @@
-Makefile po/Makefile.in: Makefile.in configure install-sh config.h.in po/Makefile.in.in
+Makefile po/Makefile.in: Makefile.in configure install-sh config.h.in po/Makefile.in.in po/POTFILES.in
        ./configure
 
 configure:  configure.ac aclocal.m4
@@ -10,12 +10,35 @@ config.h.in: configure.ac
 aclocal.m4:
        aclocal -I m4
 
+# We want all src/*.c files which do not have corresponding src/*.q
+
+src_q_files=$(wildcard src/*.q)
+src_c_files=$(wildcard src/*.c)
+src_cq_files=$(patsubst %.q, %.c, $(src_q_files))
+src_files=$(filter-out $(src_cq_files), $(src_c_files)) $(src_q_files)
+
+
+.PHONY: po/POTFILES.in
+po/POTFILES.in: 
+       @$(RM) po/potfile-temp
+       for f in $(src_files) ; do echo $$f >> po/potfile-temp ; done
+       @if ( ! test -e $@ ) || ( ! diff  -q po/potfile-temp $@ ) ; then  mv po/potfile-temp $@ ; else $(RM) po/potfile-temp ; fi
 
 install-sh Makefile.in: intl Makefile.am aclocal.m4 config.h.in ABOUT-NLS
        automake --add-missing
 
 po/Makefile.in.in intl ABOUT-NLS:
-       ./gettextize -f -c --no-changelog --intl
+       touch -f Makefile.am Makefile.am-stamp
+       touch -f configure.ac configure.ac-stamp
+       cp -a configure.ac configure.ac-bak
+       cp -a Makefile.am Makefile.am-bak
+       gettextize -f -c --no-changelog --intl
+       cp -a Makefile.am-bak Makefile.am
+       touch -f Makefile.am-stamp Makefile.am
+       cp -a configure.ac-bak configure.ac
+       touch -f configure.ac-stamp configure.ac
+       $(RM) configure.ac-bak configure.ac-stamp
+       $(RM) Makefile.am-bak Makefile.am-stamp
 
 
 
@@ -35,6 +58,7 @@ clean:
        po/Makefile.in \
        po/Makefile.in.in \
        po/POTFILES \
+       po/POTFILES.in \
        po/Rules-quot \
        po/boldquot.sed \
        po/cat-id-tbl.c \