From: Bruno Haible Date: Thu, 2 May 2002 13:40:52 +0000 (+0000) Subject: A new program: 'autopoint'. For CVS users. X-Git-Tag: v0.11.3~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b72042facd7e52d9a7aa8eb8a9bbe5e5b6ed0d0;p=thirdparty%2Fgettext.git A new program: 'autopoint'. For CVS users. --- diff --git a/ChangeLog b/ChangeLog index e5e4d1bba..0198e38fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-05-01 Bruno Haible + + * configure.in (AC_OUTPUT): Add misc/autopoint. Make misc/autopoint + executable. + 2002-05-01 Bruno Haible * INSTALL: Remove the recommendation to set CPPFLAGS and LDFLAGS. diff --git a/NEWS b/NEWS index cf3b8ec7c..629947386 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,11 @@ +Version 0.11.3 - May 2002 + +* New program: + autopoint - copies standard gettext infrastructure + +* The documentation makes it clear that 'gettextize' is a wizard and + migration tool. + Version 0.11.2 - April 2002 * Bug fixes in the gettext.m4 autoconf macros. diff --git a/configure.in b/configure.in index 1d228e025..1ca4aab8a 100644 --- a/configure.in +++ b/configure.in @@ -180,7 +180,7 @@ AC_OUTPUT([Makefile \ tests/Makefile \ m4/Makefile \ projects/Makefile \ - misc/Makefile misc/gettextize], [ + misc/Makefile misc/gettextize misc/autopoint], [ dnl Fix unesthetic build commands generated by automake. for m in lib/Makefile src/Makefile tests/Makefile; do sed -e "s,\`test -f \\\$< || echo '\\\$(srcdir)/'\`\\\$<,\\\$<," < $m > $m.tmp @@ -196,6 +196,6 @@ AC_OUTPUT([Makefile \ sed -e '/cd \$(srcdir) && rm -f /d' < $m > $m.tmp mv $m.tmp $m done - dnl Fix permissions of misc/gettextize. - chmod a+x misc/gettextize + dnl Fix permissions of misc/gettextize and misc/autopoint. + chmod a+x misc/gettextize misc/autopoint ]) diff --git a/doc/ChangeLog b/doc/ChangeLog index 5178a592b..3e6a36609 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -1,3 +1,11 @@ +2002-05-01 Bruno Haible + + * gettextize.texi: New file, mostly extracted from gettext.texi. + * autopoint.texi: New file. + * gettext.texi (gettextize Invocation): Move to gettextize.texi. + (CVS Issues): New section. + * Makefile.am (gettext_TEXINFOS): Add gettextize.texi, autopoint.texi. + 2002-04-28 Bruno Haible * gettext.texi (gettextize Invocation): Document option --dry-run. diff --git a/doc/Makefile.am b/doc/Makefile.am index 7d6e22b53..1007b72dd 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -36,7 +36,7 @@ gettext_TEXINFOS = \ xgettext.texi msginit.texi msgmerge.texi msgcat.texi msgconv.texi \ msggrep.texi msgfilter.texi msguniq.texi msgcomm.texi msgcmp.texi \ msgattrib.texi msgen.texi msgexec.texi msgfmt.texi msgunfmt.texi \ - iso-639.texi iso-3166.texi + gettextize.texi autopoint.texi iso-639.texi iso-3166.texi EXTRA_DIST = iso-639.sed iso-3166.sed ISO_639 ISO_3166 nls.texi matrix.texi texi2html diff --git a/doc/autopoint.texi b/doc/autopoint.texi new file mode 100644 index 000000000..7c726a19d --- /dev/null +++ b/doc/autopoint.texi @@ -0,0 +1,61 @@ +@pindex autopoint +@cindex @code{autopoint} program, usage +@example +autopoint [@var{option}]... +@end example + +The @code{autopoint} program copies standard gettext infrastructure files +into a source package. It extracts from an assignment of the form +@code{GETTEXT_VERSION=@var{version}}, found in the package's +@file{configure.in} or @file{configure.ac} file, the gettext version +used by the package, and copies the infrastructure files belonging to +this version into the package. + +@subsubsection Options + +@table @samp +@item -f +@itemx --force +@opindex -f@r{, @code{autopoint} option} +@opindex --force@r{, @code{autopoint} option} +Force overwriting of files that already exist. + +@item -n +@itemx --dry-run +@opindex -d@r{, @code{autopoint} option} +@opindex --dry-run@r{, @code{autopoint} option} +Print modifications but don't perform them. All file copying actions that +@code{autopoint} would normally execute are inhibited and instead only +listed on standard output. + +@end table + +@subsubsection Informative output + +@table @samp +@item --help +@opindex --help@r{, @code{autopoint} option} +Display this help and exit. + +@item --version +@opindex --version@r{, @code{autopoint} option} +Output version information and exit. + +@end table + +@code{autopoint} supports the GNU @code{gettext} versions from 0.10.35 to +the current one, @value{VERSION}. In order to apply @code{autopoint} to +a package using a @code{gettext} version newer than @value{VERSION}, you +need to install this same version of GNU @code{gettext} at least. + +In packages using GNU @code{automake}, an invocation of @code{autopoint} +should be followed by invocations of @code{aclocal} and then @code{autoconf} +and @code{autoheader}. The reason is that @code{autopoint} installs some +autoconf macro files, which are used by @code{aclocal} to create +@file{aclocal.m4}, and the latter is used by @code{autoconf} to create the +package's @file{configure} script and by @code{autoheader} to create the +package's @file{config.h.in} include file template. + +The name @samp{autopoint} is an abbreviation of @samp{auto-po-intl-m4}; +the tool copies or updates mostly files in the @file{po}, @file{intl}, +@file{m4} directories. diff --git a/doc/gettext.texi b/doc/gettext.texi index d9d1f1305..c0e4d379b 100644 --- a/doc/gettext.texi +++ b/doc/gettext.texi @@ -267,6 +267,7 @@ The Maintainer's View * gettextize Invocation:: Invoking the @code{gettextize} Program * Adjusting Files:: Files You Must Create or Alter * autoconf macros:: Autoconf macros for use in @file{configure.in} +* CVS Issues:: Integrating with CVS Files You Must Create or Alter @@ -288,6 +289,12 @@ Autoconf macros for use in @file{configure.in} * AM_GNU_GETTEXT:: AM_GNU_GETTEXT in @file{gettext.m4} * AM_ICONV:: AM_ICONV in @file{iconv.m4} +Integrating with CVS + +* Distributed CVS:: Avoiding version mismatch in distributed development +* Files under CVS:: Files to put under CVS version control +* autopoint Invocation:: Invoking the @code{autopoint} Program + Other Programming Languages * Language Implementors:: The Language Implementor's View @@ -5539,6 +5546,7 @@ for changes. * gettextize Invocation:: Invoking the @code{gettextize} Program * Adjusting Files:: Files You Must Create or Alter * autoconf macros:: Autoconf macros for use in @file{configure.in} +* CVS Issues:: Integrating with CVS @end menu @node Flat and Non-Flat, Prerequisites, Maintainers, Maintainers @@ -5655,131 +5663,7 @@ never try to @emph{solve} a team's problem on your own. @node gettextize Invocation, Adjusting Files, Prerequisites, Maintainers @section Invoking the @code{gettextize} Program -Some files are consistently and identically needed in every package -internationalized through GNU @code{gettext}. As a matter of -convenience, the @code{gettextize} program puts all these files right -in your package. This program has the following synopsis: - -@pindex gettextize -@cindex @code{gettextize} program, usage -@example -gettextize [ @var{option}@dots{} ] [ @var{directory} ] -@end example - -@noindent -and accepts the following options: - -@table @samp -@item -c -@itemx --copy -@opindex -c@r{, @code{gettextize} option} -@opindex --copy@r{, @code{gettextize} option} -Copy the needed files instead of making symbolic links. Using links -would allow the package to always use the latest @code{gettext} code -available on the system, but it might disturb some mechanism the -maintainer is used to apply to the sources. Because running -@code{gettextize} is easy there shouldn't be problems with using copies. - -@item -f -@itemx --force -@opindex -f@r{, @code{gettextize} option} -@opindex --force@r{, @code{gettextize} option} -Force replacement of files which already exist. - -@item --intl -@opindex --intl@r{, @code{gettextize} option} -Install the libintl sources in a subdirectory named @file{intl/}. -This libintl will be used to provide internationalization on systems -that don't have GNU libintl installed. If this option is omitted, -the call to @code{AM_GNU_GETTEXT} in @file{configure.in} should read: -@samp{AM_GNU_GETTEXT([external])}, and internationalization will not -be enabled on systems lacking GNU gettext. - -@item --no-changelog -@opindex --no-changelog@r{, @code{gettextize} option} -Don't update or create ChangeLog files. By default, @code{gettextize} -logs all changes (file additions, modifications ans removals) in a -file called @samp{ChangeLog} in each affected directory. - -@item -n -@itemx --dry-run -@opindex -d@r{, @code{gettextize} option} -@opindex --dry-run@r{, @code{gettextize} option} -Print modifications but don't perform them. All actions that -@code{gettextize} would normally execute are inhibited and instead only -listed on standard output. - -@item --help -@opindex --help@r{, @code{gettextize} option} -Display this help and exit. - -@item --version -@opindex --version@r{, @code{gettextize} option} -Output version information and exit. - -@end table - -If @var{directory} is given, this is the top level directory of a -package to prepare for using GNU @code{gettext}. If not given, it -is assumed that the current directory is the top level directory of -such a package. - -The program @code{gettextize} provides the following files. However, -no existing file will be replaced unless the option @code{--force} -(@code{-f}) is specified. - -@enumerate -@item -The @file{ABOUT-NLS} file is copied in the main directory of your package, -the one being at the top level. This file gives the main indications -about how to install and use the Native Language Support features -of your program. You might elect to use a more recent copy of this -@file{ABOUT-NLS} file than the one provided through @code{gettextize}, -if you have one handy. You may also fetch a more recent copy of file -@file{ABOUT-NLS} from Translation Project sites, and from most GNU -archive sites. - -@item -A @file{po/} directory is created for eventually holding -all translation files, but initially only containing the file -@file{po/Makefile.in.in} from the GNU @code{gettext} distribution. -(beware the double @samp{.in} in the file name) and a few auxiliary -files. If the @file{po/} directory already exists, it will be preserved -along with the files it contains, and only @file{Makefile.in.in} and -the auxiliary files will be overwritten. - -@item -Only if @samp{--intl} has been specified: -A @file{intl/} directory is created and filled with most of the files -originally in the @file{intl/} directory of the GNU @code{gettext} -distribution. Also, if option @code{--force} (@code{-f}) is given, -the @file{intl/} directory is emptied first. - -@item -The @file{config.rpath} file is copied into the directory containing -configuration support files. It is needed by the @code{AM_GNU_GETTEXT} -autoconf macro. - -@end enumerate - -If your site support symbolic links, @code{gettextize} will not -actually copy the files into your package, but establish symbolic -links instead. This avoids duplicating the disk space needed in -all packages. Merely using the @samp{-h} option while creating the -@code{tar} archive of your distribution will resolve each link by an -actual copy in the distribution archive. So, to insist, you really -should use @samp{-h} option with @code{tar} within your @code{dist} -goal of your main @file{Makefile.in}. - -It is interesting to understand that most new files for supporting -GNU @code{gettext} facilities in one package go in @file{intl/} -and @file{po/} subdirectories. One distinction between these two -directories is that @file{intl/} is meant to be completely identical -in all packages using GNU @code{gettext}, while all newly created -files, which have to be different, go into @file{po/}. There is a -common @file{Makefile.in.in} in @file{po/}, because the @file{po/} -directory needs its own @file{Makefile}, and it has been designed so -it can be identical in all packages. +@include gettextize.texi @node Adjusting Files, autoconf macros, gettextize Invocation, Maintainers @section Files You Must Create or Alter @@ -6347,7 +6231,7 @@ In other packages, it can go into the @file{src} directory. Do not install the @code{gettext.h} file in public locations. Every package that needs it should contain a copy of it on its own. -@node autoconf macros, , Adjusting Files, Maintainers +@node autoconf macros, CVS Issues, Adjusting Files, Maintainers @section Autoconf macros for use in @file{configure.in} @cindex autoconf macros for @code{gettext} @@ -6493,6 +6377,130 @@ library support, like SCO. @file{iconv.m4} is distributed with the GNU gettext package because @file{gettext.m4} relies on it. +@node CVS Issues, , autoconf macros, Maintainers +@section Integrating with CVS + +Many projects use CVS for distributed development, version control and +source backup. This section gives some advice how to manage the uses +of @code{cvs}, @code{gettextize}, @code{autopoint} and @code{autoconf}. + +@menu +* Distributed CVS:: Avoiding version mismatch in distributed development +* Files under CVS:: Files to put under CVS version control +* autopoint Invocation:: Invoking the @code{autopoint} Program +@end menu + +@node Distributed CVS, Files under CVS, CVS Issues, CVS Issues +@subsection Avoiding version mismatch in distributed development + +In a project development with multiple developers, using CVS, there +should be a single developer who occasionally - when there is desire to +upgrade to a new @code{gettext} version - runs @code{gettextize} and +performs the changes listed in @ref{Adjusting Files}, and then commits +his changes to the CVS. + +It is highly recommended that all developers on a project use the same +version of GNU @code{gettext} in the package. In other words, if a +developer runs @code{gettextize}, he should go the whole way, make the +necessary remaining changes and commit his changes to the CVS. +Otherwise the following damages will likely occur: + +@itemize @bullet +@item +Apparent version mismatch between developers. Since some @code{gettext} +specific portions in @file{configure.in}, @file{configure.ac} and +@code{Makefile.am}, @code{Makefile.in} files depend on the @code{gettext} +version, the use of infrastructure files belonging to different +@code{gettext} versions can easily lead to build errors. + +@item +Hidden version mismatch. Such version mismatch can also lead to +malfunctioning of the package, that may be undiscovered by the developers. +The worst case of hidden version mismatch is that internationalization +of the package doesn't work at all. + +@item +Release risks. All developers implicitly perform constant testing on +a package. This is important in the days and weeks before a release. +If the guy who makes the release tar files uses a different version +of GNU @code{gettext} than the other developers, the distribution will +be less well tested than if all had been using the same @code{gettext} +version. For example, it is possible that a platform specific bug goes +undiscovered due to this constellation. +@end itemize + +@node Files under CVS, autopoint Invocation, Distributed CVS, CVS Issues +@subsection Files to put under CVS version control + +There are basically three ways to deal with generated files in the +context of a CVS repository, such as @file{configure} generated from +@file{configure.in}, @code{@var{parser}.c} generated from +@code{@var{parser}.y}, or @code{po/Makefile.in.in} autoinstalled by +@code{gettextize} or @code{autopoint}. + +@enumerate +@item +All generated files are always committed into the repository. + +@item +All generated files are committed into the repository occasionally, +for example each time a release is made. + +@item +Generated files are never committed into the repository. +@end enumerate + +Each of these three approaches has different advantages and drawbacks. + +@enumerate +@item +The advantage is that anyone can check out the CVS at any moment and +gets a working build. The drawbacks are: 1a. It requires some frequent +"cvs commit" actions by the maintainers. 1b. The reposity grows in size +quite fast. + +@item +The advantage is that anyone can check out the CVS, and the usual +"./configure; make" will work. The drawbacks are: 2a. The one who +checks out the repository needs tools like GNU @code{automake}, +GNU @code{autoconf}, GNU @code{m4} installed in his PATH; sometimes +he even needs particular versions of them. 2b. When a release is made +and a commit is made on the generated files, the other developers get +conflicts on the generated files after doing "cvs update". Although +these conflicts are easy to resolve, they are annoying. + +@item +The advantage is less work for the maintainers. The drawback is that +anyone who checks out the CVS not only needs tools like GNU @code{automake}, +GNU @code{autoconf}, GNU @code{m4} installed in his PATH, but also that +he needs to perform a package specific pre-build step before being able +to "./configure; make". +@end enumerate + +For the first and second approach, all files modified or brought in +by the occasional @code{gettextize} invocation and update should be +committed into the CVS. + +For the third approach, the maintainer can omit from the CVS repository +all the files that @code{gettextize} mentions as "copy". Instead, he +adds to the @file{configure.in} or @file{configure.ac} a line of the +form + +@example +GETTEXT_VERSION=@value{VERSION} +@end example + +@noindent +and adds to the package's pre-build script an invocation of +@samp{autopoint}. For everyone who checks out the CVS, this +@code{autopoint} invocation will copy into the right place the +@code{gettext} infrastructure filss that have been omitted from the CVS. + +@node autopoint Invocation, , Files under CVS, CVS Issues +@subsection Invoking the @code{autopoint} Program + +@include autopoint.texi + @node Programming Languages, Conclusion, Maintainers, Top @chapter Other Programming Languages diff --git a/doc/gettextize.texi b/doc/gettextize.texi new file mode 100644 index 000000000..75a0eae37 --- /dev/null +++ b/doc/gettextize.texi @@ -0,0 +1,180 @@ +The @code{gettextize} program is an interactive tool that helps the +maintainer of a package internationalized through GNU @code{gettext}. +It is used for two purposes: + +@itemize @bullet +@item +As a wizard, when a package is modified to use GNU @code{gettext} for +the first time. + +@item +As a migration tool, for upgrading the GNU @code{gettext} support in +a package from a previous to a newer version of GNU @code{gettext}. +@end itemize + +This program performs the following tasks: + +@itemize @bullet +@item +It copies into the package some files that are consistently and +identically needed in every package internationalized through +GNU @code{gettext}. + +@item It performs as many of the tasks mentioned in the next section +@ref{Adjusting Files} as can be performed automatically. + +@item It removes obsolete files and idioms used for previous GNU +@code{gettext} versions to the form recommended for the current GNU +@code{gettext} version. + +@item It prints a summary of the tasks that ought to be done manually +and could not be done automatically by @code{gettextize}. +@end itemize + +It can be invoked as follows: + +@pindex gettextize +@cindex @code{gettextize} program, usage +@example +gettextize [ @var{option}@dots{} ] [ @var{directory} ] +@end example + +@noindent +and accepts the following options: + +@table @samp +@item -c +@itemx --copy +@opindex -c@r{, @code{gettextize} option} +@opindex --copy@r{, @code{gettextize} option} +Copy the needed files instead of making symbolic links. Using links +would allow the package to always use the latest @code{gettext} code +available on the system, but it might disturb some mechanism the +maintainer is used to apply to the sources. Because running +@code{gettextize} is easy there shouldn't be problems with using copies. + +@item -f +@itemx --force +@opindex -f@r{, @code{gettextize} option} +@opindex --force@r{, @code{gettextize} option} +Force replacement of files which already exist. + +@item --intl +@opindex --intl@r{, @code{gettextize} option} +Install the libintl sources in a subdirectory named @file{intl/}. +This libintl will be used to provide internationalization on systems +that don't have GNU libintl installed. If this option is omitted, +the call to @code{AM_GNU_GETTEXT} in @file{configure.in} should read: +@samp{AM_GNU_GETTEXT([external])}, and internationalization will not +be enabled on systems lacking GNU gettext. + +@item --no-changelog +@opindex --no-changelog@r{, @code{gettextize} option} +Don't update or create ChangeLog files. By default, @code{gettextize} +logs all changes (file additions, modifications and removals) in a +file called @samp{ChangeLog} in each affected directory. + +@item -n +@itemx --dry-run +@opindex -d@r{, @code{gettextize} option} +@opindex --dry-run@r{, @code{gettextize} option} +Print modifications but don't perform them. All actions that +@code{gettextize} would normally execute are inhibited and instead only +listed on standard output. + +@item --help +@opindex --help@r{, @code{gettextize} option} +Display this help and exit. + +@item --version +@opindex --version@r{, @code{gettextize} option} +Output version information and exit. + +@end table + +If @var{directory} is given, this is the top level directory of a +package to prepare for using GNU @code{gettext}. If not given, it +is assumed that the current directory is the top level directory of +such a package. + +The program @code{gettextize} provides the following files. However, +no existing file will be replaced unless the option @code{--force} +(@code{-f}) is specified. + +@enumerate +@item +The @file{ABOUT-NLS} file is copied in the main directory of your package, +the one being at the top level. This file gives the main indications +about how to install and use the Native Language Support features +of your program. You might elect to use a more recent copy of this +@file{ABOUT-NLS} file than the one provided through @code{gettextize}, +if you have one handy. You may also fetch a more recent copy of file +@file{ABOUT-NLS} from Translation Project sites, and from most GNU +archive sites. + +@item +A @file{po/} directory is created for eventually holding +all translation files, but initially only containing the file +@file{po/Makefile.in.in} from the GNU @code{gettext} distribution +(beware the double @samp{.in} in the file name) and a few auxiliary +files. If the @file{po/} directory already exists, it will be preserved +along with the files it contains, and only @file{Makefile.in.in} and +the auxiliary files will be overwritten. + +@item +Only if @samp{--intl} has been specified: +A @file{intl/} directory is created and filled with most of the files +originally in the @file{intl/} directory of the GNU @code{gettext} +distribution. Also, if option @code{--force} (@code{-f}) is given, +the @file{intl/} directory is emptied first. + +@item +The files @file{config.rpath} and @file{mkinstalldirs} are copied into +the directory containing configuration support files. It is needed by +the @code{AM_GNU_GETTEXT} autoconf macro. + +@item +Only if the project is using GNU @code{automake}: +A set of @code{autoconf} macro files is copied into the package's +@code{autoconf} macro repository, usually in a directory called @file{m4/}. +@end enumerate + +If your site support symbolic links, @code{gettextize} will not +actually copy the files into your package, but establish symbolic +links instead. This avoids duplicating the disk space needed in +all packages. Merely using the @samp{-h} option while creating the +@code{tar} archive of your distribution will resolve each link by an +actual copy in the distribution archive. So, to insist, you really +should use @samp{-h} option with @code{tar} within your @code{dist} +goal of your main @file{Makefile.in}. + +Furthermore, @code{gettextize} will update all @file{Makefile.am} files +in each affected directory, as well as the top level @file{configure.in} +or @file{configure.ac} file. + +It is interesting to understand that most new files for supporting +GNU @code{gettext} facilities in one package go in @file{intl/}, +@file{po/} and @file{m4/} subdirectories. One distinction between +@file{intl/} and the two other directories is that @file{intl/} is +meant to be completely identical in all packages using GNU @code{gettext}, +while the other directories will mostly contain package dependent +files. + +The @code{gettextize} program makes backup files for all files it +replaces or changes, and also write ChangeLog entries about these +changes. This way, the careful maintainer can check after running +@code{gettextize} whether its changes are acceptable to him, and +possibly adjust them. An exception to this rule is the @file{intl/} +directory, which is added or replaced or removed as a whole. + +It is important to understand that @code{gettextize} can not do the +entire job of adapting a package for using GNU @code{gettext}. The +amount of remaining work depends on whether the package uses GNU +@code{automake} or not. But in any case, the maintainer should still +read the section @ref{Adjusting Files} after invoking @code{gettextize}. + +It is also important to understand that @code{gettextize} is not part +of the GNU build system, in the sense that it should not be invoked +automatically, and not be invoked by someone who doesn't assume the +responsibilities of a package maintainer. For the latter purpose, a +separate tool is provided, see @ref{autopoint Invocation}. diff --git a/misc/ChangeLog b/misc/ChangeLog index 5839f030c..27d6ad681 100644 --- a/misc/ChangeLog +++ b/misc/ChangeLog @@ -1,3 +1,16 @@ +2002-05-01 Bruno Haible + + * autopoint-files: New directory. + * add-to-autopoint-files: New file. + * autopoint.in: New file. + * Makefile.am (EXTRA_DIST): Add add-to-autopoint-files. + (DISTCLEANFILES): Add autopoint. + (gettextsrcdir): New variable. + (gettextsrc_DATA): New variable. + (archive.tar.gz): New rule. + * gettextize.in: Bump GETTEXT_VERSION value in configure.in. + Ask maintainer to acknowledge the remaining changes. + 2002-04-28 Bruno Haible * gettextize.in: Avoid the remarks about po/Makevars and config.guess diff --git a/misc/Makefile.am b/misc/Makefile.am index d467eba01..c72f4640a 100644 --- a/misc/Makefile.am +++ b/misc/Makefile.am @@ -19,8 +19,14 @@ AUTOMAKE_OPTIONS = 1.2 gnits -EXTRA_DIST = gettext.perl gettext-sh tcl_gettext.c README-Tcl po-mode.el -DISTCLEANFILES = gettextize +EXTRA_DIST = gettext.perl gettext-sh tcl_gettext.c README-Tcl add-to-autopoint-files $(lisp_LISP) +DISTCLEANFILES = gettextize autopoint lisp_LISP = po-mode.el po-compat.el -bin_SCRIPTS = gettextize +bin_SCRIPTS = gettextize autopoint + +gettextsrcdir = $(datadir)/gettext +gettextsrc_DATA = archive.tar.gz + +archive.tar.gz: + (cd autopoint-files && tar cf - `find archive -type f | grep -v /CVS/`) | gzip -c -9 > $@ diff --git a/misc/gettextize.in b/misc/gettextize.in index eaf366279..81a24b280 100644 --- a/misc/gettextize.in +++ b/misc/gettextize.in @@ -31,6 +31,10 @@ func_usage () { echo "\ Usage: gettextize [OPTION]... [package-dir] + +Prepares a source package to use gettext. + +Options: --help print this help and exit --version print version information and exit -c, --copy copy files instead of making symlinks @@ -38,6 +42,7 @@ Usage: gettextize [OPTION]... [package-dir] --intl install libintl in a subdirectory --no-changelog don't update or create ChangeLog files -n, --dry-run print modifications but don't perform them + Report bugs to ." } @@ -862,6 +867,8 @@ sed -e 's%sed -e "/POTFILES =/r po/POTFILES" po/Makefile\.in > po/Makefile *;* * func_modify_configure_in "(AC_OUTPUT): Remove command that created po/Makefile." sed -e '/^\(dnl \|\)AC_LINK_FILES(\$nls_cv_header_libgt, \$nls_cv_header_intl)$/d' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" func_modify_configure_in "(AC_LINK_FILES): Remove invocation." +sed -e 's/^GETTEXT_VERSION=\([-+_.0-9A-Za-z]*\)/GETTEXT_VERSION='"$version"'/' < "$srcdir/$configure_in" > "$srcdir/$configure_in.tmp" +func_modify_configure_in "(GETTEXT_VERSION): Bump to $version." $do_changelog && func_ChangeLog_finish # Recommend replacement for deprecated Makefile variables. @@ -946,6 +953,20 @@ if $doit; then echo "It is a wrapper around that implements the configure --disable-nls" echo "option." echo + count=`echo "$please" | grep '^$' | wc -l` + count=`echo "$count" | sed -e 's/[ ]//g'` + case "$count" in + 1) count="paragraph";; + 2) count="two paragraphs";; + 3) count="three paragraphs";; + 4) count="four paragraphs";; + 5) count="five paragraphs";; + *) count="$count paragraphs";; + esac + echo "Press Return to acknowledge the previous $count." + # Read from /dev/tty, not stdin, so that gettextize cannot be abused by + # non-interactive tools. + read < /dev/tty fi exit 0