From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] dev/mgorny:master commit in: eclass/
Date: Mon, 5 Dec 2011 08:38:27 +0000 (UTC) [thread overview]
Message-ID: <c90d731df39a9970030d494c3e524f31514c0f36.mgorny@gentoo> (raw)
commit: c90d731df39a9970030d494c3e524f31514c0f36
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 1 19:00:41 2011 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec 1 19:00:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=c90d731d
autotools-utils: rewrite some more autotools code to make it faster.
Now we don't run aclocal multiple times, and we don't need to call
autoconf to check for various macros. Of course, there is a number of
corner cases where we will fail terribly.
---
eclass/autotools-utils.eclass | 33 +++++++++++++++++++++++++++------
1 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/eclass/autotools-utils.eclass b/eclass/autotools-utils.eclass
index 71b0bfc..54b7d6e 100644
--- a/eclass/autotools-utils.eclass
+++ b/eclass/autotools-utils.eclass
@@ -274,14 +274,26 @@ remove_libtool_files() {
autotools-utils_autoreconf() {
debug-print-function ${FUNCNAME} "$@"
- einfo "Autoreconfiguring '${PWD}' ..."
+ # Override this func to not require unnecessary eaclocal calls.
+ autotools_check_macro() {
+ local x
+
+ # Add a few additional variants as we don't get expansions.
+ [[ ${1} = AC_CONFIG_HEADERS ]] && set -- "${@}" AC_CONFIG_HEADER
- local auxdir=$(autotools_get_auxdir)
- [[ ${auxdir} ]] && mkdir -p ${auxdir}
+ for x; do
+ grep -h "^${x}" configure.{ac,in} 2>/dev/null
+ done
+ }
+
+ einfo "Autoreconfiguring '${PWD}' ..."
- # XXX: avoid calling this twice somehow...
- eaclocal
- _elibtoolize --copy --force --install
+ local auxdir=$(sed -n -e 's/^AC_CONFIG_AUX_DIR(\(.*\))$/\1/p' \
+ configure.{ac,in} 2>/dev/null)
+ if [[ ${auxdir} ]]; then
+ auxdir=${auxdir%%]}
+ mkdir -p ${auxdir##[}
+ fi
# Support running additional tools like gnome-autogen.sh.
# Note: you need to add additional depends to the ebuild.
@@ -309,6 +321,15 @@ autotools-utils_autoreconf() {
autotools_run_tool gnome-doc-prepare --copy
fi
+ # We need to perform the check twice to know whether to run eaclocal.
+ # (_elibtoolize does that itself)
+ if [[ $(autotools_check_macro AC_PROG_LIBTOOL AM_PROG_LIBTOOL LT_INIT) ]]
+ then
+ _elibtoolize --copy --force --install
+ else
+ eaclocal
+ fi
+
eautoconf
eautoheader
eautomake
next reply other threads:[~2011-12-05 8:39 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-05 8:38 Michał Górny [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-05-21 17:32 [gentoo-commits] dev/mgorny:master commit in: eclass/ Michał Górny
2012-01-14 21:22 Michał Górny
2012-01-14 21:22 Michał Górny
2012-01-14 21:22 Michał Górny
2012-01-08 16:32 Michał Górny
2012-01-07 22:36 Michał Górny
2012-01-07 22:36 Michał Górny
2012-01-07 22:36 Michał Górny
2012-01-07 22:36 Michał Górny
2011-12-29 20:25 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:38 Michał Górny
2011-12-05 8:36 Michał Górny
2011-11-29 21:41 Michał Górny
2011-11-29 21:41 Michał Górny
2011-09-18 9:42 Michał Górny
2011-04-30 21:14 Michał Górny
2011-04-30 6:45 Michał Górny
2011-04-30 6:45 Michał Górny
2011-04-30 6:45 Michał Górny
2011-04-30 6:45 Michał Górny
2011-04-28 16:33 Michał Górny
2011-04-28 14:33 Michał Górny
2011-04-28 14:33 Michał Górny
2011-04-28 14:02 Michał Górny
2011-04-17 19:41 Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c90d731df39a9970030d494c3e524f31514c0f36.mgorny@gentoo \
--to=mgorny@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox