mirror of
git://git.yoctoproject.org/poky
synced 2026-09-26 15:13:46 +00:00
When we stashed the gcc build directory for use in generating the various runtimes
we were being lazy and just used the staging directory. With recipe specific
sysroots this means we're copying a large chunk of data around with the cross
compiler which we don't really need in most cases.
Separate out the data into its own task and inject this into the configure
step. We have to do that here since autotools will wipe out ${B} if it thinks
we're rebuilding and we therefore have to time its recreation after that.
This also takes the opportunity to remove some pointless (as far as I can tell)
conditionals from the do_install code.
(From OE-Core rev: dcf15ccf3cc9d55e77228ba8d526f967fc9791b4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
76 lines
2.3 KiB
PHP
76 lines
2.3 KiB
PHP
require gcc-configure-common.inc
|
|
|
|
EXTRA_OECONF_PATHS = "\
|
|
--with-sysroot=/not/exist \
|
|
--with-build-sysroot=${STAGING_DIR_TARGET} \
|
|
"
|
|
|
|
do_configure () {
|
|
target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
|
|
|
|
echo "Configuring libgfortran"
|
|
rm -rf ${B}/$target/libgfortran/
|
|
mkdir -p ${B}/$target/libgfortran/
|
|
cd ${B}/$target/libgfortran/
|
|
chmod a+x ${S}/libgfortran/configure
|
|
relpath=${@os.path.relpath("${S}/libgfortran", "${B}/$target/libgfortran")}
|
|
$relpath/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
|
|
# Easiest way to stop bad RPATHs getting into the library since we have a
|
|
# broken libtool here
|
|
sed -i -e 's/hardcode_into_libs=yes/hardcode_into_libs=no/' ${B}/$target/libgfortran/libtool
|
|
}
|
|
EXTRACONFFUNCS += "extract_stashed_builddir"
|
|
do_configure[depends] += "${COMPILERDEP}"
|
|
|
|
do_compile () {
|
|
target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
|
|
cd ${B}/$target/libgfortran/
|
|
oe_runmake MULTIBUILDTOP=${B}/$target/libgfortran/
|
|
}
|
|
|
|
do_install () {
|
|
target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##`
|
|
cd ${B}/$target/libgfortran/
|
|
oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/libgfortran/ install
|
|
if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude ]; then
|
|
rmdir --ignore-fail-on-non-empty -p ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude
|
|
fi
|
|
if [ -d ${D}${infodir} ]; then
|
|
rmdir --ignore-fail-on-non-empty -p ${D}${infodir}
|
|
fi
|
|
chown -R root:root ${D}
|
|
}
|
|
|
|
INHIBIT_DEFAULT_DEPS = "1"
|
|
DEPENDS = "gcc-runtime"
|
|
|
|
BBCLASSEXTEND = "nativesdk"
|
|
|
|
PACKAGES = "\
|
|
${PN}-dbg \
|
|
libgfortran \
|
|
libgfortran-dev \
|
|
libgfortran-staticdev \
|
|
"
|
|
FILES_${PN} = "${libdir}/libgfortran.so.*"
|
|
FILES_${PN}-dev = "\
|
|
${libdir}/libgfortran*.so \
|
|
${libdir}/libgfortran.spec \
|
|
${libdir}/libgfortran.la \
|
|
${libdir}/gcc/${TARGET_SYS}/${BINV}/libgfortranbegin.* \
|
|
${libdir}/gcc/${TARGET_SYS}/${BINV}/libcaf_single* \
|
|
"
|
|
FILES_${PN}-staticdev = "${libdir}/libgfortran.a"
|
|
|
|
INSANE_SKIP_${MLPREFIX}libgfortran-dev = "staticdev"
|
|
|
|
do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata"
|
|
|
|
python __anonymous () {
|
|
f = d.getVar("FORTRAN")
|
|
if "fortran" not in f:
|
|
raise bb.parse.SkipPackage("libgfortran needs fortran support to be enabled in the compiler")
|
|
}
|