diff options
Diffstat (limited to 'meta/packages/gcc/gcc-package-cross.inc')
-rw-r--r-- | meta/packages/gcc/gcc-package-cross.inc | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/meta/packages/gcc/gcc-package-cross.inc b/meta/packages/gcc/gcc-package-cross.inc new file mode 100644 index 0000000000..4b1f8f68e8 --- /dev/null +++ b/meta/packages/gcc/gcc-package-cross.inc | |||
@@ -0,0 +1,77 @@ | |||
1 | # Packages emitted by our gcc-cross builds. | ||
2 | # | ||
3 | INHIBIT_PACKAGE_STRIP ?= "" | ||
4 | HAS_G2C ?= "yes" | ||
5 | HAS_GFORTRAN ?= "no" | ||
6 | OLD_INHIBIT_PACKAGE_STRIP := "${INHIBIT_PACKAGE_STRIP}" | ||
7 | INHIBIT_PACKAGE_STRIP = "1" | ||
8 | |||
9 | PACKAGES = "libgcc libstdc++ libg2c libg2c-dev libgfortran libgfortran-dev" | ||
10 | |||
11 | PACKAGE_ARCH_libg2c = "${TARGET_ARCH}" | ||
12 | PACKAGE_ARCH_libg2c-dev = "${TARGET_ARCH}" | ||
13 | PACKAGE_ARCH_libgfortran = "${TARGET_ARCH}" | ||
14 | PACKAGE_ARCH_libgfortran-dev = "${TARGET_ARCH}" | ||
15 | |||
16 | # Called from within gcc-cross, so libdir is set wrong | ||
17 | FILES_libg2c = "${target_libdir}/libg2c.so.*" | ||
18 | FILES_libg2c-dev = "${target_libdir}/libg2c.so \ | ||
19 | ${target_libdir}/libg2c.a \ | ||
20 | ${target_libdir}/libfrtbegin.a" | ||
21 | |||
22 | FILES_libgfortran = "${target_libdir}/libgfortran.so.*" | ||
23 | FILES_libgfortran-dev = "${target_libdir}/libgfortran.a \ | ||
24 | ${target_libdir}/libgfortran.so \ | ||
25 | ${target_libdir}/libgfortranbegin.a" | ||
26 | |||
27 | PACKAGE_ARCH_libgcc = "${TARGET_ARCH}" | ||
28 | FILES_libgcc = "${target_base_libdir}/libgcc_s.so.1" | ||
29 | |||
30 | PACKAGE_ARCH_libstdc++ = "${TARGET_ARCH}" | ||
31 | PACKAGE_ARCH_libstdc++-dev = "${TARGET_ARCH}" | ||
32 | FILES_libstdc++ = "${target_libdir}/libstdc++.so.*" | ||
33 | FILES_libstdc++-dev = "${target_includedir}/c++/${PV} \ | ||
34 | ${target_libdir}/libstdc++.so \ | ||
35 | ${target_libdir}/libstdc++.la \ | ||
36 | ${target_libdir}/libstdc++.a \ | ||
37 | ${target_libdir}/libsupc++.la \ | ||
38 | ${target_libdir}/libsupc++.a" | ||
39 | |||
40 | python do_package() { | ||
41 | if bb.data.getVar('DEBIAN_NAMES', d, 1): | ||
42 | bb.data.setVar('PKG_libgcc', 'libgcc1', d) | ||
43 | bb.build.exec_func('package_do_package', d) | ||
44 | } | ||
45 | |||
46 | do_install () { | ||
47 | oe_runmake 'DESTDIR=${D}' install | ||
48 | |||
49 | # Move libgcc_s into /lib | ||
50 | mkdir -p ${D}${target_base_libdir} | ||
51 | if [ -f ${D}${target_base_libdir}/libgcc_s.so.? ]; then | ||
52 | # Already in the right location | ||
53 | : | ||
54 | elif [ -f ${D}${prefix}/lib/libgcc_s.so.? ]; then | ||
55 | mv -f ${D}${prefix}/lib/libgcc_s.so.* ${D}${target_base_libdir} | ||
56 | else | ||
57 | mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${target_base_libdir} | ||
58 | fi | ||
59 | |||
60 | # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr | ||
61 | mkdir -p ${D}${target_libdir} | ||
62 | mv -f ${D}${prefix}/*/lib/libstdc++.so.* ${D}${target_libdir} | ||
63 | if [ "${HAS_G2C}" = "yes" ]; then | ||
64 | mv -f ${D}${prefix}/*/lib/libg2c.so.* ${D}${target_libdir} | ||
65 | fi | ||
66 | if [ "${HAS_GFORTRAN}" = "yes" ]; then | ||
67 | mv -f ${D}${prefix}/*/lib/libgfortran*.so.* ${D}${target_libdir} | ||
68 | fi | ||
69 | |||
70 | # Manually run the target stripper since we won't get it run by | ||
71 | # the packaging. | ||
72 | if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then | ||
73 | ${TARGET_PREFIX}strip ${D}${target_libdir}/libstdc++.so.* | ||
74 | ${TARGET_PREFIX}strip ${D}${target_libdir}/libg2c.so.* | ||
75 | ${TARGET_PREFIX}strip ${D}${target_base_libdir}/libgcc_s.so.* | ||
76 | fi | ||
77 | } | ||