autotools: split out a oe_autoreconf function
authorChris Larson <chris_larson@mentor.com>
Wed, 20 Oct 2010 01:20:25 +0000 (18:20 -0700)
committerChris Larson <chris_larson@mentor.com>
Wed, 16 Feb 2011 22:00:42 +0000 (15:00 -0700)
This functionality logically belongs in its own function, and it makes it
easier to explicitly run against subdirs in certain cases.

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Acked-by: Khem Raj <raj.khem@gmail.com>
classes/autotools.bbclass

index 4d7a66b..9744589 100644 (file)
@@ -108,6 +108,55 @@ oe_runconf () {
        fi
 }
 
+oe_autoreconf () {
+       if [ x"${acpaths}" = xdefault ]; then
+               acpaths=
+               for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
+                       grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
+                       acpaths="$acpaths -I $i"
+               done
+       else
+               acpaths="${acpaths}"
+       fi
+       AUTOV=`automake --version | head -n 1 | sed "s/.* //;s/\.[0-9]\+$//"`
+       install -d ${STAGING_DATADIR}/aclocal
+       install -d ${STAGING_DATADIR}/aclocal-$AUTOV
+       acpaths="$acpaths -I${STAGING_DATADIR}/aclocal-$AUTOV -I ${STAGING_DATADIR}/aclocal"
+       # autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
+       # like it was auto-generated.  Work around this by blowing it away
+       # by hand, unless the package specifically asked not to run aclocal.
+       if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then
+               rm -f aclocal.m4
+       fi
+       if [ -e configure.in ]; then
+               CONFIGURE_AC=configure.in
+       else
+               CONFIGURE_AC=configure.ac
+       fi
+       if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
+               if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
+                       : do nothing -- we still have an old unmodified configure.ac
+               else
+                       echo "no" | glib-gettextize --force --copy
+               fi
+       else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
+               if [ -e ${STAGING_DATADIR}/gettext/config.rpath ]; then
+                       cp ${STAGING_DATADIR}/gettext/config.rpath ${S}/
+               else
+                       oenote ${STAGING_DATADIR}/gettext/config.rpath not found. gettext is not installed.
+               fi
+       fi
+
+       fi
+       for aux in m4 `sed -n -e '/^[[:space:]]*AC_CONFIG_MACRO_DIR/s|[^(]*([[]*\([^])]*\)[]]*)|\1|p' $CONFIGURE_AC`; do
+               mkdir -p ${aux}
+       done
+       autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
+       if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+               intltoolize --copy --force --automake
+       fi
+}
+
 autotools_do_configure() {
        case ${PN} in
        autoconf*|automake*)
@@ -120,52 +169,7 @@ autotools_do_configure() {
                if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then
                        olddir=`pwd`
                        cd ${S}
-                       if [ x"${acpaths}" = xdefault ]; then
-                               acpaths=
-                               for i in `find ${S} -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
-                                       grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
-                                       acpaths="$acpaths -I $i"
-                               done
-                       else
-                               acpaths="${acpaths}"
-                       fi
-                       AUTOV=`automake --version | head -n 1 | sed "s/.* //;s/\.[0-9]\+$//"`
-                       install -d ${STAGING_DATADIR}/aclocal
-                       install -d ${STAGING_DATADIR}/aclocal-$AUTOV
-                       acpaths="$acpaths -I${STAGING_DATADIR}/aclocal-$AUTOV -I ${STAGING_DATADIR}/aclocal"
-                       # autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
-                       # like it was auto-generated.  Work around this by blowing it away
-                       # by hand, unless the package specifically asked not to run aclocal.
-                       if ! echo ${EXTRA_AUTORECONF} | grep -q "aclocal"; then
-                               rm -f aclocal.m4
-                       fi
-                       if [ -e configure.in ]; then
-                               CONFIGURE_AC=configure.in
-                       else
-                               CONFIGURE_AC=configure.ac
-                       fi
-                       if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
-                               if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
-                                       : do nothing -- we still have an old unmodified configure.ac
-                               else
-                                       echo "no" | glib-gettextize --force --copy
-                               fi
-                       else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
-                               if [ -e ${STAGING_DATADIR}/gettext/config.rpath ]; then
-                                       cp ${STAGING_DATADIR}/gettext/config.rpath ${S}/
-                               else
-                                       oenote ${STAGING_DATADIR}/gettext/config.rpath not found. gettext is not installed.
-                               fi
-                       fi
-
-                       fi
-                       for aux in m4 `sed -n -e '/^[[:space:]]*AC_CONFIG_MACRO_DIR/s|[^(]*([[]*\([^])]*\)[]]*)|\1|p' $CONFIGURE_AC`; do
-                               mkdir -p ${aux}
-                       done
-                       autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
-                       if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
-                               intltoolize --copy --force --automake
-                       fi
+                       oe_autoreconf
                        cd $olddir
                fi
        ;;