autotools: cleanup
PATCH 1/4 autotools: cleanup
From: Chris Larson <[email protected]>
--- classes/autotools.bbclass | 60 +++++++++++++++++--------------------------- 1 files changed, 23 insertions(+), 37 deletions(-)
classes/autotools.bbclass +23 -37
@@ -17,7 +17,7 @@ def autotools_deps(d): if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', 'sdk') and not d.getVar('INHIBIT_DEFAULT_DEPS', True)): - deps += 'libtool-cross ' + deps += 'libtool-cross ' return deps + 'gnu-config-native '
@@ -110,22 +110,13 @@ oe_runconf () { autotools_do_configure() { case ${PN} in - autoconf*) - ;; - automake*) + 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 ) + find ${S} -name configure.in -o -name configure.ac | \ + while read fn; do + rm -f `dirname $fn`/configure + done if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then olddir=`pwd` cd ${S}
@@ -138,9 +129,7 @@ autotools_do_configure() { else acpaths="${acpaths}" fi - AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"` - automake --version - echo "AUTOV is $AUTOV" + 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"
@@ -151,34 +140,31 @@ autotools_do_configure() { rm -f aclocal.m4 fi if [ -e configure.in ]; then - CONFIGURE_AC=configure.in + CONFIGURE_AC=configure.in else - CONFIGURE_AC=configure.ac + CONFIGURE_AC=configure.ac fi - if grep -q "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC; then - if grep -q "sed.*POTFILES" $CONFIGURE_AC; then - : do nothing -- we still have an old unmodified configure.ac - else - oenote Executing glib-gettextize --force --copy - echo "no" | glib-gettextize --force --copy - fi - else if grep -q "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC; 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 + 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 - oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." - if grep -q "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC; then - oenote Executing intltoolize --copy --force --automake - intltoolize --copy --force --automake + if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then + intltoolize --copy --force --automake fi cd $olddir fi
Signature · 1 line
1.7.2.3
PATCH 2/4 autotools: split out a oe_autoreconf function
From: Chris Larson <[email protected]>
This functionality logically belongs in its own function, and it makes it easier to explicitly run against subdirs in certain cases.
--- classes/autotools.bbclass | 96 +++++++++++++++++++++++--------------------- 1 files changed, 50 insertions(+), 46 deletions(-)
classes/autotools.bbclass +50 -46
@@ -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 ;;
Signature · 1 line
1.7.2.3
Re: [PATCH 2/4] autotools: split out a oe_autoreconf function
Quoted 6 lines · Chris Larson
From: Chris Larson <[email protected]>
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 <[email protected]>
Quoted 127 lines
---
classes/autotools.bbclass | 96 +++++++++++++++++++++++---------------------1 files changed, 50 insertions(+), 46 deletions(-)classes/autotools.bbclass +0
-0@@ -108,6 +108,55 @@ oe_runconf () {fi
}classes/autotools.bbclass +49
-0+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*)classes/autotools.bbclass +0
-0@@ -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 m4sed -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
;;
--
1.7.2.3_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
PATCH 3/4 autotools: symlink where we can
In reply to Chris LarsonFrom: Chris Larson <[email protected]>
--- classes/autotools.bbclass | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
classes/autotools.bbclass +4 -4
@@ -137,11 +137,11 @@ oe_autoreconf () { 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 + echo "no" | glib-gettextize --force 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}/ + ln -sf ${STAGING_DATADIR}/gettext/config.rpath ${S}/ else oenote ${STAGING_DATADIR}/gettext/config.rpath not found. gettext is not installed. fi
@@ -151,9 +151,9 @@ oe_autoreconf () { 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." + autoreconf -Wcross --verbose --install --symlink --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then - intltoolize --copy --force --automake + intltoolize --force --automake fi }
Signature · 1 line
1.7.2.3
Re: [PATCH 3/4] autotools: symlink where we can
Quoted 3 lines · Chris Larson
From: Chris Larson <[email protected]>
Signed-off-by Chris Larson <[email protected]>
now that we will have symlinks will it have any impact on source package generation ?
otherwise
Quoted 43 lines
---
classes/autotools.bbclass | 8 ++++----1 files changed, 4 insertions(+), 4 deletions(-)classes/autotools.bbclass +0
-0@@ -137,11 +137,11 @@ oe_autoreconf () {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
+ echo "no" | glib-gettextize --force
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}/
+ ln -sf ${STAGING_DATADIR}/gettext/config.rpath ${S}/
else
oenote ${STAGING_DATADIR}/gettext/config.rpath not found. gettext is not installed. ficlasses/autotools.bbclass +0
-0@@ -151,9 +151,9 @@ oe_autoreconf () {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."
+ autoreconf -Wcross --verbose --install --symlink --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
- intltoolize --copy --force --automake
+ intltoolize --force --automake
fi
}--
1.7.2.3_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Re: [PATCH 3/4] autotools: symlink where we can
Quoted 10 lines · Khem Raj
Quoted 3 lines · Chris Larson
From: Chris Larson <[email protected]>
Signed-off-by Chris Larson <[email protected]>now that we will have symlinks will it have any impact on source package generation ?
otherwiseAcked-by Khem Raj <[email protected]>
Good point, I'll look into it, thanks.
Signature · 5 lines
Christopher Larson clarson at kergoth dot com Founder - BitBake, OpenEmbedded, OpenZaurus Maintainer - Tslib Senior Software Engineer, Mentor Graphics
PATCH 4/4 autotools: split up into multiple files
In reply to Chris LarsonFrom: Chris Larson <[email protected]>
Split up autotools.bbclass into:
classes/autotools/configure.bbclass
To be inherited if one wants ./configure and config.{sub,guess} updating, but not autoreconf execution
classes/autotools/bootstrap.bbclass
Autoreconf execution
classes/autotools/staging.inc
Holds the old autotools staging utility functions
autotools.bbclass still exists, and simply inherits classes/autotools/bootstrap.bbclass.
--- classes/autotools.bbclass | 238 +---------------------------------- classes/autotools/bootstrap.bbclass | 101 +++++++++++++++ classes/autotools/configure.bbclass | 118 +++++++++++++++++ classes/autotools/staging.inc | 36 ++++++ 4 files changed, 256 insertions(+), 237 deletions(-) create mode 100644 classes/autotools/bootstrap.bbclass create mode 100644 classes/autotools/configure.bbclass create mode 100644 classes/autotools/staging.inc
classes/autotools.bbclass +1 -237
@@ -1,237 +1 @@ -# use autotools_stage_all for native packages -AUTOTOOLS_NATIVE_STAGE_INSTALL = "1" - -def autotools_deps(d): - if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1): - return '' - - pn = bb.data.getVar('PN', d, 1) - deps = '' - - if pn in ['autoconf-native', 'automake-native', 'help2man-native']: - return deps - deps += 'autoconf-native automake-native help2man-native ' - - if pn not in ['libtool', 'libtool-native', 'libtool-cross']: - deps += 'libtool-native ' - if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', - 'sdk') and - not d.getVar('INHIBIT_DEFAULT_DEPS', True)): - deps += 'libtool-cross ' - - return deps + 'gnu-config-native ' - -EXTRA_OEMAKE = "" - -DEPENDS_prepend = "${@autotools_deps(d)}" -DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}" -DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}" - -inherit siteinfo - -def _autotools_get_sitefiles(d): - if oe.utils.inherits(d, 'native', 'nativesdk'): - return - - sitedata = siteinfo_data(d) - for path in d.getVar("BBPATH", True).split(":"): - for element in sitedata: - filename = os.path.join(path, "site", element) - if os.path.exists(filename): - yield filename - -# Space separated list of shell scripts with variables defined to supply test -# results for autoconf tests we cannot run at build time. -export CONFIG_SITE = "${@' '.join(_autotools_get_sitefiles(d))}" - -acpaths = "default" -EXTRA_AUTORECONF = "--exclude=autopoint" - -def autotools_set_crosscompiling(d): - if not bb.data.inherits_class('native', d): - return " cross_compiling=yes" - return "" - -def append_libtool_sysroot(d): - if bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes": - if bb.data.getVar('BUILD_SYS', d, 1) == bb.data.getVar('HOST_SYS', d, 1): - return '--with-libtool-sysroot' - else: - return '--with-libtool-sysroot=${STAGING_DIR_HOST}' - return '' - -def distro_imposed_configure_flags(d): - distro_features = bb.data.getVar('DISTRO_FEATURES', d, True) or "" - distro_features = distro_features.split() - flags = set() - features = (('largefile', 'largefile'), - ('ipv6' , 'ipv6'), - ('nls' , 'nls')) - - for knob, cfgargs in features: - if isinstance(cfgargs, basestring): - cfgargs = [cfgargs] - en_or_dis = knob in distro_features and "enable" or "disable" - for flg in cfgargs: - flags.add("--%s-%s" % (en_or_dis, flg)) - return " ".join(flags) - -# EXTRA_OECONF_append = "${@autotools_set_crosscompiling(d)}" - -CONFIGUREOPTS = " --build=${BUILD_SYS} \ - --host=${HOST_SYS} \ - --target=${TARGET_SYS} \ - --prefix=${prefix} \ - --exec_prefix=${exec_prefix} \ - --bindir=${bindir} \ - --sbindir=${sbindir} \ - --libexecdir=${libexecdir} \ - --datadir=${datadir} \ - --sysconfdir=${sysconfdir} \ - --sharedstatedir=${sharedstatedir} \ - --localstatedir=${localstatedir} \ - --libdir=${libdir} \ - --includedir=${includedir} \ - --oldincludedir=${oldincludedir} \ - --infodir=${infodir} \ - --mandir=${mandir} \ - ${@append_libtool_sysroot(d)} \ - ${@distro_imposed_configure_flags(d)} \ - " - -oe_runconf () { - if [ -x ${S}/configure ] ; then - ${S}/configure \ - ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" - else - oefatal "no configure script found" - 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 - fi - else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then - if [ -e ${STAGING_DATADIR}/gettext/config.rpath ]; then - ln -sf ${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 --symlink --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." - if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then - intltoolize --force --automake - fi -} - -autotools_do_configure() { - case ${PN} in - autoconf*|automake*) - ;; - *) - find ${S} -name configure.in -o -name configure.ac | \ - while read fn; do - rm -f `dirname $fn`/configure - done - if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then - olddir=`pwd` - cd ${S} - oe_autoreconf - cd $olddir - fi - ;; - esac - if [ -e ${S}/configure ]; then - oe_runconf $@ - else - oenote "nothing to configure" - fi -} - -autotools_do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -PACKAGE_PREPROCESS_FUNCS += "${@['autotools_prepackage_lamangler',''][bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes"]}" -autotools_prepackage_lamangler () { - for i in `find ${PKGD} -name "*.la"` ; do \ - sed -i -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ - -e 's:${D}::g;' \ - -e 's:-I${WORKDIR}\S*: :g;' \ - -e 's:-L${WORKDIR}\S*: :g;' \ - $i - done -} - -# STAGE_TEMP_PREFIX is used for a speedup by packaged-staging -STAGE_TEMP="${WORKDIR}/temp-staging" -STAGE_TEMP_PREFIX = "" - -autotools_stage_includes() { - if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ] - then - rm -rf ${STAGE_TEMP} - mkdir -p ${STAGE_TEMP} - make DESTDIR="${STAGE_TEMP}" install - cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} - rm -rf ${STAGE_TEMP} - fi -} - -autotools_stage_dir() { - sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2 -} - -autotools_stage_libdir() { - sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2 -} - -autotools_stage_all() { - if [ "${INHIBIT_AUTO_STAGE}" = "1" ] - then - return - fi - rm -rf ${STAGE_TEMP} - mkdir -p ${STAGE_TEMP} - oe_runmake DESTDIR="${STAGE_TEMP}" install - rm -rf ${STAGE_TEMP}/${mandir} || true - rm -rf ${STAGE_TEMP}/${infodir} || true - sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX} - rm -rf ${STAGE_TEMP} -} - -EXPORT_FUNCTIONS do_configure do_install - +inherit autotools/bootstrap
classes/autotools/bootstrap.bbclass new file +101 -0
101 lines not on this page · raw message
classes/autotools/configure.bbclass new file +118 -0
118 lines not on this page · raw message
classes/autotools/staging.inc new file +36 -0
@@ -0,0 +1,36 @@ +# STAGE_TEMP_PREFIX is used for a speedup by packaged-staging +STAGE_TEMP="${WORKDIR}/temp-staging" +STAGE_TEMP_PREFIX = "" + +autotools_stage_includes() { + if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ] + then + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + make DESTDIR="${STAGE_TEMP}" install + cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} + rm -rf ${STAGE_TEMP} + fi +} + +autotools_stage_dir() { + sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2 +} + +autotools_stage_libdir() { + sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2 +} + +autotools_stage_all() { + if [ "${INHIBIT_AUTO_STAGE}" = "1" ] + then + return + fi + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + oe_runmake DESTDIR="${STAGE_TEMP}" install + rm -rf ${STAGE_TEMP}/${mandir} || true + rm -rf ${STAGE_TEMP}/${infodir} || true + sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX} + rm -rf ${STAGE_TEMP} +}
Signature · 1 line
1.7.2.3
Re: [PATCH 4/4] autotools: split up into multiple files
Quoted 11 lines · Chris Larson
From: Chris Larson <[email protected]>
Split up autotools.bbclass into:
classes/autotools/configure.bbclass
To be inherited if one wants ./configure and config.{sub,guess} updating, but not autoreconf executionclasses/autotools/bootstrap.bbclass
Autoreconf execution
Quoted 7 lines
classes/autotools/staging.inc
Holds the old autotools staging utility functionsautotools.bbclass still exists, and simply inherits classes/autotools/bootstrap.bbclass.
Signed-off-by Chris Larson <[email protected]>
Quoted 535 lines
---
classes/autotools.bbclass | 238 +---------------------------------- classes/autotools/bootstrap.bbclass | 101 +++++++++++++++ classes/autotools/configure.bbclass | 118 +++++++++++++++++ classes/autotools/staging.inc | 36 ++++++4 files changed, 256 insertions(+), 237 deletions(-)create mode 100644 classes/autotools/bootstrap.bbclass create mode 100644 classes/autotools/configure.bbclass create mode 100644 classes/autotools/staging.inc
classes/autotools.bbclass +1
-237@@ -1,237 +1 @@ -# use autotools_stage_all for native packages -AUTOTOOLS_NATIVE_STAGE_INSTALL = "1" - -def autotools_deps(d): - if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1): - return '' - - pn = bb.data.getVar('PN', d, 1) - deps = '' - - if pn in ['autoconf-native', 'automake-native', 'help2man-native']: - return deps - deps += 'autoconf-native automake-native help2man-native ' - - if pn not in ['libtool', 'libtool-native', 'libtool-cross']: - deps += 'libtool-native ' - if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', - 'sdk') and - not d.getVar('INHIBIT_DEFAULT_DEPS', True)): - deps += 'libtool-cross ' - - return deps + 'gnu-config-native ' - -EXTRA_OEMAKE = "" - -DEPENDS_prepend = "${@autotools_deps(d)}" -DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}" -DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}" - -inherit siteinfo - -def _autotools_get_sitefiles(d): - if oe.utils.inherits(d, 'native', 'nativesdk'): - return - - sitedata = siteinfo_data(d) - for path in d.getVar("BBPATH", True).split(":"): - for element in sitedata: - filename = os.path.join(path, "site", element) - if os.path.exists(filename): - yield filename - -# Space separated list of shell scripts with variables defined to supply test -# results for autoconf tests we cannot run at build time. -export CONFIG_SITE = "${@' '.join(_autotools_get_sitefiles(d))}" - -acpaths = "default" -EXTRA_AUTORECONF = "--exclude=autopoint" - -def autotools_set_crosscompiling(d): - if not bb.data.inherits_class('native', d): - return " cross_compiling=yes" - return "" - -def append_libtool_sysroot(d): - if bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes": - if bb.data.getVar('BUILD_SYS', d, 1) == bb.data.getVar('HOST_SYS', d, 1): - return '--with-libtool-sysroot' - else: - return '--with-libtool-sysroot=${STAGING_DIR_HOST}' - return '' - -def distro_imposed_configure_flags(d): - distro_features = bb.data.getVar('DISTRO_FEATURES', d, True) or "" - distro_features = distro_features.split() - flags = set() - features = (('largefile', 'largefile'), - ('ipv6' , 'ipv6'), - ('nls' , 'nls')) - - for knob, cfgargs in features: - if isinstance(cfgargs, basestring): - cfgargs = [cfgargs] - en_or_dis = knob in distro_features and "enable" or "disable" - for flg in cfgargs: - flags.add("--%s-%s" % (en_or_dis, flg)) - return " ".join(flags) - -# EXTRA_OECONF_append = "${@autotools_set_crosscompiling(d)}" - -CONFIGUREOPTS = " --build=${BUILD_SYS} \ - --host=${HOST_SYS} \ - --target=${TARGET_SYS} \ - --prefix=${prefix} \ - --exec_prefix=${exec_prefix} \ - --bindir=${bindir} \ - --sbindir=${sbindir} \ - --libexecdir=${libexecdir} \ - --datadir=${datadir} \ - --sysconfdir=${sysconfdir} \ - --sharedstatedir=${sharedstatedir} \ - --localstatedir=${localstatedir} \ - --libdir=${libdir} \ - --includedir=${includedir} \ - --oldincludedir=${oldincludedir} \ - --infodir=${infodir} \ - --mandir=${mandir} \ - ${@append_libtool_sysroot(d)} \ - ${@distro_imposed_configure_flags(d)} \ - " - -oe_runconf () { - if [ -x ${S}/configure ] ; then - ${S}/configure \ - ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" - else - oefatal "no configure script found" - 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 - fi - else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then - if [ -e ${STAGING_DATADIR}/gettext/config.rpath ]; then - ln -sf ${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 --symlink --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." - if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then - intltoolize --force --automake - fi -} - -autotools_do_configure() { - case ${PN} in - autoconf*|automake*) - ;; - *) - find ${S} -name configure.in -o -name configure.ac | \ - while read fn; do - rm -f `dirname $fn`/configure - done - if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then - olddir=`pwd` - cd ${S} - oe_autoreconf - cd $olddir - fi - ;; - esac - if [ -e ${S}/configure ]; then - oe_runconf $@ - else - oenote "nothing to configure" - fi -} - -autotools_do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -PACKAGE_PREPROCESS_FUNCS += "${@['autotools_prepackage_lamangler',''][bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes"]}" -autotools_prepackage_lamangler () { - for i in `find ${PKGD} -name "*.la"` ; do \ - sed -i -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ - -e 's:${D}::g;' \ - -e 's:-I${WORKDIR}\S*: :g;' \ - -e 's:-L${WORKDIR}\S*: :g;' \ - $i - done -} - -# STAGE_TEMP_PREFIX is used for a speedup by packaged-staging -STAGE_TEMP="${WORKDIR}/temp-staging" -STAGE_TEMP_PREFIX = "" - -autotools_stage_includes() { - if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ] - then - rm -rf ${STAGE_TEMP} - mkdir -p ${STAGE_TEMP} - make DESTDIR="${STAGE_TEMP}" install - cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} - rm -rf ${STAGE_TEMP} - fi -} - -autotools_stage_dir() { - sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2 -} - -autotools_stage_libdir() { - sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2 -} - -autotools_stage_all() { - if [ "${INHIBIT_AUTO_STAGE}" = "1" ] - then - return - fi - rm -rf ${STAGE_TEMP} - mkdir -p ${STAGE_TEMP} - oe_runmake DESTDIR="${STAGE_TEMP}" install - rm -rf ${STAGE_TEMP}/${mandir} || true - rm -rf ${STAGE_TEMP}/${infodir} || true - sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX} - rm -rf ${STAGE_TEMP} -} - -EXPORT_FUNCTIONS do_configure do_install - +inherit autotools/bootstrapclasses/autotools/bootstrap.bbclass new file +101
-0@@ -0,0 +1,101 @@ +inherit autotools/configure + +def autotools_deps(d): + if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1): + return '' + + pn = bb.data.getVar('PN', d, 1) + deps = '' + + if pn in ['autoconf-native', 'automake-native', 'help2man-native']: + return deps + deps += 'autoconf-native automake-native help2man-native ' + + if pn not in ['libtool', 'libtool-native', 'libtool-cross']: + deps += 'libtool-native ' + if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross', + 'sdk') and + not d.getVar('INHIBIT_DEFAULT_DEPS', True)): + deps += 'libtool-cross ' + + return deps + +DEPENDS_prepend = "${@autotools_deps(d)}" +DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}" +DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}" + +acpaths = "default" +EXTRA_AUTORECONF = "--exclude=autopoint" + +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 + fi + else if grep "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then + if [ -e ${STAGING_DATADIR}/gettext/config.rpath ]; then + ln -sf ${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 --symlink --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." + if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then + intltoolize --force --automake + fi +} + +autotools_do_configure() { + case ${PN} in + autoconf*|automake*) + ;; + *) + find ${S} -name configure.in -o -name configure.ac | \ + while read fn; do + rm -f `dirname $fn`/configure + done + if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then + olddir=`pwd` + cd ${S} + oe_autoreconf + cd $olddir + fi + ;; + esac + if [ -e ${S}/configure ]; then + oe_runconf $@ + else + oenote "nothing to configure" + fi +}classes/autotools/configure.bbclass new file +118
-0@@ -0,0 +1,118 @@ +# use autotools_stage_all for native packages +AUTOTOOLS_NATIVE_STAGE_INSTALL = "1" + +DEPENDS_prepend = "${@['gnu-config-native ', ''][bool(d.getVar('INHIBIT_AUTOTOOLS_DEPS', 1))]}" +EXTRA_OEMAKE = "" + +inherit siteinfo + +def _autotools_get_sitefiles(d): + if oe.utils.inherits(d, 'native', 'nativesdk'): + return + + sitedata = siteinfo_data(d) + for path in d.getVar("BBPATH", True).split(":"): + for element in sitedata: + filename = os.path.join(path, "site", element) + if os.path.exists(filename): + yield filename + +# Space separated list of shell scripts with variables defined to supply test +# results for autoconf tests we cannot run at build time. +export CONFIG_SITE = "${@' '.join(_autotools_get_sitefiles(d))}" + +def autotools_set_crosscompiling(d): + if not bb.data.inherits_class('native', d): + return " cross_compiling=yes" + return "" + +def append_libtool_sysroot(d): + if bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes": + if bb.data.getVar('BUILD_SYS', d, 1) == bb.data.getVar('HOST_SYS', d, 1): + return '--with-libtool-sysroot' + else: + return '--with-libtool-sysroot=${STAGING_DIR_HOST}' + return '' + +def distro_imposed_configure_flags(d): + distro_features = bb.data.getVar('DISTRO_FEATURES', d, True) or "" + distro_features = distro_features.split() + flags = set() + features = (('largefile', 'largefile'), + ('ipv6' , 'ipv6'), + ('nls' , 'nls')) + + for knob, cfgargs in features: + if isinstance(cfgargs, basestring): + cfgargs = [cfgargs] + en_or_dis = knob in distro_features and "enable" or "disable" + for flg in cfgargs: + flags.add("--%s-%s" % (en_or_dis, flg)) + return " ".join(flags) + +CONFIGUREOPTS = " --build=${BUILD_SYS} \ + --host=${HOST_SYS} \ + --target=${TARGET_SYS} \ + --prefix=${prefix} \ + --exec_prefix=${exec_prefix} \ + --bindir=${bindir} \ + --sbindir=${sbindir} \ + --libexecdir=${libexecdir} \ + --datadir=${datadir} \ + --sysconfdir=${sysconfdir} \ + --sharedstatedir=${sharedstatedir} \ + --localstatedir=${localstatedir} \ + --libdir=${libdir} \ + --includedir=${includedir} \ + --oldincludedir=${oldincludedir} \ + --infodir=${infodir} \ + --mandir=${mandir} \ + ${@append_libtool_sysroot(d)} \ + ${@distro_imposed_configure_flags(d)} \ + " + +oe_runconf () { + if [ -x ${S}/configure ] ; then + ${S}/configure \ + ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" + else + oefatal "no configure script found" + fi +} + +autotools_do_configure () { + if [ -e ${S}/configure ]; then + find ${S} -name config.guess -exec \ + ln -sf ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess "{}" \; + find ${S} -name config.sub -exec \ + ln -sf ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub "{}" \; + oe_runconf $@ + else + oenote "nothing to configure" + fi +} + +autotools_do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +do_configure () { + autotools_do_configure +} + +do_install () { + autotools_do_install +} + +PACKAGE_PREPROCESS_FUNCS += "${@['autotools_prepackage_lamangler',''][bb.data.getVar('LIBTOOL_HAS_SYSROOT', d, 1) == "yes"]}" +autotools_prepackage_lamangler () { + for i in `find ${PKGD} -name "*.la"` ; do \ + sed -i -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ + -e 's:${D}::g;' \ + -e 's:-I${WORKDIR}\S*: :g;' \ + -e 's:-L${WORKDIR}\S*: :g;' \ + $i + done +} + +require classes/autotools/staging.incclasses/autotools/staging.inc new file +36
-1@@ -0,0 +1,36 @@ +# STAGE_TEMP_PREFIX is used for a speedup by packaged-staging +STAGE_TEMP="${WORKDIR}/temp-staging" +STAGE_TEMP_PREFIX = "" + +autotools_stage_includes() { + if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ] + then + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + make DESTDIR="${STAGE_TEMP}" install + cp -pPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} + rm -rf ${STAGE_TEMP} + fi +} + +autotools_stage_dir() { + sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2 +} + +autotools_stage_libdir() { + sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2 +} + +autotools_stage_all() { + if [ "${INHIBIT_AUTO_STAGE}" = "1" ] + then + return + fi + rm -rf ${STAGE_TEMP} + mkdir -p ${STAGE_TEMP} + oe_runmake DESTDIR="${STAGE_TEMP}" install + rm -rf ${STAGE_TEMP}/${mandir} || true + rm -rf ${STAGE_TEMP}/${infodir} || true + sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX} + rm -rf ${STAGE_TEMP} +} --1.7.2.3
_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Quoted 3 lines · Chris Larson
From: Chris Larson <[email protected]>
Signed-off-by Chris Larson <[email protected]>
You got rid of some oenotes I dont know why but looks ok
Quoted 116 lines
---
classes/autotools.bbclass | 60 +++++++++++++++++---------------------------1 files changed, 23 insertions(+), 37 deletions(-)classes/autotools.bbclass +0
-0@@ -17,7 +17,7 @@ def autotools_deps(d): if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross','sdk') and not
d.getVar('INHIBIT_DEFAULT_DEPS', True)):
- deps += 'libtool-cross '
+ deps += 'libtool-cross 'return deps + 'gnu-config-native '
classes/autotools.bbclass +0
-0@@ -110,22 +110,13 @@ oe_runconf () { autotools_do_configure() {case ${PN} in
- autoconf*)
- ;;
- automake*)
+ 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 anx86_64machine, which the old
- # config.sub does not support. Work around this by installing them manually
- # regardless.
- ( for ac infind ${S} -name configure.in -o -name configure.ac; do
- rm -fdirname $ac/configure
- done )
+ find ${S} -name configure.in -o -name configure.ac | \
+ while read fn; do
+ rm -fdirname $fn/configure
+ done
if [ -e ${S}/configure.in -o -e ${S}/configure.ac ]; then olddir=pwd
cd ${S}classes/autotools.bbclass +0
-0@@ -138,9 +129,7 @@ autotools_do_configure() {else
acpaths="${acpaths}"
fi
- AUTOV=automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"
- automake --version
- echo "AUTOV is $AUTOV"
+ 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"classes/autotools.bbclass +0
-0@@ -151,34 +140,31 @@ autotools_do_configure() {rm -f aclocal.m4
fi
if [ -e configure.in ]; then
- CONFIGURE_AC=configure.in
+ CONFIGURE_AC=configure.in
else
- CONFIGURE_AC=configure.ac
+ CONFIGURE_AC=configure.ac
fi
- if grep -q "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC; then
- if grep -q "sed.*POTFILES" $CONFIGURE_AC; then
- : do nothing -- we still have an old unmodified configure.ac
- else
- oenote Executing glib-gettextize --force --copy
- echo "no" | glib-gettextize --force --copy
- fi
- else if grep -q "^[[:space:]]*AM_GNU_GETTEXT" $CONFIGURE_AC; 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
+ 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
fifi
for aux in m4sed -n -e '/^[[:space:]]*AC_CONFIG_MACRO_DIR/s|[^(]*([[]*\([^])]*\)[]]*)|\1|p' $CONFIGURE_AC; do mkdir -p ${aux}
done
- oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed."
- if grep -q "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC; then
- oenote Executing intltoolize --copy --force --automake
- intltoolize --copy --force --automake
+ if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
+ intltoolize --copy --force --automake
fi
cd $olddir
fi
--
1.7.2.3_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel