[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 2/2] autoreconf: integrate intltoolize into the standard configur
From: |
Eli Schwartz |
Subject: |
[PATCH 2/2] autoreconf: integrate intltoolize into the standard configuration tools |
Date: |
Sun, 17 Mar 2019 15:01:22 -0400 |
In addition to the gtkdocize tool, gtk-related software may utilize the
IT_PROG_INTLTOOL macro in order to require the intltoolize tool. So too
here should the tool be run by autoreconf itself, in order to guarantee
its initialization via the unified frontend for all autotools projects.
Signed-off-by: Eli Schwartz <address@hidden>
---
bin/autoreconf.in | 65 +++++++++++++++++++++++++++++++++--------------
doc/autoconf.texi | 6 ++---
lib/autom4te.in | 1 +
3 files changed, 50 insertions(+), 22 deletions(-)
diff --git a/bin/autoreconf.in b/bin/autoreconf.in
index fe7df300..5d43ef2f 100644
--- a/bin/autoreconf.in
+++ b/bin/autoreconf.in
@@ -106,15 +106,16 @@ Written by David J. MacKenzie and Akim Demaille.
";
# Lib files.
-my $autoconf = $ENV{'AUTOCONF'} || '@bindir@/@autoconf-name@';
-my $autoheader = $ENV{'AUTOHEADER'} || '@bindir@/@autoheader-name@';
-my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
-my $automake = $ENV{'AUTOMAKE'} || 'automake';
-my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
-my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
-my $gtkdocize = $ENV{'GTKDOCIZE'} || 'gtkdocize';
-my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
-my $make = $ENV{'MAKE'} || 'make';
+my $autoconf = $ENV{'AUTOCONF'} || '@bindir@/@autoconf-name@';
+my $autoheader = $ENV{'AUTOHEADER'} || '@bindir@/@autoheader-name@';
+my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
+my $automake = $ENV{'AUTOMAKE'} || 'automake';
+my $aclocal = $ENV{'ACLOCAL'} || 'aclocal';
+my $libtoolize = $ENV{'LIBTOOLIZE'} || 'libtoolize';
+my $intltoolize = $ENV{'INTLTOOLIZE'} || 'intltoolize';
+my $gtkdocize = $ENV{'GTKDOCIZE'} || 'gtkdocize';
+my $autopoint = $ENV{'AUTOPOINT'} || 'autopoint';
+my $make = $ENV{'MAKE'} || 'make';
# --install -- as --add-missing in other tools.
my $install = 0;
@@ -176,6 +177,7 @@ sub parse_args ()
$automake, $aclocal,
$autopoint,
$libtoolize,
+ $intltoolize,
$gtkdocize)
{
xsystem ("$prog --version | sed 1q >&2");
@@ -199,20 +201,22 @@ sub parse_args ()
# --install and --symlink;
if ($install)
{
- $automake .= ' --add-missing';
- $automake .= ' --copy' unless $symlink;
- $libtoolize .= ' --copy' unless $symlink;
- $gtkdocize .= ' --copy' unless $symlink;
+ $automake .= ' --add-missing';
+ $automake .= ' --copy' unless $symlink;
+ $libtoolize .= ' --copy' unless $symlink;
+ $intltoolize .= ' --copy' unless $symlink;
+ $gtkdocize .= ' --copy' unless $symlink;
}
# --force;
if ($force)
{
- $aclocal .= ' --force';
- $autoconf .= ' --force';
- $autoheader .= ' --force';
- $automake .= ' --force-missing';
- $autopoint .= ' --force';
- $libtoolize .= ' --force';
+ $aclocal .= ' --force';
+ $autoconf .= ' --force';
+ $autoheader .= ' --force';
+ $automake .= ' --force-missing';
+ $autopoint .= ' --force';
+ $libtoolize .= ' --force';
+ $intltoolize .= ' --force';
}
else
{
@@ -385,6 +389,7 @@ sub autoreconf_current_directory ()
my $aux_dir;
my $uses_gettext_via_traces;
my $uses_libtool;
+ my $uses_intltool;
my $uses_gtkdoc;
my $uses_libltdl;
my $uses_autoheader;
@@ -406,6 +411,7 @@ sub autoreconf_current_directory ()
'LT_CONFIG_LTDL_DIR',
'AM_GNU_GETTEXT',
'AM_INIT_AUTOMAKE',
+ 'IT_PROG_INTLTOOL',
'GTK_DOC_CHECK',
)
. ' |');
@@ -421,6 +427,7 @@ sub autoreconf_current_directory ()
$uses_libltdl = 1 if $macro eq "LT_CONFIG_LTDL_DIR";
$uses_autoheader = 1 if $macro eq "AC_CONFIG_HEADERS";
$uses_automake = 1 if $macro eq "AM_INIT_AUTOMAKE";
+ $uses_intltool = 1 if $macro eq "IT_PROG_INTLTOOL";
$uses_gtkdoc = 1 if $macro eq "GTK_DOC_CHECK";
push @subdir, split (' ', $args[0])
if $macro eq "AC_CONFIG_SUBDIRS" &&
$recursive;
@@ -488,6 +495,26 @@ sub autoreconf_current_directory ()
}
+ # --------------------- #
+ # Running intltoolize. #
+ # --------------------- #
+
+ if (!$uses_intltool)
+ {
+ verb "$configure_ac: not using Intltool";
+ }
+ elsif ($install)
+ {
+ xsystem_hint ("intltoolize is needed because this package uses
Intltool", $intltoolize);
+ xsystem ($intltoolize)
+ }
+ else
+ {
+ verb "$configure_ac: not running intltool: --install not given";
+ }
+
+
+
# ------------------- #
# Running gtkdocize. #
# ------------------- #
diff --git a/doc/autoconf.texi b/doc/autoconf.texi
index a1442520..391b4d02 100644
--- a/doc/autoconf.texi
+++ b/doc/autoconf.texi
@@ -1687,13 +1687,13 @@ been updated, or finally, simply in order to install
the GNU Build
System in a fresh tree.
@command{autoreconf} runs @command{autoconf}, @command{autoheader},
address@hidden, @command{automake}, @command{libtoolize},
address@hidden, @command{automake}, @command{libtoolize}, @command{intltoolize},
@command{gtkdocize}, and @command{autopoint} (when appropriate) repeatedly
to update the GNU Build System in the specified directories and their
subdirectories (@pxref{Subdirectories}). By default, it only remakes
those files that are older than their sources. The environment variables
address@hidden, @env{AUTOCONF}, @env{AUTOHEADER}, @env{AUTOMAKE},
address@hidden, @env{AUTOPOINT}, @env{LIBTOOLIZE}, @env{GTKDOCIZE}, @env{M4},
address@hidden, @env{AUTOCONF}, @env{AUTOHEADER}, @env{AUTOMAKE}, @env{ACLOCAL},
address@hidden, @env{LIBTOOLIZE}, @env{INTLTOOLIZE}, @env{GTKDOCIZE}, @env{M4},
and @env{MAKE} may be used to override the invocation of the respective tools.
If you install a new version of some tool, you can make
diff --git a/lib/autom4te.in b/lib/autom4te.in
index 2acd39cd..4c4d85f7 100644
--- a/lib/autom4te.in
+++ b/lib/autom4te.in
@@ -98,6 +98,7 @@ args: --preselect AC_CONFIG_MACRO_DIR_TRACE
args: --preselect AC_CONFIG_SUBDIRS
args: --preselect AC_INIT
args: --preselect AC_PROG_LIBTOOL
+args: --preselect IT_PROG_INTLTOOL
args: --preselect GTK_DOC_CHECK
args: --preselect LT_INIT
args: --preselect LT_CONFIG_LTDL_DIR
--
2.21.0