Skip to contentSkip to conversation

autotools: break up into multiple files

PATCH In review Chris Larson 2 participants 8 messages Feb 16, 2011

lore
Share & tools
lore
#0 lore raw

PATCH 1/4 autotools: break up into multiple files

From: Chris Larson <[email protected]>

Split up most of autotools.bbclass into:

- classes/autotools/configure.inc
- classes/autotools/bootstrap.inc
- classes/autotools/staging.inc

---
 classes/autotools.bbclass       |  243 ++++-----------------------------------
 classes/autotools/bootstrap.inc |   70 +++++++++++
 classes/autotools/configure.inc |   91 +++++++++++++++
 classes/autotools/staging.inc   |   36 ++++++
 4 files changed, 222 insertions(+), 218 deletions(-)
 create mode 100644 classes/autotools/bootstrap.inc
 create mode 100644 classes/autotools/configure.inc
 create mode 100644 classes/autotools/staging.inc
classes/autotools.bbclass +25 -218
index a88a4d1..60925e9 100644
@@ -1,237 +1,44 @@
-# use autotools_stage_all for native packages
-AUTOTOOLS_NATIVE_STAGE_INSTALL = "1"
+require classes/autotools/staging.inc
+require classes/autotools/bootstrap.inc
+require classes/autotools/configure.inc
 
 def autotools_deps(d):
-	if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
-		return ''
+    if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
+        return ''
 
-	pn = bb.data.getVar('PN', d, 1)
-	deps = ''
+    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 in ['autoconf-native', 'automake-native', 'help2man-native']:
+        return deps
 
-	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 '
+    deps += 'autoconf-native automake-native help2man-native '
 
-	return deps + 'gnu-config-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 '
 
-EXTRA_OEMAKE = ""
+    return deps + 'gnu-config-native '
 
 DEPENDS_prepend = "${@autotools_deps(d)}"
 DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}"
 DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}"
 
-inherit siteinfo
+autotools_do_configure () {
+    autotools_do_bootstrap
 
-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
+    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}
+    oe_runmake 'DESTDIR=${D}' install
 }
 
 EXPORT_FUNCTIONS do_configure do_install
-
classes/autotools/bootstrap.inc new file +70 -0

70 lines not on this page · raw message

classes/autotools/configure.inc new file +91 -0

91 lines not on this page · raw message

classes/autotools/staging.inc new file +36 -0
new file mode 100644
index 0000000..b91f4a6
@@ -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
#1 lore raw

PATCH 2/4 autotools: shift deps into AUTOTOOLS_DEPENDS

From: Chris Larson <[email protected]>

---
 classes/autotools.bbclass |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
classes/autotools.bbclass +6 -4
index 60925e9..3c124ae 100644
@@ -21,11 +21,13 @@ def autotools_deps(d):
             not d.getVar('INHIBIT_DEFAULT_DEPS', True)):
             deps += 'libtool-cross '
 
-    return deps + 'gnu-config-native '
+    return deps + ' gnu-config-native'
 
-DEPENDS_prepend = "${@autotools_deps(d)}"
-DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}"
-DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}"
+AUTOTOOLS_DEPENDS = "${@autotools_deps(d)}"
+
+DEPENDS_prepend = "${AUTOTOOLS_DEPENDS} "
+DEPENDS_virtclass-native_prepend = "${AUTOTOOLS_DEPENDS} "
+DEPENDS_virtclass-nativesdk_prepend = "${AUTOTOOLS_DEPENDS} "
 
 autotools_do_configure () {
     autotools_do_bootstrap
Signature · 1 line
1.7.2.3
Acked-by on v1 2/4
#2 lore raw

Re: [PATCH 2/4] autotools: shift deps into AUTOTOOLS_DEPENDS

Quoted 3 lines · Chris Larson

From: Chris Larson <[email protected]>

Quoted 34 lines
---
 classes/autotools.bbclass |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)
classes/autotools.bbclass +6 -4
index 60925e9..3c124ae 100644
@@ -21,11 +21,13 @@ def autotools_deps(d):
             not d.getVar('INHIBIT_DEFAULT_DEPS', True)):
             deps += 'libtool-cross '
 
-    return deps + 'gnu-config-native '
+    return deps + ' gnu-config-native'
 
-DEPENDS_prepend = "${@autotools_deps(d)}"
-DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}"
-DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}"
+AUTOTOOLS_DEPENDS = "${@autotools_deps(d)}"
+
+DEPENDS_prepend = "${AUTOTOOLS_DEPENDS} "
+DEPENDS_virtclass-native_prepend = "${AUTOTOOLS_DEPENDS} "
+DEPENDS_virtclass-nativesdk_prepend = "${AUTOTOOLS_DEPENDS} "
 
 autotools_do_configure () {
     autotools_do_bootstrap
Signature · 7 lines
1.7.2.3


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Signature · 1 line
-Khem
#3 lore raw

PATCH 3/4 autotools: add INHIBIT_AUTOTOOLS_BOOTSTRAP

In reply to Chris Larson

From: Chris Larson <[email protected]>

Setting this variable to a true value (obeying the semantics of the 'boolean' type in oe.types) will result in not running autoreconf, and not depending on the things which the autoreconf requires. Note that the config.guess/config.sub files are still updated when using INHIBIT_AUTOTOOLS_BOOTSTRAP, and these are updated directly via a find+ln rather than through gnu-configize usage in order to avoid the dependency upon autoconf/automake (gnu-configize is included with gnu-config, but requires the perl modules from the other recipes).

---
 classes/autotools.bbclass |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)
classes/autotools.bbclass +22 -7
index 3c124ae..dd52e03 100644
@@ -2,26 +2,31 @@ require classes/autotools/staging.inc
 require classes/autotools/bootstrap.inc
 require classes/autotools/configure.inc
 
+INHIBIT_AUTOTOOLS_BOOTSTRAP ?= "false"
+INHIBIT_AUTOTOOLS_BOOTSTRAP[type] = "boolean"
+
 def autotools_deps(d):
     if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
         return ''
 
-    pn = bb.data.getVar('PN', d, 1)
-    deps = ''
+    deps = 'gnu-config-native'
+    if oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', d):
+        return deps
 
+    pn = bb.data.getVar('PN', d, 1)
     if pn in ['autoconf-native', 'automake-native', 'help2man-native']:
         return deps
 
-    deps += 'autoconf-native automake-native help2man-native '
+    deps += ' autoconf-native automake-native help2man-native'
 
     if pn not in ['libtool', 'libtool-native', 'libtool-cross']:
-        deps += 'libtool-native '
+        deps += ' libtool-native'
         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'
+    return deps
 
 AUTOTOOLS_DEPENDS = "${@autotools_deps(d)}"
 
@@ -29,8 +34,18 @@ DEPENDS_prepend = "${AUTOTOOLS_DEPENDS} "
 DEPENDS_virtclass-native_prepend = "${AUTOTOOLS_DEPENDS} "
 DEPENDS_virtclass-nativesdk_prepend = "${AUTOTOOLS_DEPENDS} "
 
+_INHIBITED = "${@base_ifelse(oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', \
+                                                 d), \
+                             'y', 'n')}"
 autotools_do_configure () {
-    autotools_do_bootstrap
+    if [ "${_INHIBITED}" = "n" ]; then
+        autotools_do_bootstrap
+    else
+        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 "{}" \;
+    fi
 
     if [ -e ${S}/configure ]; then
         oe_runconf $@
Signature · 1 line
1.7.2.3
Acked-by on v1 3/4
#4 lore raw

Re: [PATCH 3/4] autotools: add INHIBIT_AUTOTOOLS_BOOTSTRAP

Quoted 11 lines · Chris Larson

From: Chris Larson <[email protected]>

Setting this variable to a true value (obeying the semantics of the 'boolean' type in oe.types) will result in not running autoreconf, and not depending on the things which the autoreconf requires. Note that the config.guess/config.sub files are still updated when using INHIBIT_AUTOTOOLS_BOOTSTRAP, and these are updated directly via a find+ln rather than through gnu-configize usage in order to avoid the dependency upon autoconf/automake (gnu-configize is included with gnu-config, but requires the perl modules from the other recipes).

Quoted 1 line
Quoted 74 lines
---
 classes/autotools.bbclass |   29 ++++++++++++++++++++++-------
 1 files changed, 22 insertions(+), 7 deletions(-)
classes/autotools.bbclass +22 -7
index 3c124ae..dd52e03 100644
@@ -2,26 +2,31 @@ require classes/autotools/staging.inc
 require classes/autotools/bootstrap.inc
 require classes/autotools/configure.inc
 
+INHIBIT_AUTOTOOLS_BOOTSTRAP ?= "false"
+INHIBIT_AUTOTOOLS_BOOTSTRAP[type] = "boolean"
+
 def autotools_deps(d):
     if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
         return ''
 
-    pn = bb.data.getVar('PN', d, 1)
-    deps = ''
+    deps = 'gnu-config-native'
+    if oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', d):
+        return deps
 
+    pn = bb.data.getVar('PN', d, 1)
     if pn in ['autoconf-native', 'automake-native', 'help2man-native']:
         return deps
 
-    deps += 'autoconf-native automake-native help2man-native '
+    deps += ' autoconf-native automake-native help2man-native'
 
     if pn not in ['libtool', 'libtool-native', 'libtool-cross']:
-        deps += 'libtool-native '
+        deps += ' libtool-native'
         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'
+    return deps
 
 AUTOTOOLS_DEPENDS = "${@autotools_deps(d)}"
 
@@ -29,8 +34,18 @@ DEPENDS_prepend = "${AUTOTOOLS_DEPENDS} "
 DEPENDS_virtclass-native_prepend = "${AUTOTOOLS_DEPENDS} "
 DEPENDS_virtclass-nativesdk_prepend = "${AUTOTOOLS_DEPENDS} "
 
+_INHIBITED = "${@base_ifelse(oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', \
+                                                 d), \
+                             'y', 'n')}"
 autotools_do_configure () {
-    autotools_do_bootstrap
+    if [ "${_INHIBITED}" = "n" ]; then
+        autotools_do_bootstrap
+    else
+        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 "{}" \;
+    fi
 
     if [ -e ${S}/configure ]; then
         oe_runconf $@
Signature · 7 lines
1.7.2.3


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Signature · 1 line
-Khem
#5 lore raw

PATCH 4/4 autotools: avoid special casing autoconf/automake/help2man

In reply to Chris Larson

From: Chris Larson <[email protected]>

---
 classes/autotools.bbclass           |    6 +-----
 recipes/autoconf/autoconf.inc       |    3 ++-
 recipes/automake/automake.inc       |    4 +---
 recipes/help2man/help2man_1.36.4.bb |    6 +-----
 recipes/help2man/help2man_1.38.2.bb |    6 +-----
 5 files changed, 6 insertions(+), 19 deletions(-)
classes/autotools.bbclass +1 -5
index dd52e03..eaeca7f 100644
@@ -13,13 +13,9 @@ def autotools_deps(d):
     if oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', d):
         return deps
 
-    pn = bb.data.getVar('PN', d, 1)
-    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']:
+    if d.getVar('BPN', True) != 'libtool':
         deps += ' libtool-native'
         if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross',
                                   'sdk') and
recipes/autoconf/autoconf.inc +2 -1
index 7f22c2b..d13b61e 100644
@@ -5,8 +5,9 @@ HOMEPAGE = "http://www.gnu.org/software/autoconf/"
 SECTION = "devel"
 DEPENDS += "m4-native perl-native"
 RDEPENDS_${PN} = "m4 perl gnu-config"
-DEPENDS_virtclass-native = "m4-native gnu-config-native perl-native"
+DEPENDS_virtclass-native = "m4-native perl-native"
 RDEPENDS_${PN}_virtclass-native = "m4-native gnu-config-native perl-native"
+INHIBIT_AUTOTOOLS_BOOTSTRAP_virtclass-native = "true"
 
 INC_PR = "r13"
 
recipes/automake/automake.inc +1 -3
index de4df34..6ed21cd 100644
@@ -28,6 +28,7 @@ RDEPENDS_automake += "\
     perl-module-strict \
     perl-module-text-parsewords \
     perl-module-vars "
+INHIBIT_AUTOTOOLS_BOOTSTRAP_virtclass-native = "true"
 SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2;name=automake"
 INC_PR = "r4"
 AUTOMAKE_API = "${@".".join(bb.data.getVar("PV",d,1).split(".")[0:2])}"
@@ -36,9 +37,6 @@ inherit autotools
 
 FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*"
 
-do_configure_append() {
-}
-
 do_install_append () {
 	autotools_do_install
 	# replace paths to STAGING_BINDIR_NATIVE/perl with ${bindir}/perl
recipes/help2man/help2man_1.36.4.bb +1 -5
index 8cb5530..8cd4475 100644
@@ -5,6 +5,7 @@ LICENSE     = "GPLv2"
 DEPENDS     = "gettext-native perl-native liblocale-gettext-perl-native"
 DEPENDS_virtclass-native = "perl-native autoconf-native automake-native"
 RDEPENDS_${PN}    = "gettext perl liblocale-gettext-perl"
+INHIBIT_AUTOTOOLS_BOOTSTRAP = "true"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
@@ -16,11 +17,6 @@ BBCLASSEXTEND = "native"
 
 PR = "r3"
 
-# We don't want to reconfigure things
-do_configure() {
-	oe_runconf
-}
-
 do_install_append () {
 	# Make sure we use /usr/bin/env perl
 	sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
recipes/help2man/help2man_1.38.2.bb +1 -5
index ab06186..795bad6 100644
@@ -5,6 +5,7 @@ DEPENDS = "gettext-native perl-native liblocale-gettext-perl-native"
 DEPENDS_virtclass-native = "perl-native autoconf-native automake-native"
 RDEPENDS_${PN} = "gettext perl liblocale-gettext-perl"
 RDEPENDS_${PN}_virtclass-native = ""
+INHIBIT_AUTOTOOLS_BOOTSTRAP = "true"
 PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
@@ -18,11 +19,6 @@ EXTRA_OECONF = "--disable-nls"
 
 BBCLASSEXTEND = "native"
 
-# We don't want to reconfigure things
-do_configure() {
-	oe_runconf
-}
-
 do_install_append () {
 	# Make sure we use /usr/bin/env perl
 	sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
Signature · 1 line
1.7.2.3
Acked-by on v1 4/4
#6 lore raw

Re: [PATCH 4/4] autotools: avoid special casing autoconf/automake/help2man

Quoted 3 lines · Chris Larson

From: Chris Larson <[email protected]>

we need to document INHIBIT_AUTOTOOLS_BOOTSTRAP

Quoted 120 lines
---
 classes/autotools.bbclass           |    6 +-----
 recipes/autoconf/autoconf.inc       |    3 ++-
 recipes/automake/automake.inc       |    4 +---
 recipes/help2man/help2man_1.36.4.bb |    6 +-----
 recipes/help2man/help2man_1.38.2.bb |    6 +-----
 5 files changed, 6 insertions(+), 19 deletions(-)
classes/autotools.bbclass +1 -5
index dd52e03..eaeca7f 100644
@@ -13,13 +13,9 @@ def autotools_deps(d):
     if oe.data.typed_value('INHIBIT_AUTOTOOLS_BOOTSTRAP', d):
         return deps
 
-    pn = bb.data.getVar('PN', d, 1)
-    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']:
+    if d.getVar('BPN', True) != 'libtool':
         deps += ' libtool-native'
         if (not oe.utils.inherits(d, 'native', 'nativesdk', 'cross',
                                   'sdk') and
recipes/autoconf/autoconf.inc +2 -1
index 7f22c2b..d13b61e 100644
@@ -5,8 +5,9 @@ HOMEPAGE = "http://www.gnu.org/software/autoconf/"
 SECTION = "devel"
 DEPENDS += "m4-native perl-native"
 RDEPENDS_${PN} = "m4 perl gnu-config"
-DEPENDS_virtclass-native = "m4-native gnu-config-native perl-native"
+DEPENDS_virtclass-native = "m4-native perl-native"
 RDEPENDS_${PN}_virtclass-native = "m4-native gnu-config-native perl-native"
+INHIBIT_AUTOTOOLS_BOOTSTRAP_virtclass-native = "true"
 
 INC_PR = "r13"
 
recipes/automake/automake.inc +1 -3
index de4df34..6ed21cd 100644
@@ -28,6 +28,7 @@ RDEPENDS_automake += "\
     perl-module-strict \
     perl-module-text-parsewords \
     perl-module-vars "
+INHIBIT_AUTOTOOLS_BOOTSTRAP_virtclass-native = "true"
 SRC_URI = "${GNU_MIRROR}/automake/automake-${PV}.tar.bz2;name=automake"
 INC_PR = "r4"
 AUTOMAKE_API = "${@".".join(bb.data.getVar("PV",d,1).split(".")[0:2])}"
@@ -36,9 +37,6 @@ inherit autotools
 
 FILES_${PN} += "${datadir}/automake* ${datadir}/aclocal*"
 
-do_configure_append() {
-}
-
 do_install_append () {
 	autotools_do_install
 	# replace paths to STAGING_BINDIR_NATIVE/perl with ${bindir}/perl
recipes/help2man/help2man_1.36.4.bb +1 -5
index 8cb5530..8cd4475 100644
@@ -5,6 +5,7 @@ LICENSE     = "GPLv2"
 DEPENDS     = "gettext-native perl-native liblocale-gettext-perl-native"
 DEPENDS_virtclass-native = "perl-native autoconf-native automake-native"
 RDEPENDS_${PN}    = "gettext perl liblocale-gettext-perl"
+INHIBIT_AUTOTOOLS_BOOTSTRAP = "true"
 
 TARGET_CC_ARCH += "${LDFLAGS}"
 
@@ -16,11 +17,6 @@ BBCLASSEXTEND = "native"
 
 PR = "r3"
 
-# We don't want to reconfigure things
-do_configure() {
-	oe_runconf
-}
-
 do_install_append () {
 	# Make sure we use /usr/bin/env perl
 	sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
recipes/help2man/help2man_1.38.2.bb +1 -5
index ab06186..795bad6 100644
@@ -5,6 +5,7 @@ DEPENDS = "gettext-native perl-native liblocale-gettext-perl-native"
 DEPENDS_virtclass-native = "perl-native autoconf-native automake-native"
 RDEPENDS_${PN} = "gettext perl liblocale-gettext-perl"
 RDEPENDS_${PN}_virtclass-native = ""
+INHIBIT_AUTOTOOLS_BOOTSTRAP = "true"
 PR = "r2"
 
 SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
@@ -18,11 +19,6 @@ EXTRA_OECONF = "--disable-nls"
 
 BBCLASSEXTEND = "native"
 
-# We don't want to reconfigure things
-do_configure() {
-	oe_runconf
-}
-
 do_install_append () {
 	# Make sure we use /usr/bin/env perl
 	sed -i -e "1s:#!.*:#! /usr/bin/env perl:" ${D}${bindir}/help2man
Signature · 7 lines
1.7.2.3


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Signature · 1 line
-Khem
Acked-by on v1 1/4
#7 lore raw
In reply to Chris Larson
Quoted 9 lines · Chris Larson

From: Chris Larson <[email protected]>

Split up most of autotools.bbclass into:

- classes/autotools/configure.inc
- classes/autotools/bootstrap.inc
- classes/autotools/staging.inc

Quoted 500 lines
---
 classes/autotools.bbclass       |  243 ++++-----------------------------------
 classes/autotools/bootstrap.inc |   70 +++++++++++
 classes/autotools/configure.inc |   91 +++++++++++++++
 classes/autotools/staging.inc   |   36 ++++++
 4 files changed, 222 insertions(+), 218 deletions(-)
 create mode 100644 classes/autotools/bootstrap.inc
 create mode 100644 classes/autotools/configure.inc
 create mode 100644 classes/autotools/staging.inc
classes/autotools.bbclass +25 -218
index a88a4d1..60925e9 100644
@@ -1,237 +1,44 @@
-# use autotools_stage_all for native packages
-AUTOTOOLS_NATIVE_STAGE_INSTALL = "1"
+require classes/autotools/staging.inc
+require classes/autotools/bootstrap.inc
+require classes/autotools/configure.inc
 
 def autotools_deps(d):
-	if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
-		return ''
+    if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1):
+        return ''
 
-	pn = bb.data.getVar('PN', d, 1)
-	deps = ''
+    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 in ['autoconf-native', 'automake-native', 'help2man-native']:
+        return deps
 
-	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 '
+    deps += 'autoconf-native automake-native help2man-native '
 
-	return deps + 'gnu-config-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 '
 
-EXTRA_OEMAKE = ""
+    return deps + 'gnu-config-native '
 
 DEPENDS_prepend = "${@autotools_deps(d)}"
 DEPENDS_virtclass-native_prepend = "${@autotools_deps(d)}"
 DEPENDS_virtclass-nativesdk_prepend = "${@autotools_deps(d)}"
 
-inherit siteinfo
+autotools_do_configure () {
+    autotools_do_bootstrap
 
-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
+    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}
+    oe_runmake 'DESTDIR=${D}' install
 }
 
 EXPORT_FUNCTIONS do_configure do_install
-
classes/autotools/bootstrap.inc new file +70 -0
new file mode 100644
index 0000000..4e71568
@@ -0,0 +1,70 @@
+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_bootstrap() {
+    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
+}
classes/autotools/configure.inc new file +91 -0
new file mode 100644
index 0000000..02cd918
@@ -0,0 +1,91 @@
+# use autotools_stage_all for native packages
+AUTOTOOLS_NATIVE_STAGE_INSTALL = "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
+}
+
+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
+}
classes/autotools/staging.inc new file +36 -0
new file mode 100644
index 0000000..b91f4a6
@@ -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 · 7 lines
1.7.2.3


_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
Signature · 1 line
-Khem