From c06383f2a77bc993db272f7447fbda7653303766 Mon Sep 17 00:00:00 2001 From: wdlkmpx Date: Wed, 16 Jun 2021 22:08:00 -0500 Subject: [PATCH 1/4] store autoconf scripts/macros in autoconf/autoconf-m4 --- .gitignore | 2 ++ Makefile.am | 2 +- autogen.sh | 15 +++++++++++++-- configure.ac | 3 ++- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index e61d398..6620f4c 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ stamp-h1 .deps .libs src/gtkballs +autoconf +autoconf-m4 diff --git a/Makefile.am b/Makefile.am index e3c4c7a..32e840b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -16,4 +16,4 @@ install-data-hook: if [ "${UID}" = 0 ]; then chgrp games $(DESTDIR)$(localstatedir)/gtkballs-scores; fi chmod 0664 $(DESTDIR)$(localstatedir)/gtkballs-scores -ACLOCAL_AMFLAGS = -I m4 +ACLOCAL_AMFLAGS = -I autoconf-m4 diff --git a/autogen.sh b/autogen.sh index dd1407f..09c84b5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -18,15 +18,26 @@ if test "$1" == "verbose" || test "$1" == "--verbose" ; then verbose2='--debug' fi +# pre-create some dirs / files +auxdir='.' +if grep -q "AC_CONFIG_AUX_DIR" configure.ac ; then + auxdir="$(grep AC_CONFIG_AUX_DIR configure.ac | cut -f 2 -d '[' | cut -f 1 -d ']')" +fi +mkdir -p ${auxdir} +touch ${auxdir}/config.rpath +m4dir="$(grep AC_CONFIG_MACRO_DIR configure.ac | cut -f 2 -d '[' | cut -f 1 -d ']')" +if test -n "$m4dir" ; then + mkdir -p ${m4dir} +fi + # Get all required m4 macros required for configure $LIBTOOLIZE ${verbose} --copy --force || exit 1 -$ACLOCAL ${verbose} -I m4 || exit 1 +$ACLOCAL ${verbose} || exit 1 # Generate config.h.in $AUTOHEADER ${verbose} --force || exit 1 # Generate Makefile.in's -touch config.rpath $AUTOMAKE ${verbose} --add-missing --copy --force || exit 1 if grep "IT_PROG_INTLTOOL" configure.ac >/dev/null ; then diff --git a/configure.ac b/configure.ac index 47670a1..92aad05 100644 --- a/configure.ac +++ b/configure.ac @@ -2,11 +2,12 @@ # Process this file with autoconf to produce a configure script. AC_INIT([gtkballs],[3.1.5],[]) +AC_CONFIG_AUX_DIR([autoconf]) +AC_CONFIG_MACRO_DIR([autoconf-m4]) AM_INIT_AUTOMAKE([-Wall foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADER(config.h) -AC_CONFIG_MACRO_DIR([m4]) AM_GNU_GETTEXT([external]) m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) m4_ifdef([AM_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) From 0b18d62ab111589d42e250872b089839597c3732 Mon Sep 17 00:00:00 2001 From: wdlkmpx Date: Wed, 16 Jun 2021 22:17:09 -0500 Subject: [PATCH 2/4] add po/Makefile.in.in avoid these 2 obscure macros in configure.ac: - IT_PROG_INTLTOOL - AM_GLIB_GNU_GETTEXT --- .gitignore | 1 - autogen.sh | 10 --- configure.ac | 6 -- po/Makefile.in.in | 198 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 198 insertions(+), 17 deletions(-) create mode 100644 po/Makefile.in.in diff --git a/.gitignore b/.gitignore index 6620f4c..9ca4ee2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.so *.o ar-lib -po/Makefile.in.in po/POTFILES po/*.gmo stamp-it diff --git a/autogen.sh b/autogen.sh index 09c84b5..001c45b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -40,16 +40,6 @@ $AUTOHEADER ${verbose} --force || exit 1 # Generate Makefile.in's $AUTOMAKE ${verbose} --add-missing --copy --force || exit 1 -if grep "IT_PROG_INTLTOOL" configure.ac >/dev/null ; then - intltoolize ${verbose2} -c --automake --force || exit 1 - # po/Makefile.in.in has these lines: - # mostlyclean: - # rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp - # prevent $(GETTEXT_PACKAGE).pot from being deleted by `make clean` - sed 's/pox \$(GETTEXT_PACKAGE).pot/pox/' po/Makefile.in.in > po/Makefile.in.inx - mv -f po/Makefile.in.inx po/Makefile.in.in -fi - # generate configure $AUTOCONF ${verbose} --force || exit 1 diff --git a/configure.ac b/configure.ac index 92aad05..0039c72 100644 --- a/configure.ac +++ b/configure.ac @@ -9,14 +9,10 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_CONFIG_HEADER(config.h) AM_GNU_GETTEXT([external]) -m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) m4_ifdef([AM_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) LT_INIT -# Init intltool -IT_PROG_INTLTOOL - # Checks for programs. AC_PROG_CC AC_CHECK_HEADERS([sys/param.h signal.h]) @@ -66,8 +62,6 @@ GETTEXT_PACKAGE=gtkballs AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.]) -AM_GLIB_GNU_GETTEXT - case "$CC" in gcc*) CPPFLAGS="$CPPFLAGS -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" ;; *) ;; diff --git a/po/Makefile.in.in b/po/Makefile.in.in new file mode 100644 index 0000000..1f4ab37 --- /dev/null +++ b/po/Makefile.in.in @@ -0,0 +1,198 @@ +# Makefile for program source directory in GNU NLS utilities package. +# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper +# +# This file file be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# Please note that the actual code is *not* freely available. +# +# - Modified by Owen Taylor to use GETTEXT_PACKAGE +# instead of PACKAGE and to look for po2tbl in ./ not in intl/ +# +# - Modified by jacob berkman to install +# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ + +SHELL = @SHELL@ +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ +subdir = po + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +CC = @CC@ +GENCAT = gencat +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +#MSGFMT_OPTS = -c +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge + +POFILES = @POFILES@ +GMOFILES = @GMOFILES@ +DISTFILES = LINGUAS Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot $(POFILES) $(GMOFILES) + +POTFILES = \ + +CATALOGS = @CATALOGS@ + +.SUFFIXES: +.SUFFIXES: .po .pox .gmo .mo .msg .cat + +.po.pox: + $(MAKE) $(GETTEXT_PACKAGE).pot + $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox + +.po.mo: + $(MSGFMT) -o $@ $< + +.po.gmo: + $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ + && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< + +.po.cat: + sed -f ../intl/po2msg.sed < $< > $*.msg \ + && rm -f $@ && $(GENCAT) $@ $*.msg + + +all: all-@USE_NLS@ + +all-yes: $(CATALOGS) +all-no: + +$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ + --add-comments --keyword=_ --keyword=N_ \ + --keyword=C_:1c,2 \ + --keyword=NC_:1c,2 \ + --keyword=g_dcgettext:2 \ + --keyword=g_dngettext:2,3 \ + --keyword=g_dpgettext2:2c,3 \ + --flag=N_:1:pass-c-format \ + --flag=C_:2:pass-c-format \ + --flag=NC_:2:pass-c-format \ + --flag=g_dngettext:2:pass-c-format \ + --flag=g_strdup_printf:1:c-format \ + --flag=g_string_printf:2:c-format \ + --flag=g_string_append_printf:2:c-format \ + --flag=g_error_new:3:c-format \ + --flag=g_set_error:4:c-format \ + --flag=g_markup_printf_escaped:1:c-format \ + --flag=g_log:3:c-format \ + --flag=g_print:1:c-format \ + --flag=g_printerr:1:c-format \ + --flag=g_printf:1:c-format \ + --flag=g_fprintf:2:c-format \ + --flag=g_sprintf:2:c-format \ + --flag=g_snprintf:3:c-format \ + --flag=g_scanner_error:2:c-format \ + --flag=g_scanner_warn:2:c-format \ + $(POTFILES) \ + && test ! -f $(GETTEXT_PACKAGE).po \ + || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ + && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) + +install: install-exec install-data +install-exec: +install-data: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + destdir=$(localedir); \ + lang=`echo $$cat | sed 's/\.gmo$$//'`; \ + dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ + mkdir -p $$dir; \ + if test -r $$cat; then \ + $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE).mo"; \ + else \ + $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE).mo"; \ + fi; \ + if test -r $$cat.m; then \ + $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + if test -r $(srcdir)/$$cat.m ; then \ + $(INSTALL_DATA) $(srcdir)/$$cat.m \ + $$dir/$(GETTEXT_PACKAGE).mo.m; \ + echo "installing $(srcdir)/$$cat as" \ + "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ + else \ + true; \ + fi; \ + fi; \ + done + +uninstall: + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\.gmo$$//'`; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ + done + +check: all + +dvi info ctags tags CTAGS TAGS ID: + +mostlyclean: + rm -f core core.* *.pox *.old.po cat-id-tbl.tmp + +clean: mostlyclean + +distclean: clean + rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m $(GMOFILES) + +update-po: Makefile + rm -f $(GETTEXT_PACKAGE).pot + $(MAKE) $(GETTEXT_PACKAGE).pot + tmpdir=`pwd`; \ + cd $(srcdir); \ + catalogs='$(CATALOGS)'; \ + for cat in $$catalogs; do \ + cat=`basename $$cat`; \ + lang=`echo $$cat | sed 's/\.gmo$$//'`; \ + printf " %s " "$$lang"; \ + if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ + if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ + rm -f $$tmpdir/$$lang.new.po; \ + else \ + if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ + :; \ + else \ + echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ + rm -f $$tmpdir/$$lang.new.po; \ + exit 1; \ + fi; \ + fi; \ + else \ + echo "msgmerge for $$cat failed!"; \ + rm -f $$tmpdir/$$lang.new.po; \ + fi; \ + done + +# POTFILES.in: ./autogen.sh linguas +POTFILES: + cp POTFILES.in POTFILES + +Makefile: Makefile.in.in ../config.status POTFILES + cd .. \ + && $(SHELL) ./config.status $(subdir)/$@.in From 694de859a7fa2b57f5dd07255c160ee02df0a77e Mon Sep 17 00:00:00 2001 From: wdlkmpx Date: Wed, 16 Jun 2021 22:18:35 -0500 Subject: [PATCH 3/4] update LINGUAS and POTFILES.in --- autogen.sh | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ po/LINGUAS | 3 +-- po/POTFILES.in | 21 +++++--------------- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/autogen.sh b/autogen.sh index 001c45b..a97c6d9 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,6 +1,58 @@ #!/bin/sh # Run this to generate all the initial makefiles, etc. +# special params: +# - po update .pot & po files +# - linguas update LINGUAS and POTFILES.in +# - release create release tarball + +#=========================================================================== + +if test "$1" = "po" ; then + # Before creating a release you might want to update the po files + test -d "po/" || exit + #git clean -dfx + test -f ./configure || ./autogen.sh + test -f ./po/Makefile || ./configure + find po -name '*.pot' -delete # updates don't happen if pot files already exist... + make -C po update-po + # cleanup + rm -f po/*.po~ + #sed -i '/#~ /d' po/*.po + #git clean -dfx + exit +fi + +if test "$1" = "linguas" ; then + test -d "po/" || exit + pot_in=$(grep '_(' $(find . -type f -name '*.h' -or -name '*.c') | sed -e 's%^\./%%' -e 's%:.*%%' | sort -u) + echo "${pot_in}" > po/POTFILES.in + linguas=$(find po -name '*.po' | sed -e 's%.*/%%' -e 's%\.po%%' | sort) + echo ${linguas} > po/LINGUAS + exit +fi + +#=========================================================================== + +if test "$1" == "release" || test "$1" == "--release" ; then + pkg="$(grep -m 1 AC_INIT configure.ac | cut -f 2 -d '[' | cut -f 1 -d ']')" + ver="$(grep -m 1 AC_INIT configure.ac | cut -f 3 -d '[' | cut -f 1 -d ']')" + ver=$(echo $ver) + dir=${pkg}-${ver} + rm -rf ../$dir + mkdir -p ../$dir + cp -rf $PWD/* ../$dir + ( cd ../$dir ; ./autogen.sh ) + cd .. + tar -Jcf ${dir}.tar.xz $dir + exit +fi + + +#=========================================================================== +# autogen.sh [--verbose] +#=========================================================================== + srcdir=`dirname $0` test -z "$srcdir" && srcdir=. cd $srcdir diff --git a/po/LINGUAS b/po/LINGUAS index 169db25..4a8a049 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1 @@ -# Set of available languages. -ru fr de pl nl +de fr pl ru diff --git a/po/POTFILES.in b/po/POTFILES.in index b7f0a9a..0ca8745 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,24 +1,13 @@ -# List of files which containing translatable strings. - -# Package source files src/about.c -src/child.c -src/gfx.c src/gtkballs.c -src/gtkutils.c -src/license.c +src/gtkballs.h +src/halloffame.c +src/inputname.c src/mainmenu.c src/mainwin.c -src/path.c src/preferences.c src/prefs.c src/rules.c -src/scoreboard.c -src/themerc.c -src/theme.c -src/savegame.c -src/savedialog.c -src/halloffame.c -src/inputname.c src/rulesdialog.c -src/game.c +src/savedialog.c +src/scoreboard.c From 4dbebefc584e14ab2fedf43ee06d83f4fb40a8d1 Mon Sep 17 00:00:00 2001 From: wdlkmpx Date: Sat, 19 Jun 2021 23:04:36 -0500 Subject: [PATCH 4/4] po/Makefile.in.gen generates po/Makefile.in --- .gitignore | 4 +- autogen.sh | 12 ++- configure.ac | 4 +- po/LINGUAS | 1 - po/Makefile.in | 88 ++++++++++++++++++++ po/Makefile.in.gen | 97 ++++++++++++++++++++++ po/Makefile.in.in | 198 --------------------------------------------- po/POTFILES.in | 13 --- po/readme.txt | 6 ++ 9 files changed, 201 insertions(+), 222 deletions(-) delete mode 100644 po/LINGUAS create mode 100644 po/Makefile.in create mode 100755 po/Makefile.in.gen delete mode 100644 po/Makefile.in.in delete mode 100644 po/POTFILES.in create mode 100644 po/readme.txt diff --git a/.gitignore b/.gitignore index 9ca4ee2..6072582 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,8 @@ *.o ar-lib po/POTFILES -po/*.gmo +*.gmo +*.mo stamp-it compile config.guess @@ -20,6 +21,7 @@ libtool ltmain.sh Makefile Makefile.in +!po/Makefile.in m4 missing stamp-h1 diff --git a/autogen.sh b/autogen.sh index a97c6d9..ced54a5 100755 --- a/autogen.sh +++ b/autogen.sh @@ -24,12 +24,8 @@ if test "$1" = "po" ; then fi if test "$1" = "linguas" ; then - test -d "po/" || exit - pot_in=$(grep '_(' $(find . -type f -name '*.h' -or -name '*.c') | sed -e 's%^\./%%' -e 's%:.*%%' | sort -u) - echo "${pot_in}" > po/POTFILES.in - linguas=$(find po -name '*.po' | sed -e 's%.*/%%' -e 's%\.po%%' | sort) - echo ${linguas} > po/LINGUAS - exit + ./po/Makefile.in.gen + exit $? fi #=========================================================================== @@ -83,7 +79,9 @@ if test -n "$m4dir" ; then fi # Get all required m4 macros required for configure -$LIBTOOLIZE ${verbose} --copy --force || exit 1 +if grep -q LT_INIT configure.ac ; then + $LIBTOOLIZE ${verbose} --copy --force || exit 1 +fi $ACLOCAL ${verbose} || exit 1 # Generate config.h.in diff --git a/configure.ac b/configure.ac index 0039c72..8cdd5af 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ AC_CONFIG_HEADER(config.h) AM_GNU_GETTEXT([external]) m4_ifdef([AM_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) -LT_INIT +#L#T_INIT # Checks for programs. AC_PROG_CC @@ -74,7 +74,7 @@ AC_CONFIG_FILES([ src/Makefile doc/Makefile doc/gtkballs.6x - po/Makefile.in + po/Makefile gtkballs.spec gtkballs-data/Makefile ]) diff --git a/po/LINGUAS b/po/LINGUAS deleted file mode 100644 index 4a8a049..0000000 --- a/po/LINGUAS +++ /dev/null @@ -1 +0,0 @@ -de fr pl ru diff --git a/po/Makefile.in b/po/Makefile.in new file mode 100644 index 0000000..4ae3e0b --- /dev/null +++ b/po/Makefile.in @@ -0,0 +1,88 @@ + +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +@SET_MAKE@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +#MSGFMT_OPTS = -c +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge + +MOFILES = de.mo fr.mo nl.mo pl.mo ru.mo +LINGUAS = de fr nl pl ru +POTFILES = ../src/about.c ../src/gtkballs.c ../src/gtkballs.h ../src/halloffame.c ../src/inputname.c ../src/mainmenu.c ../src/mainwin.c ../src/preferences.c ../src/prefs.c ../src/rules.c ../src/rulesdialog.c ../src/savedialog.c ../src/scoreboard.c + +#.SUFFIXES: .po .gmo .mo +#.po.mo: +# $(GMSGFMT) $(MSGFMT_OPTS) -o `echo $* | sed "s,.*/,,"`.mo $< + +all: all-@USE_NLS@ +all-yes: $(MOFILES) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ + --add-comments --keyword=_ --keyword=N_ --from-code=UTF-8 \ + -o $(GETTEXT_PACKAGE).pot $(POTFILES) + +install: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + catalogs="$(LINGUAS)"; \ + for cat in $$catalogs; do \ + dir=$(DESTDIR)$(localedir)/$$cat/LC_MESSAGES; \ + mkdir -p $$dir; \ + $(INSTALL_DATA) $$cat.mo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$cat.mo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + done + +uninstall: + catalogs="$(LINGUAS)"; \ + for cat in $$catalogs; do \ + echo "rm -f $(DESTDIR)$(localedir)/$$cat/LC_MESSAGES/$(GETTEXT_PACKAGE).mo"; \ + rm -f $(DESTDIR)$(localedir)/$$cat/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + done + +mostlyclean: + rm -f *.pox *.old.po *.new.po *.mo *.gmo *.msg *.cat *.cat.m + +clean: mostlyclean + +distclean: clean + rm -f Makefile POTFILES + +update-po: Makefile + rm -f $(GETTEXT_PACKAGE).pot + $(MAKE) $(GETTEXT_PACKAGE).pot + catalogs="$(LINGUAS)"; \ + for lang in $$catalogs; do \ + printf " %s " "$$lang"; \ + if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$lang.new.po; then \ + mv -f $$lang.new.po $$lang.po || exit 1; \ + else \ + echo "msgmerge for $$lang failed!"; \ + rm -f $$lang.new.po; \ + fi; \ + done + +de.mo: + $(GMSGFMT) $(MSGFMT_OPTS) -o de.mo de.po +fr.mo: + $(GMSGFMT) $(MSGFMT_OPTS) -o fr.mo fr.po +nl.mo: + $(GMSGFMT) $(MSGFMT_OPTS) -o nl.mo nl.po +pl.mo: + $(GMSGFMT) $(MSGFMT_OPTS) -o pl.mo pl.po +ru.mo: + $(GMSGFMT) $(MSGFMT_OPTS) -o ru.mo ru.po diff --git a/po/Makefile.in.gen b/po/Makefile.in.gen new file mode 100755 index 0000000..0226044 --- /dev/null +++ b/po/Makefile.in.gen @@ -0,0 +1,97 @@ +#!/bin/sh +# https://unlicense.org + +cd $(dirname "$0") + +POFILES="$(ls *.po)" +MOFILES="$(echo "$POFILES" | sed 's/\.po$/.mo/')" +LINGUAS="$(echo "$POFILES" | sed 's/\.po$//')" +filez=$(find .. -type f -name '*.h' -or -name '*.c' -or -name '*.cc' -or -name '*.cpp' -or -name '*.hh') +POTFILES="$(grep '_(' $filez | sed -e 's%^\./%%' -e 's%:.*%%' | sort -u)" + +echo ' +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +@SET_MAKE@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +datadir = @datadir@ +localedir = @localedir@ + +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ + +GMSGFMT = @GMSGFMT@ +MSGFMT = @MSGFMT@ +#MSGFMT_OPTS = -c +XGETTEXT = @XGETTEXT@ +MSGMERGE = msgmerge + +MOFILES = '${MOFILES}' +LINGUAS = '${LINGUAS}' +POTFILES = '${POTFILES}' + +#.SUFFIXES: .po .gmo .mo +#.po.mo: +# $(GMSGFMT) $(MSGFMT_OPTS) -o `echo $* | sed "s,.*/,,"`.mo $< + +all: all-@USE_NLS@ +all-yes: $(MOFILES) +all-no: + +$(GETTEXT_PACKAGE).pot: $(POTFILES) + $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ + --add-comments --keyword=_ --keyword=N_ --from-code=UTF-8 \ + -o $(GETTEXT_PACKAGE).pot $(POTFILES) + +install: install-data-@USE_NLS@ +install-data-no: all +install-data-yes: all + catalogs="$(LINGUAS)"; \ + for cat in $$catalogs; do \ + dir=$(DESTDIR)$(localedir)/$$cat/LC_MESSAGES; \ + mkdir -p $$dir; \ + $(INSTALL_DATA) $$cat.mo $$dir/$(GETTEXT_PACKAGE).mo; \ + echo "installing $$cat.mo as $$dir/$(GETTEXT_PACKAGE).mo"; \ + done + +uninstall: + catalogs="$(LINGUAS)"; \ + for cat in $$catalogs; do \ + echo "rm -f $(DESTDIR)$(localedir)/$$cat/LC_MESSAGES/$(GETTEXT_PACKAGE).mo"; \ + rm -f $(DESTDIR)$(localedir)/$$cat/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ + done + +mostlyclean: + rm -f *.pox *.old.po *.new.po *.mo *.gmo *.msg *.cat *.cat.m + +clean: mostlyclean + +distclean: clean + rm -f Makefile POTFILES + +update-po: Makefile + rm -f $(GETTEXT_PACKAGE).pot + $(MAKE) $(GETTEXT_PACKAGE).pot + catalogs="$(LINGUAS)"; \ + for lang in $$catalogs; do \ + printf " %s " "$$lang"; \ + if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$lang.new.po; then \ + mv -f $$lang.new.po $$lang.po || exit 1; \ + else \ + echo "msgmerge for $$lang failed!"; \ + rm -f $$lang.new.po; \ + fi; \ + done +' > Makefile.in + +( +for i in ${LINGUAS} +do + echo "${i}.mo:" + echo " \$(GMSGFMT) \$(MSGFMT_OPTS) -o ${i}.mo ${i}.po" +done +) >> Makefile.in diff --git a/po/Makefile.in.in b/po/Makefile.in.in deleted file mode 100644 index 1f4ab37..0000000 --- a/po/Makefile.in.in +++ /dev/null @@ -1,198 +0,0 @@ -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper -# -# This file file be copied and used freely without restrictions. It can -# be used in projects which are not available under the GNU Public License -# but which still want to provide support for the GNU gettext functionality. -# Please note that the actual code is *not* freely available. -# -# - Modified by Owen Taylor to use GETTEXT_PACKAGE -# instead of PACKAGE and to look for po2tbl in ./ not in intl/ -# -# - Modified by jacob berkman to install -# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize - -GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ -PACKAGE = @PACKAGE@ -VERSION = @VERSION@ - -SHELL = @SHELL@ -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datarootdir = @datarootdir@ -datadir = @datadir@ -localedir = @localedir@ -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -CC = @CC@ -GENCAT = gencat -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -#MSGFMT_OPTS = -c -XGETTEXT = @XGETTEXT@ -MSGMERGE = msgmerge - -POFILES = @POFILES@ -GMOFILES = @GMOFILES@ -DISTFILES = LINGUAS Makefile.in.in POTFILES.in $(GETTEXT_PACKAGE).pot $(POFILES) $(GMOFILES) - -POTFILES = \ - -CATALOGS = @CATALOGS@ - -.SUFFIXES: -.SUFFIXES: .po .pox .gmo .mo .msg .cat - -.po.pox: - $(MAKE) $(GETTEXT_PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(GETTEXT_PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - $(AM_V_GEN) file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) $(MSGFMT_OPTS) -o $$file $< - -.po.cat: - sed -f ../intl/po2msg.sed < $< > $*.msg \ - && rm -f $@ && $(GENCAT) $@ $*.msg - - -all: all-@USE_NLS@ - -all-yes: $(CATALOGS) -all-no: - -$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) - $(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) \ - --add-comments --keyword=_ --keyword=N_ \ - --keyword=C_:1c,2 \ - --keyword=NC_:1c,2 \ - --keyword=g_dcgettext:2 \ - --keyword=g_dngettext:2,3 \ - --keyword=g_dpgettext2:2c,3 \ - --flag=N_:1:pass-c-format \ - --flag=C_:2:pass-c-format \ - --flag=NC_:2:pass-c-format \ - --flag=g_dngettext:2:pass-c-format \ - --flag=g_strdup_printf:1:c-format \ - --flag=g_string_printf:2:c-format \ - --flag=g_string_append_printf:2:c-format \ - --flag=g_error_new:3:c-format \ - --flag=g_set_error:4:c-format \ - --flag=g_markup_printf_escaped:1:c-format \ - --flag=g_log:3:c-format \ - --flag=g_print:1:c-format \ - --flag=g_printerr:1:c-format \ - --flag=g_printf:1:c-format \ - --flag=g_fprintf:2:c-format \ - --flag=g_sprintf:2:c-format \ - --flag=g_snprintf:3:c-format \ - --flag=g_scanner_error:2:c-format \ - --flag=g_scanner_warn:2:c-format \ - $(POTFILES) \ - && test ! -f $(GETTEXT_PACKAGE).po \ - || ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \ - && mv $(GETTEXT_PACKAGE).po $(srcdir)/$(GETTEXT_PACKAGE).pot ) - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - destdir=$(localedir); \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - dir=$(DESTDIR)$$destdir/$$lang/LC_MESSAGES; \ - mkdir -p $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $$cat as $$dir/$(GETTEXT_PACKAGE).mo"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(GETTEXT_PACKAGE).mo; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE).mo"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $$cat.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(GETTEXT_PACKAGE).mo.m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(GETTEXT_PACKAGE).mo.m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \ - rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \ - done - -check: all - -dvi info ctags tags CTAGS TAGS ID: - -mostlyclean: - rm -f core core.* *.pox *.old.po cat-id-tbl.tmp - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m $(GMOFILES) - -update-po: Makefile - rm -f $(GETTEXT_PACKAGE).pot - $(MAKE) $(GETTEXT_PACKAGE).pot - tmpdir=`pwd`; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - cat=`basename $$cat`; \ - lang=`echo $$cat | sed 's/\.gmo$$//'`; \ - printf " %s " "$$lang"; \ - if $(MSGMERGE) $$lang.po $(GETTEXT_PACKAGE).pot -o $$tmpdir/$$lang.new.po; then \ - if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ - rm -f $$tmpdir/$$lang.new.po; \ - else \ - if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ - :; \ - else \ - echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ - rm -f $$tmpdir/$$lang.new.po; \ - exit 1; \ - fi; \ - fi; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$tmpdir/$$lang.new.po; \ - fi; \ - done - -# POTFILES.in: ./autogen.sh linguas -POTFILES: - cp POTFILES.in POTFILES - -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && $(SHELL) ./config.status $(subdir)/$@.in diff --git a/po/POTFILES.in b/po/POTFILES.in deleted file mode 100644 index 0ca8745..0000000 --- a/po/POTFILES.in +++ /dev/null @@ -1,13 +0,0 @@ -src/about.c -src/gtkballs.c -src/gtkballs.h -src/halloffame.c -src/inputname.c -src/mainmenu.c -src/mainwin.c -src/preferences.c -src/prefs.c -src/rules.c -src/rulesdialog.c -src/savedialog.c -src/scoreboard.c diff --git a/po/readme.txt b/po/readme.txt new file mode 100644 index 0000000..2e7510d --- /dev/null +++ b/po/readme.txt @@ -0,0 +1,6 @@ + +There's no LINGUAS file.. + +Just run ./Makefile.in.gen whenever a .po file is added or removed.. +and when you want to update the $(POTFILES) (source files that contain translatable strings) +