- -$(STRIP) $(IDIR_UCLIBC)/lib/*
- $(IPKG_BUILD) $(IDIR_UCLIBC) $(PACKAGE_DIR)
-
-$(IPKG_LIBGCC):
- $(SCRIPT_DIR)/make-ipkg-dir.sh $(IDIR_LIBGCC) ipkg/libgcc.control $(LIBGCC_VERSION)-$(PKG_RELEASE) $(ARCH)
- mkdir -p $(IDIR_LIBGCC)/lib
- $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(IDIR_LIBGCC)/lib/
- -$(STRIP) $(IDIR_LIBGCC)/lib/*
- $(IPKG_BUILD) $(IDIR_LIBGCC) $(PACKAGE_DIR)
-
-package-clean:
- rm -f $(PACKAGES)
-
-clean-targets: package-clean
-prepare:
-compile-targets: $(PACKAGES)
-install-targets: compile
- mkdir -p $(TARGET_DIR)
- $(IPKG) install $(PACKAGES_INSTALL)
+endef
+
+define Package/libgcc/install
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libgcc_s.so.* $(1)/lib/
+endef
+
+define Package/libssp/install
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libssp.so.* $(1)/lib/
+endef
+
+define Package/libstdcpp/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(TOOLCHAIN_DIR)/usr/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/usr/lib/
+endef
+
+use_libutil=$(if $(CONFIG_USE_GLIBC)$(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),libutil)
+use_libnsl=$(if $(CONFIG_USE_GLIBC)$(CONFIG_EGLIBC_OPTION_EGLIBC_NIS),libnsl)
+use_nsswitch=$(if $(CONFIG_USE_GLIBC)$(CONFIG_EGLIBC_OPTION_EGLIBC_NSSWITCH),libnss_dns libnss_files)
+
+define Package/glibc/install
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(TOOLCHAIN_DIR)/lib/ld*.so.* $(1)/lib/
+ $(CP) $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so $(1)/lib/
+ for file in libanl libc libcidn libcrypt libdl libm $(use_libnsl) $(use_nsswitch) libresolv $(use_libutil); do \
+ $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \
+ $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so $(1)/lib/; \
+ done
+endef
+
+define Package/eglibc/install
+$(call Package/glibc/install,$1)
+endef
+
+define Package/uClibc/install
+ $(INSTALL_DIR) $(1)/lib
+ for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv libuClibc libutil; do \
+ $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \
+ $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so $(1)/lib/; \
+ done
+endef
+
+define Package/libc/install
+$(call Package/$(LIBC)/install,$1)
+endef
+
+define Package/libc/install_lib
+ $(CP) $(filter-out %/libdl_pic.a,$(wildcard $(TOOLCHAIN_DIR)/usr/lib/lib*.a)) $(1)/lib/
+endef
+
+define Package/libpthread/install
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(TOOLCHAIN_DIR)/lib/libpthread.so.* $(1)/lib/
+ $(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_SO_VERSION).so $(1)/lib/
+endef
+
+define Package/librt/install
+ $(INSTALL_DIR) $(1)/lib
+ $(CP) $(TOOLCHAIN_DIR)/lib/librt.so.* $(1)/lib/
+ $(CP) $(TOOLCHAIN_DIR)/lib/librt-$(LIBC_SO_VERSION).so $(1)/lib/
+endef
+
+define Package/ldd/install
+ $(INSTALL_DIR) $(1)/usr/bin/
+ $(CP) $(TOOLCHAIN_DIR)/usr/bin/ldd $(1)/usr/bin/
+endef
+
+define Package/ldconfig/install
+ $(INSTALL_DIR) $(1)/sbin/
+ $(CP) $(TOOLCHAIN_DIR)/sbin/ldconfig $(1)/sbin/
+endef
+
+ifneq ($(DUMP),1)
+ -include $(PLATFORM_DIR)/base-files.mk
+endif
+
+$(eval $(call BuildPackage,base-files$(TARGET)))
+$(eval $(call BuildPackage,libc))
+$(eval $(call BuildPackage,libgcc))
+$(eval $(call BuildPackage,libssp))
+$(eval $(call BuildPackage,libstdcpp))
+$(eval $(call BuildPackage,libpthread))
+$(eval $(call BuildPackage,librt))
+$(eval $(call BuildPackage,ldd))
+$(eval $(call BuildPackage,ldconfig))