diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/autotools.bbclass | 158 |
1 files changed, 75 insertions, 83 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index a5997c55e0..e4e034b623 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass @@ -111,91 +111,83 @@ do_configure[prefuncs] += "autotools_preconfigure" do_configure[postfuncs] += "autotools_postconfigure" autotools_do_configure() { - case ${PN} in - autoconf*) - ;; - automake*) - ;; - *) - # WARNING: gross hack follows: - # An autotools built package generally needs these scripts, however only - # automake or libtoolize actually install the current versions of them. - # This is a problem in builds that do not use libtool or automake, in the case - # where we -need- the latest version of these scripts. e.g. running a build - # for a package whose autotools are old, on an x86_64 machine, which the old - # config.sub does not support. Work around this by installing them manually - # regardless. - ( for ac in `find ${S} -name configure.in -o -name configure.ac`; do - rm -f `dirname $ac`/configure - done ) - if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then - olddir=`pwd` - cd ${S} - # Remove any previous copy of the m4 macros - rm -rf ${B}/aclocal-copy/ - 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]\+$//"` - automake --version - echo "AUTOV is $AUTOV" - if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then - acpaths="$acpaths -I${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV" - fi - # The aclocal directory could get modified by other processes - # uninstalling data from the sysroot. See Yocto #861 for details. - # We avoid this by taking a copy here and then files cannot disappear. - if [ -d ${STAGING_DATADIR}/aclocal ]; then - # for scratch build this directory can be empty - # so avoid cp's no files to copy error - cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/ - acpaths="$acpaths -I ${B}/aclocal-copy/" - fi - # 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 ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then - 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 - bbnote Executing glib-gettextize --force --copy - echo "no" | glib-gettextize --force --copy - fi - else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then - # We'd call gettextize here if it wasn't so broken... - cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ - if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then - cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/ - fi - fi - fi - fi - mkdir -p m4 - if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then - bbnote Executing intltoolize --copy --force --automake - intltoolize --copy --force --automake + # WARNING: gross hack follows: + # An autotools built package generally needs these scripts, however only + # automake or libtoolize actually install the current versions of them. + # This is a problem in builds that do not use libtool or automake, in the case + # where we -need- the latest version of these scripts. e.g. running a build + # for a package whose autotools are old, on an x86_64 machine, which the old + # config.sub does not support. Work around this by installing them manually + # regardless. + ( for ac in `find ${S} -name configure.in -o -name configure.ac`; do + rm -f `dirname $ac`/configure + done ) + if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then + olddir=`pwd` + cd ${S} + # Remove any previous copy of the m4 macros + rm -rf ${B}/aclocal-copy/ + 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]\+$//"` + automake --version + echo "AUTOV is $AUTOV" + if [ -d ${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV ]; then + acpaths="$acpaths -I${STAGING_DATADIR_NATIVE}/aclocal-$AUTOV" + fi + # The aclocal directory could get modified by other processes + # uninstalling data from the sysroot. See Yocto #861 for details. + # We avoid this by taking a copy here and then files cannot disappear. + if [ -d ${STAGING_DATADIR}/aclocal ]; then + # for scratch build this directory can be empty + # so avoid cp's no files to copy error + cp-noerror ${STAGING_DATADIR}/aclocal ${B}/aclocal-copy/ + acpaths="$acpaths -I ${B}/aclocal-copy/" + fi + # 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 ! echo ${EXTRA_OECONF} | grep -q "\-\-disable-nls"; then + 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 + bbnote Executing glib-gettextize --force --copy + echo "no" | glib-gettextize --force --copy + fi + else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then + # We'd call gettextize here if it wasn't so broken... + cp ${STAGING_DATADIR}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ + if [ -d ${S}/po/ -a ! -e ${S}/po/Makefile.in.in ]; then + cp ${STAGING_DATADIR}/gettext/po/Makefile.in.in ${S}/po/ + fi + fi fi - bbnote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths - autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." - cd $olddir fi - ;; - esac + mkdir -p m4 + if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then + bbnote Executing intltoolize --copy --force --automake + intltoolize --copy --force --automake + fi + bbnote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths + autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed." + cd $olddir + fi if [ -e ${S}/configure ]; then oe_runconf else |