diff options
author | Jens Rehsack <rehsack@gmail.com> | 2015-10-13 22:35:52 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-11-24 15:55:21 +0000 |
commit | fe506eddb0790e37ac1e50f37fa2e32ad81d5493 (patch) | |
tree | 7da47ccf7194105850474f169a28c2c7768e2061 /meta/classes | |
parent | d08fda21bfb7d264c238af0232a22cdd751f5150 (diff) | |
download | openembedded-core-fe506eddb0790e37ac1e50f37fa2e32ad81d5493.tar.gz openembedded-core-fe506eddb0790e37ac1e50f37fa2e32ad81d5493.tar.bz2 openembedded-core-fe506eddb0790e37ac1e50f37fa2e32ad81d5493.zip |
autotools: Allow recipe-individual configure scripts
OpenJDK-8 has it's configure script at common/autotools - which will cause
the entire assumption of ${S}/configure is regenerated by autoreconf, intltoolize or alike
fails heavily.
Also - other configure mechanisms can be supported more similar (see how pkgsrc
manages different ones ...)
Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/autotools.bbclass | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass index 078f58fad3..d546a5c028 100644 --- a/meta/classes/autotools.bbclass +++ b/meta/classes/autotools.bbclass @@ -77,16 +77,20 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \ ${@append_libtool_sysroot(d)}" CONFIGUREOPT_DEPTRACK ?= "--disable-dependency-tracking" +AUTOTOOLS_SCRIPT_PATH ?= "${S}" +CONFIGURE_SCRIPT ?= "${AUTOTOOLS_SCRIPT_PATH}/configure" + +AUTOTOOLS_AUXDIR ?= "${AUTOTOOLS_SCRIPT_PATH}" oe_runconf () { - cfgscript="${S}/configure" + cfgscript="${CONFIGURE_SCRIPT}" if [ -x "$cfgscript" ] ; then bbnote "Running $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} $@" set +e ${CACHED_CONFIGUREVARS} $cfgscript ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" if [ "$?" != "0" ]; then echo "Configure failed. The contents of all config.log files follows to aid debugging" - find ${S} -ignore_readdir_race -name config.log -print -exec cat {} \; + find ${B} -ignore_readdir_race -name config.log -print -exec cat {} \; die "oe_runconf failed" fi set -e @@ -95,8 +99,6 @@ oe_runconf () { fi } -AUTOTOOLS_AUXDIR ?= "${S}" - CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate" autotools_preconfigure() { @@ -134,7 +136,7 @@ do_configure[postfuncs] += "autotools_postconfigure" ACLOCALDIR = "${B}/aclocal-copy" python autotools_copy_aclocals () { - s = d.getVar("S", True) + s = d.getVar("AUTOTOOLS_SCRIPT_PATH", True) if not os.path.exists(s + "/configure.in") and not os.path.exists(s + "/configure.ac"): if not d.getVar("AUTOTOOLS_COPYACLOCAL", False): return @@ -228,13 +230,13 @@ autotools_do_configure() { ( for ac in `find ${S} -ignore_readdir_race -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 + if [ -e ${AUTOTOOLS_SCRIPT_PATH}/configure.in -o -e ${AUTOTOOLS_SCRIPT_PATH}/configure.ac ]; then olddir=`pwd` - cd ${S} + cd ${AUTOTOOLS_SCRIPT_PATH} ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" if [ x"${acpaths}" = xdefault ]; then acpaths= - for i in `find ${S} -ignore_readdir_race -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \ + for i in `find ${AUTOTOOLS_SCRIPT_PATH} -ignore_readdir_race -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \ grep -v 'acinclude.m4' | grep -v 'aclocal-copy' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do acpaths="$acpaths -I $i" done @@ -265,21 +267,20 @@ autotools_do_configure() { 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 + elif grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then # We'd call gettextize here if it wasn't so broken... - cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ - if [ -d ${S}/po/ ]; then - cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/ - if [ ! -e ${S}/po/remove-potcdate.sin ]; then - cp ${STAGING_DATADIR_NATIVE}/gettext/po/remove-potcdate.sin ${S}/po/ - fi + cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${AUTOTOOLS_AUXDIR}/ + if [ -d ${S}/po/ ]; then + cp -f ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/ + if [ ! -e ${S}/po/remove-potcdate.sin ]; then + cp ${STAGING_DATADIR_NATIVE}/gettext/po/remove-potcdate.sin ${S}/po/ fi - for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do - for j in `find ${S} -ignore_readdir_race -name $i | grep -v aclocal-copy`; do - rm $j - done - done fi + for i in gettext.m4 iconv.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 nls.m4 po.m4 progtest.m4; do + for j in `find ${S} -ignore_readdir_race -name $i | grep -v aclocal-copy`; do + rm $j + done + done fi mkdir -p m4 if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then @@ -290,7 +291,7 @@ autotools_do_configure() { ACLOCAL="$ACLOCAL" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || die "autoreconf execution failed." cd $olddir fi - if [ -e ${S}/configure ]; then + if [ -e ${CONFIGURE_SCRIPT} ]; then oe_runconf else bbnote "nothing to configure" |