Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 1 | ################################################################################ |
| 2 | # |
| 3 | # toolchain-related customisation of the content of the target/ directory |
| 4 | # |
| 5 | ################################################################################ |
| 6 | |
| 7 | # Those customisations are added to the TARGET_FINALIZE_HOOKS, to be applied |
| 8 | # just after all packages have been built. |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 9 | |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 10 | # Install the gconv modules |
| 11 | ifeq ($(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY),y) |
Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 12 | TOOLCHAIN_GLIBC_GCONV_LIBS = $(call qstrip,$(BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_LIST)) |
| 13 | define TOOLCHAIN_GLIBC_COPY_GCONV_LIBS |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 14 | $(Q)found_gconv=no; \ |
| 15 | for d in $(TOOLCHAIN_EXTERNAL_PREFIX) ''; do \ |
| 16 | [ -d "$(STAGING_DIR)/usr/lib/$${d}/gconv" ] || continue; \ |
| 17 | found_gconv=yes; \ |
| 18 | break; \ |
| 19 | done; \ |
| 20 | if [ "$${found_gconv}" = "no" ]; then \ |
| 21 | printf "Unable to find gconv modules\n" >&2; \ |
| 22 | exit 1; \ |
| 23 | fi; \ |
Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 24 | if [ -z "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" ]; then \ |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 25 | $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \ |
| 26 | $(TARGET_DIR)/usr/lib/gconv/gconv-modules && \ |
| 27 | $(INSTALL) -m 0644 $(STAGING_DIR)/usr/lib/$${d}/gconv/*.so \ |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 28 | $(TARGET_DIR)/usr/lib/gconv \ |
| 29 | || exit 1; \ |
| 30 | else \ |
Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 31 | for l in $(TOOLCHAIN_GLIBC_GCONV_LIBS); do \ |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 32 | $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so \ |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 33 | $(TARGET_DIR)/usr/lib/gconv/$${l}.so \ |
| 34 | || exit 1; \ |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 35 | $(TARGET_READELF) -d $(STAGING_DIR)/usr/lib/$${d}/gconv/$${l}.so |\ |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 36 | sort -u |\ |
| 37 | sed -e '/.*(NEEDED).*\[\(.*\.so\)\]$$/!d; s//\1/;' |\ |
| 38 | while read lib; do \ |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 39 | $(INSTALL) -m 0644 -D $(STAGING_DIR)/usr/lib/$${d}/gconv/$${lib} \ |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 40 | $(TARGET_DIR)/usr/lib/gconv/$${lib} \ |
| 41 | || exit 1; \ |
| 42 | done; \ |
| 43 | done; \ |
Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 44 | ./support/scripts/expunge-gconv-modules "$(TOOLCHAIN_GLIBC_GCONV_LIBS)" \ |
Yann E. MORIN | fb5cbf3 | 2015-04-21 18:55:52 +0200 | [diff] [blame] | 45 | <$(STAGING_DIR)/usr/lib/$${d}/gconv/gconv-modules \ |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 46 | >$(TARGET_DIR)/usr/lib/gconv/gconv-modules; \ |
| 47 | fi |
| 48 | endef |
Ricardo Martincoski | d0837c0 | 2018-04-01 02:08:28 -0300 | [diff] [blame] | 49 | TOOLCHAIN_TARGET_FINALIZE_HOOKS += TOOLCHAIN_GLIBC_COPY_GCONV_LIBS |
Yann E. MORIN | 11c1076 | 2014-07-27 21:28:32 +0200 | [diff] [blame] | 50 | endif |