X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=doc%2Fgnulib-tool.texi;h=114ab4cbbeca029d08b6478276eefbe08559a731;hb=6e5f53c09490a510344a65d26f5e3989a048fcdf;hp=1b025c06e6d4dabb7cdd5f1489fdee4c93f0c7f4;hpb=1602f0afed21be664fcf5c42d59db07cc22c56d6;p=gnulib.git diff --git a/doc/gnulib-tool.texi b/doc/gnulib-tool.texi index 1b025c06e..114ab4cbb 100644 --- a/doc/gnulib-tool.texi +++ b/doc/gnulib-tool.texi @@ -1,7 +1,7 @@ @node Invoking gnulib-tool @chapter Invoking gnulib-tool -@c Copyright (C) 2005-2012 Free Software Foundation, Inc. +@c Copyright (C) 2005-2013 Free Software Foundation, Inc. @c Permission is granted to copy, distribute and/or modify this document @c under the terms of the GNU Free Documentation License, Version 1.3 or @@ -471,7 +471,9 @@ the copies brought in by @code{gettextize} and @code{autopoint}. When a new @code{gettext} release is made, the copies of the files in Gnulib will be updated immediately. -The solution is therefore: +The choice of which version of gettext to require depends on the needs +of your package. For a package that wants to comply to GNU Coding +Standards, the steps are: @enumerate @item @@ -479,12 +481,13 @@ When you run @code{gettextize}, always use the @code{gettextize} from the matching GNU gettext release. For the most recent Gnulib checkout, this is the newest release found on @url{http://ftp.gnu.org/gnu/gettext/}. For an older Gnulib snapshot, it is the release that was the most recent release -at the time the Gnulib snapshot was taken. Then, after @code{gettextize}, -invoke @code{gnulib-tool}. +at the time the Gnulib snapshot was taken. @item -When a script of yours run @code{autopoint}, invoke @code{gnulib-tool} -afterwards. +After running @code{gettextize}, invoke @code{gnulib-tool} and import +the @code{gettext} module. Also, copy the latest version of gnulib's +@file{build-aux/po/Makefile.in.in} to your @file{po/} directory (this +is done for you if you use gnulib's @file{bootstrap} script). @item If you get an error message like @@ -495,6 +498,32 @@ it means that a new GNU gettext release was made, and its autoconf macros were integrated into Gnulib and now mismatch the @file{po/} infrastructure. In this case, fetch and install the new GNU gettext release and run @code{gettextize} followed by @code{gnulib-tool}. +@end enumerate + +On the other hand, if your package is not as concerned with compliance +to the latest standards, but instead favors development on stable +environments, the steps are: + +@enumerate +@item +Determine the oldest version of @code{gettext} that you intend to +support during development (at this time, gnulib recommends going no +older than version 0.17). Run @code{autopoint} (not +@code{gettextize}) to copy infrastructure into place (newer versions +of gettext will install the older infrastructure that you requested). + +@item +Invoke @code{gnulib-tool}, and import the @code{gettext-h} module. +@end enumerate + +Regardless of which approach you used to get the infrastructure in +place, the following steps must then be used to preserve that +infrastructure (gnulib's @file{bootstrap} script follows these rules): + +@enumerate +@item +When a script of yours run @code{autopoint}, invoke @code{gnulib-tool} +afterwards. @item When you invoke @code{autoreconf} after @code{gnulib-tool}, make sure to @@ -548,8 +577,8 @@ When you use these options, the functions in Gnulib are built in such a way that they will always use this domain regardless of the default domain set by @code{textdomain}. -In order to use this method, you must -- in each program that might use -Gnulib code -- add an extra line to the part of the program that +In order to use this method, you must---in each program that might use +Gnulib code---add an extra line to the part of the program that initializes locale-dependent behavior. Where you would normally write something like: @@ -602,14 +631,14 @@ In projects which commit all source files, whether generated or not, into their VCS, the @code{gnulib-tool} generated files should all be committed. In this case, you should pass the option @samp{--no-vc-files} to @code{gnulib-tool}, which avoids alteration of -VCS-related files such as @file{.cvsignore}. +VCS-related files such as @file{.gitignore}. Gnulib also contains files generated by @command{make} (and removed by @code{make clean}), using information determined by @command{configure}. For a Gnulib source file of the form @file{lib/foo.in.h}, the corresponding @file{lib/foo.h} is such a @command{make}-generated file. These should @emph{not} be checked -into the VCS, but instead added to @file{.cvsignore} or equivalent. +into the VCS, but instead added to @file{.gitignore} or equivalent. @item In projects which customarily omit from their VCS all files that are @@ -751,7 +780,7 @@ where the system's @code{timegm} function is missing or buggy, a replacement that is based on a function @code{mktime_internal}. The module @code{mktime-internal} that provides this function provides it on all platforms. So, by default, the file @file{mktime-internal.c} will be -compiled on all platforms --- even on glibc and BSD systems which have a +compiled on all platforms, even on glibc and BSD systems which have a working @code{timegm} function. When the option @samp{--conditional-dependencies} is given, on the other hand, and if @code{mktime-internal} was not explicitly required on the command line,