Improved method of generating POTFILES.in
[pspp-builds.git] / Smake
diff --git a/Smake b/Smake
index 49f499fcc88e1406f578d5a83997c813cc75100a..c89247cb2f3833cb123e28ad6a08028985699727 100644 (file)
--- a/Smake
+++ b/Smake
@@ -1,4 +1,4 @@
-Makefile config.h: Makefile.in configure config.h.in install-sh
+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,19 +10,62 @@ config.h.in: configure.ac
 aclocal.m4:
        aclocal -I m4
 
+# We want all src/*.c files which do not have corresponding src/*.q
 
-install-sh Makefile.in: Makefile.am aclocal.m4 config.h.in
+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:
+       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
+
 
 
 .PHONY: clean
 clean:
        $(RM) config.sub config.guess
+       $(RM) ABOUT-NLS
        $(RM) -r autom4te.cache
        $(RM) aclocal.m4
        $(RM) missing mkinstalldirs
        $(RM) install-sh
-       $(RM) configure
+       $(RM) configure Makefile Makefile.in
        $(RM) depcomp
-
+       $(RM) -r m4 intl
+       $(RM) po/ChangeLog \
+       po/Makefile \
+       po/Makefile.in \
+       po/Makefile.in.in \
+       po/POTFILES \
+       po/POTFILES.in \
+       po/Rules-quot \
+       po/boldquot.sed \
+       po/cat-id-tbl.c \
+       po/en@boldquot.header \
+       po/en@quot.header \
+       po/insert-header.sin \
+       po/quot.sed \
+       po/remove-potcdate.sin \
+       po/stamp-po \
+       po/Makevars.template