autotools.bbclass: Separate out useful staging functions into base.bbclass and call from autotools classes

Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Richard Purdie
2009-11-02 17:10:51 +00:00
parent 1383f0fb4c
commit 6ea78d6489
2 changed files with 64 additions and 45 deletions

View File

@@ -170,34 +170,11 @@ autotools_stage_includes() {
}
autotools_stage_dir() {
from="$1"
to="$2"
prefix="${STAGE_TEMP_PREFIX}"
# This will remove empty directories so we can ignore them
rmdir "$from" 2> /dev/null || true
if [ -d "$from" ]; then
mkdir -p "$prefix$to"
cp -fpPR "$from"/* "$prefix$to"
fi
sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2
}
autotools_stage_libdir() {
from="$1"
to="$2"
olddir=`pwd`
cd $from
las=$(find . -name \*.la -type f)
cd $olddir
echo "Found la files: $las"
for i in $las
do
sed -e 's/^installed=yes$/installed=no/' \
-e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \
-e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \
-i $from/$i
done
autotools_stage_dir $from $to
sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2
}
@@ -209,26 +186,8 @@ autotools_stage_all() {
rm -rf ${STAGE_TEMP}
mkdir -p ${STAGE_TEMP}
oe_runmake DESTDIR="${STAGE_TEMP}" install
autotools_stage_dir ${STAGE_TEMP}/${includedir} ${STAGING_INCDIR}
if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
autotools_stage_dir ${STAGE_TEMP}/${bindir} ${STAGING_DIR_HOST}${bindir}
autotools_stage_dir ${STAGE_TEMP}/${sbindir} ${STAGING_DIR_HOST}${sbindir}
autotools_stage_dir ${STAGE_TEMP}/${base_bindir} ${STAGING_DIR_HOST}${base_bindir}
autotools_stage_dir ${STAGE_TEMP}/${base_sbindir} ${STAGING_DIR_HOST}${base_sbindir}
autotools_stage_dir ${STAGE_TEMP}/${libexecdir} ${STAGING_DIR_HOST}${libexecdir}
fi
if [ -d ${STAGE_TEMP}/${libdir} ]
then
autotools_stage_libdir ${STAGE_TEMP}/${libdir} ${STAGING_LIBDIR}
fi
if [ -d ${STAGE_TEMP}/${base_libdir} ]
then
autotools_stage_libdir ${STAGE_TEMP}/${base_libdir} ${STAGING_DIR_HOST}${base_libdir}
fi
rm -rf ${STAGE_TEMP}/${mandir} || true
rm -rf ${STAGE_TEMP}/${infodir} || true
autotools_stage_dir ${STAGE_TEMP}/${datadir} ${STAGING_DATADIR}
#rm -rf ${STAGE_TEMP}
sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX}
}
EXPORT_FUNCTIONS do_configure do_install

View File

@@ -922,6 +922,66 @@ base_do_compile() {
fi
}
sysroot_stage_dir() {
src="$1"
dest="$2"
# This will remove empty directories so we can ignore them
rmdir "$src" 2> /dev/null || true
if [ -d "$src" ]; then
mkdir -p "$dest"
cp -fpPR "$src"/* "$dest"
fi
}
sysroot_stage_libdir() {
src="$1"
dest="$2"
olddir=`pwd`
cd $src
las=$(find . -name \*.la -type f)
cd $olddir
echo "Found la files: $las"
for i in $las
do
sed -e 's/^installed=yes$/installed=no/' \
-e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${STAGING_LIBDIR}/\1,g' \
-e "/^dependency_libs=/s,\([[:space:]']\)${libdir},\1${STAGING_LIBDIR},g" \
-i $src/$i
done
sysroot_stage_dir $src $dest
}
sysroot_stage_dirs() {
from="$1"
to="$2"
sysroot_stage_dir $from${includedir} $to${STAGING_INCDIR}
if [ "${BUILD_SYS}" = "${HOST_SYS}" ]; then
sysroot_stage_dir $from${bindir} $to${STAGING_DIR_HOST}${bindir}
sysroot_stage_dir $from${sbindir} $to${STAGING_DIR_HOST}${sbindir}
sysroot_stage_dir $from${base_bindir} $to${STAGING_DIR_HOST}${base_bindir}
sysroot_stage_dir $from${base_sbindir} $to${STAGING_DIR_HOST}${base_sbindir}
sysroot_stage_dir $from${libexecdir} $to${STAGING_DIR_HOST}${libexecdir}
fi
if [ -d $from${libdir} ]
then
sysroot_stage_libdir $from/${libdir} $to${STAGING_LIBDIR}
fi
if [ -d $from${base_libdir} ]
then
sysroot_stage_libdir $from${base_libdir} $to${STAGING_DIR_HOST}${base_libdir}
fi
sysroot_stage_dir $from${datadir} $to${STAGING_DATADIR}
}
sysroot_stage_all() {
sysroot_stage_dirs ${D} ${SYSROOT_DESTDIR}
}
base_do_stage () {
:
}