public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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



             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