mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
autotools-bootstrap: make bootstrap package specific.
The theory behind this bbclass was reasonable, with the primary goal being to avoid multiple downloads of gnulib, but it neglected the fact that packages would be shipping a specific version of the ./bootstrap which will support some flags but maybe not all the latest ones from the latest gnulib/build-aux/bootstrap file. I attempted to simply update the two pkgs to use the latest copy of bootstrap from gnulib but this of course triggers the descent into autoconf hell that we all know and love. Rather than futzing with the packages configure.ac and deviating from what the pkg maintainers intended and tested, we can just let the packages have independent calls to ./bootstrap with whatever flags are needed. The goal of this commit is to move the prepend out to the packages and then delete the class without any real functional change ; i.e. a purely mechanical change. Then we can adjust each package to ensure it will still build with a modern host, in an independent fashion, while keeping the main advantage of not fetching gnulib two extra times for netcf and fontforge. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
parent
761a6866c7
commit
3cec94aef8
|
|
@ -16,13 +16,33 @@ DEPENDS += "augeas libnl libxslt libxml2 gnulib"
|
|||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit gettext autotools-bootstrap pkgconfig systemd
|
||||
inherit gettext autotools pkgconfig systemd
|
||||
|
||||
EXTRA_OECONF_append_class-target = " --with-driver=redhat"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd", "", d)}"
|
||||
PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts,"
|
||||
|
||||
do_configure_prepend() {
|
||||
currdir=`pwd`
|
||||
cd ${S}
|
||||
|
||||
# avoid bootstrap cloning gnulib on every configure
|
||||
cat >.gitmodules <<EOF
|
||||
[submodule "gnulib"]
|
||||
path = gnulib
|
||||
url = git://git.sv.gnu.org/gnulib
|
||||
EOF
|
||||
cp -rf ${STAGING_DATADIR}/gnulib ${S}
|
||||
|
||||
# --force to avoid errors on reconfigure e.g if recipes changed we depend on
|
||||
# | bootstrap: running: libtoolize --quiet
|
||||
# | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
|
||||
# | ...
|
||||
./bootstrap --force
|
||||
cd $currdir
|
||||
}
|
||||
|
||||
do_install_append() {
|
||||
if ${@base_contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
install -d ${D}${systemd_unitdir}/system
|
||||
|
|
|
|||
|
|
@ -1,24 +0,0 @@
|
|||
# Class to inherit when you want to build with autotools after running bootstrap
|
||||
inherit autotools
|
||||
|
||||
DEPENDS += "gnulib"
|
||||
|
||||
do_configure_prepend() {
|
||||
currdir=`pwd`
|
||||
cd ${S}
|
||||
|
||||
# avoid bootstrap cloning gnulib on every configure
|
||||
cat >.gitmodules <<EOF
|
||||
[submodule "gnulib"]
|
||||
path = gnulib
|
||||
url = git://git.sv.gnu.org/gnulib
|
||||
EOF
|
||||
cp -rf ${STAGING_DATADIR}/gnulib ${S}
|
||||
|
||||
# --force to avoid errors on reconfigure e.g if recipes changed we depend on
|
||||
# | bootstrap: running: libtoolize --quiet
|
||||
# | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
|
||||
# | ...
|
||||
./bootstrap --force
|
||||
cd $currdir
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = " \
|
|||
DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash"
|
||||
DEPENDS_append_class-target = " libxi"
|
||||
|
||||
inherit autotools-bootstrap pkgconfig pythonnative distro_features_check
|
||||
inherit autotools pkgconfig pythonnative distro_features_check
|
||||
|
||||
REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
|
||||
|
||||
|
|
@ -24,8 +24,24 @@ do_configure_prepend() {
|
|||
# uthash sources are expected in uthash/src
|
||||
currdir=`pwd`
|
||||
cd ${S}
|
||||
|
||||
mkdir -p uthash/src
|
||||
cp ${STAGING_INCDIR}/ut*.h uthash/src
|
||||
|
||||
# avoid bootstrap cloning gnulib on every configure
|
||||
cat >.gitmodules <<EOF
|
||||
[submodule "gnulib"]
|
||||
path = gnulib
|
||||
url = git://git.sv.gnu.org/gnulib
|
||||
EOF
|
||||
cp -rf ${STAGING_DATADIR}/gnulib ${S}
|
||||
|
||||
# --force to avoid errors on reconfigure e.g if recipes changed we depend on
|
||||
# | bootstrap: running: libtoolize --quiet
|
||||
# | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
|
||||
# | ...
|
||||
./bootstrap --force
|
||||
|
||||
cd $currdir
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user