merge of '0b604857bbf871639fdb43ee8380222e8ef64bb7'
[vuplus_openembedded] / packages / gcc / gcc-package-cross.inc
1 INHIBIT_PACKAGE_STRIP ?= ""
2 OLD_INHIBIT_PACKAGE_STRIP := "${INHIBIT_PACKAGE_STRIP}"
3 INHIBIT_PACKAGE_STRIP = "1"
4
5 PACKAGES = "libgcc libgcc-dev libstdc++ libg2c libg2c-dev libgfortran libgfortran-dev"
6
7 # Called from within gcc-cross, so libdir is set wrong
8 FILES_libg2c = "${target_libdir}/libg2c.so.*"
9 FILES_libg2c-dev = "${target_libdir}/libg2c.so \
10                     ${target_libdir}/libg2c.a \
11                     ${target_libdir}/libfrtbegin.a"
12
13 FILES_libgfortran = "${target_libdir}/libgfortran.so.*"
14 FILES_libgfortran-dev = "${target_libdir}/libgfortran.a \
15                          ${target_libdir}/libgfortran.so \
16                          ${target_libdir}/libgfortranbegin.a"
17
18 FILES_libgcc = "${target_base_libdir}/libgcc_s.so.1"
19 FILES_libgcc-dev = "${target_base_libdir}/libgcc_s.so"
20
21 FILES_libstdc++ = "${target_libdir}/libstdc++.so.*"
22 FILES_libstdc++-dev = "${target_includedir}/c++/${PV} \
23                        ${target_libdir}/libstdc++.so \
24                        ${target_libdir}/libstdc++.la \
25                        ${target_libdir}/libstdc++.a \
26                        ${target_libdir}/libsupc++.la \
27                        ${target_libdir}/libsupc++.a"
28
29 do_install () {
30         oe_runmake 'DESTDIR=${D}' install
31
32         # Move libgcc_s into /lib
33         mkdir -p ${D}${target_base_libdir}
34         if [ -f ${D}${target_base_libdir}/libgcc_s.so.? ]; then
35                 # Already in the right location
36                 :
37         elif [ -f ${D}${prefix}/lib/libgcc_s.so.? ]; then
38                 mv -f ${D}${prefix}/lib/libgcc_s.so* ${D}${target_base_libdir} || true
39
40         elif [  -f ${D}${prefix}/*/lib/nof/libgcc_s.so.? ]; then
41                 mv -f ${D}${prefix}/*/lib/nof/libgcc_s.so* ${D}${target_base_libdir}
42         else
43                 mv -f ${D}${prefix}/*/lib/libgcc_s.so* ${D}${target_base_libdir} || true 
44         fi
45
46
47
48         # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
49         mkdir -p ${D}${target_libdir}
50
51         if [ -f ${D}${prefix}/*/lib/nof/libstdc++.so ]; then
52
53            mv -f ${D}${prefix}/*/lib/nof/libstdc++.so* ${D}${target_libdir} || true
54            mv -f ${D}${prefix}/*/lib/nof/libg2c.so* ${D}${target_libdir} || true
55            mv -f ${D}${prefix}/*/lib/nof/libgfortran*.so* ${D}${target_libdir} || true
56
57         else
58            mv -f ${D}${prefix}/*/lib/libstdc++.so* ${D}${target_libdir} || true
59            mv -f ${D}${prefix}/*/lib/libg2c.so* ${D}${target_libdir} || true
60            mv -f ${D}${prefix}/*/lib/libgfortran*.so* ${D}${target_libdir} || true
61         fi
62
63
64
65        # Manually run the target stripper since we won't get it run by
66        # the packaging.
67        if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then
68                ${TARGET_PREFIX}strip ${D}${target_libdir}/libstdc++.so.*
69                ${TARGET_PREFIX}strip ${D}${target_libdir}/libg2c.so.* || true
70                ${TARGET_PREFIX}strip ${D}${target_base_libdir}/libgcc_s.so.* || true
71                ${TARGET_PREFIX}strip ${D}${target_libdir}/libgfortran*.so* || true
72         fi
73      
74        # Link gfortran to g77 to satisfy not-so-smart configure or hard coded g77
75        # gfortran is fully backwards compatible. This is a safe and practical solution. 
76        ln -sf ${CROSS_DIR}/bin/${TARGET_PREFIX}gfortran ${CROSS_DIR}/bin/${TARGET_PREFIX}g77 || true
77        ln -sf ${CROSS_DIR}/${TARGET_SYS}/bin/gfortran ${CROSS_DIR}/${TARGET_SYS}/bin/g77 || true
78 }