fac6ecd6c7b240e15a6c3d244cbae03421fb5b59
[openwrt.git] / package / toolchain / Makefile
1 #
2 # Copyright (C) 2007-2012 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9 PKG_NAME:=toolchain
10 PKG_RELEASE:=1
11
12 include $(INCLUDE_DIR)/package.mk
13
14 ifneq ($(DUMP),1)
15   LIBGCC_VERSION:=$(GCC_VERSION)
16 else
17   LIBC_VERSION:=<LIBC_VERSION>
18   LIBGCC_VERSION:=<LIBGCC_VERSION>
19 endif
20
21 define Package/gcc/Default
22   SECTION:=libs
23   CATEGORY:=Base system
24   URL:=http://gcc.gnu.org/
25   VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
26 endef
27
28 define Package/libgcc
29 $(call Package/gcc/Default)
30   TITLE:=GCC support library
31 endef
32
33 define Package/libgcc/config
34         menu "Configuration"
35                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
36
37         config LIBGCC_ROOT_DIR
38                 string
39                 prompt "libgcc shared library base directory"
40                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
41                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
42                 default "/"  if NATIVE_TOOLCHAIN
43
44         config LIBGCC_FILE_SPEC
45                 string
46                 prompt "libgcc shared library files (use wildcards)"
47                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
48                 default "./lib/libgcc_s.so.*"
49
50         endmenu
51 endef
52
53
54 define Package/libssp
55 $(call Package/gcc/Default)
56   DEPENDS+=@SSP_SUPPORT
57   TITLE:=GCC support library
58 endef
59
60 define Package/libssp/config
61         menu "Configuration"
62                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libssp
63
64         config LIBSSP_ROOT_DIR
65                 string
66                 prompt "libssp shared library base directory"
67                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libssp
68                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
69                 default "/"  if NATIVE_TOOLCHAIN
70
71         config LIBSSP_FILE_SPEC
72                 string
73                 prompt "libssp shared library files (use wildcards)"
74                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libssp
75                 default "./lib/libssp.so.*"
76
77         endmenu
78 endef
79
80
81 define Package/libstdcpp
82 $(call Package/gcc/Default)
83   NAME:=libstdc++
84   TITLE:=GNU Standard C++ Library v3
85   DEPENDS+=@INSTALL_LIBSTDCPP
86 endef
87
88 define Package/libstdcpp/config
89         menu "Configuration"
90         depends EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
91
92         config LIBSTDCPP_ROOT_DIR
93                 string
94                 prompt "libstdcpp shared library base directory"
95                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
96                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
97                 default "/"  if NATIVE_TOOLCHAIN
98
99         config LIBSTDCPP_FILE_SPEC
100                 string
101                 prompt "libstdc++ shared library files (use wildcards)"
102                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
103                 default "./lib/libstdc++.so.*"
104
105         endmenu
106 endef
107
108
109 define Package/libc/Default
110   SECTION:=libs
111   CATEGORY:=Base system
112   VERSION:=$(LIBC_VERSION)-$(PKG_RELEASE)
113   DEPENDS:=+libgcc
114   URL:=$(LIBC_URL)
115   PKG_FLAGS:=hold essential
116 endef
117
118
119 define Package/libc
120 $(call Package/libc/Default)
121   TITLE:=C library
122 endef
123
124 define Package/libc/config
125         menu "Configuration"
126         depends EXTERNAL_TOOLCHAIN && PACKAGE_libc
127
128         config LIBC_ROOT_DIR
129                 string
130                 prompt "libc shared library base directory"
131                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libc
132                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
133                 default "/"  if NATIVE_TOOLCHAIN
134
135         config LIBC_FILE_SPEC
136                 string
137                 prompt "libc shared library files (use wildcards)"
138                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libc
139                 default "./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}"
140
141         endmenu
142 endef
143
144
145 define Package/libpthread
146 $(call Package/libc/Default)
147   TITLE:=POSIX thread library
148 endef
149
150 define Package/libpthread/config
151         menu "Configuration"
152         depends EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
153
154         config LIBPTHREAD_ROOT_DIR
155                 string
156                 prompt "libpthread shared library base directory"
157                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
158                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
159                 default "/"  if NATIVE_TOOLCHAIN
160
161         config LIBPTHREAD_FILE_SPEC
162                 string
163                 prompt "libpthread shared library files (use wildcards)"
164                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
165                 default "./lib/libpthread{-*.so,.so.*}"
166
167         endmenu
168 endef
169
170
171 define Package/librt
172 $(call Package/libc/Default)
173   TITLE:=POSIX.1b RealTime extension library
174   DEPENDS:=+libpthread
175 endef
176
177 define Package/librt/config
178         menu "Configuration"
179         depends EXTERNAL_TOOLCHAIN && PACKAGE_librt
180
181         config LIBRT_ROOT_DIR
182                 string
183                 prompt "librt shared library base directory"
184                 depends EXTERNAL_TOOLCHAIN && PACKAGE_librt
185                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
186                 default "/"  if NATIVE_TOOLCHAIN
187
188         config LIBRT_FILE_SPEC
189                 string
190                 prompt "librt shared library files (use wildcards)"
191                 depends EXTERNAL_TOOLCHAIN && PACKAGE_librt
192                 default "./lib/librt{-*.so,.so.*}"
193
194         endmenu
195 endef
196
197
198 define Package/libgfortran
199 $(call Package/gcc/Default)
200   TITLE:=GFortran support library
201   DEPENDS+=@INSTALL_GFORTRAN
202 endef
203
204 define Package/libgfortran/config
205         menu "Configuration"
206                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
207
208         config LIBGFORTRAN_ROOT_DIR
209                 string
210                 prompt "libgfortran shared library base directory"
211                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
212                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
213                 default "/"  if NATIVE_TOOLCHAIN
214
215         config LIBGFORTRAN_FILE_SPEC
216                 string
217                 prompt "libgfortran shared library files (use wildcards)"
218                 depends EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
219                 default "./usr/lib/libgfortran.so.*"
220
221         endmenu
222 endef
223
224 define Package/ldd
225 $(call Package/libc/Default)
226   SECTION:=utils
227   CATEGORY:=Utilities
228   TITLE:=LDD trace utility
229 endef
230
231 define Package/ldd/config
232         menu "Configuration"
233                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldd
234
235         config LDD_ROOT_DIR
236                 string
237                 prompt "ldd trace utility base directory"
238                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldd
239                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
240                 default "/"  if NATIVE_TOOLCHAIN
241
242         config LDD_FILE_SPEC
243                 string
244                 prompt "ldd trace utility file"
245                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldd
246                 default "./usr/bin/ldd"
247
248         endmenu
249 endef
250
251
252 define Package/ldconfig
253 $(call Package/libc/Default)
254   SECTION:=utils
255   CATEGORY:=Utilities
256   TITLE:=Shared library path configuration
257 endef
258
259 define Package/ldconfig/config
260         menu "Configuration"
261                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
262
263         config LDCONFIG_ROOT_DIR
264                 string
265                 prompt "ldconfig base directory"
266                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
267                 default TOOLCHAIN_ROOT  if !NATIVE_TOOLCHAIN
268                 default "/"  if NATIVE_TOOLCHAIN
269
270         config LDCONFIG_FILE_SPEC
271                 string
272                 prompt "ldconfig file"
273                 depends EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
274                 default "./sbin/ldconfig"
275
276         endmenu
277 endef
278
279 define Build/Prepare
280         mkdir -p $(PKG_BUILD_DIR)
281 endef
282
283 LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a)
284 LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map)
285 LIBGCC_SO=$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)
286 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
287   ifneq ($(if $(CONFIG_USE_UCLIBC),$(CONFIG_GCC_VERSION_LINARO)),)
288     BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k)$(CONFIG_powerpc),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
289   endif
290 endif
291
292 ifneq ($(BUILD_LIBGCC),)
293   define Build/Compile/uClibc
294         $(SCRIPT_DIR)/relink-lib.sh \
295                 "$(TARGET_CROSS)" \
296                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \
297                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \
298                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libuClibc-*.so))" \
299                 -Wl,-init,__uClibc_init -Wl,-soname=libc.so.0 \
300                 $(BUILD_LIBGCC)
301         $(SCRIPT_DIR)/relink-lib.sh \
302                 "$(TARGET_CROSS)" \
303                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so)" \
304                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt_pic.a)" \
305                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \
306                 $(BUILD_LIBGCC) \
307                 -Wl,-soname=libcrypt.so.0
308         $(SCRIPT_DIR)/relink-lib.sh \
309                 "$(TARGET_CROSS)" \
310                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \
311                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libm_pic.a)" \
312                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so))" \
313                 $(BUILD_LIBGCC) \
314                 -Wl,-soname=libm.so.0
315         $(SCRIPT_DIR)/relink-lib.sh \
316                 "$(TARGET_CROSS)" \
317                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so)" \
318                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a)" \
319                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so))" \
320                 -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal \
321                 -ldl -lc $(BUILD_LIBGCC) \
322                 -Wl,-soname=libpthread.so.0
323   endef
324   define Build/Compile/libgcc
325         $(SCRIPT_DIR)/relink-lib.sh \
326                 "$(TARGET_CROSS)" \
327                 "$(LIBGCC_SO)" \
328                 "$(LIBGCC_A)" \
329                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(LIBGCC_SO))" \
330                 -Wl,--version-script=$(LIBGCC_MAP) -Wl,-soname=libgcc_s.so.1
331   endef
332 else
333   define Build/Compile/uClibc
334         $(CP) \
335                 $(TOOLCHAIN_DIR)/lib/libuClibc-*.so \
336                 $(TOOLCHAIN_DIR)/lib/libcrypt-*.so \
337                 $(TOOLCHAIN_DIR)/lib/libm-*.so \
338                 $(TOOLCHAIN_DIR)/lib/libpthread-*.so \
339                 $(PKG_BUILD_DIR)/
340   endef
341   ifneq ($(LIBGCC_SO),)
342     define Build/Compile/libgcc
343         $(CP) $(LIBGCC_SO) $(PKG_BUILD_DIR)/
344     endef
345   endif
346 endif
347
348 define Build/Compile/Default
349         $(call Build/Compile/libgcc)
350         $(call Build/Compile/$(LIBC))
351 endef
352 Build/Compile = $(Build/Compile/Default)
353
354 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
355
356   define Package/libgcc/install
357         $(INSTALL_DIR) $(1)/lib
358         $(if $(CONFIG_TARGET_avr32)$(CONFIG_TARGET_coldfire),,$(CP) $(TOOLCHAIN_DIR)/lib/libgcc_s.so.* $(1)/lib/)
359   endef
360
361   define Package/libgfortran/install
362         $(INSTALL_DIR) $(1)/usr/lib
363         $(if $(CONFIG_TARGET_avr32)$(CONFIG_TARGET_coldfire),,$(CP) $(TOOLCHAIN_DIR)/lib/libgfortran.so.* $(1)/usr/lib/)
364   endef
365
366   define Package/libssp/install
367         $(INSTALL_DIR) $(1)/lib
368         $(CP) $(TOOLCHAIN_DIR)/lib/libssp.so.* $(1)/lib/
369   endef
370
371   define Package/libstdcpp/install
372         $(INSTALL_DIR) $(1)/usr/lib
373         $(CP) $(TOOLCHAIN_DIR)/lib/libstdc++.so.* $(1)/usr/lib/
374   endef
375
376   use_libutil=$(if $(CONFIG_EGLIBC_OPTION_EGLIBC_UTMP),libutil)
377   use_libnsl=$(if $(CONFIG_EGLIBC_OPTION_EGLIBC_NIS),libnsl)
378   use_nsswitch=$(if $(CONFIG_EGLIBC_OPTION_EGLIBC_NSSWITCH),libnss_dns libnss_files)
379
380   define Package/eglibc/install
381         $(CP) ./eglibc-files/* $(1)/
382         rm -f $(1)/etc/localtime
383         ln -sf /tmp/localtime $(1)/etc/localtime
384         $(INSTALL_DIR) $(1)/lib
385         $(CP) \
386                 $(TOOLCHAIN_DIR)/lib/ld*.so.* \
387                 $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so \
388                 $(1)/lib/
389         for file in libanl libc libcidn libcrypt libdl libm $(use_libnsl) $(use_nsswitch) libresolv $(use_libutil); do \
390                 for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so; do \
391                         if [ -e "$$$$file" ]; then \
392                                 $(CP) $$$$file $(1)/lib/; \
393                         fi; \
394                 done; \
395         done
396   endef
397
398   define Package/uClibc/install
399         $(INSTALL_DIR) $(1)/lib
400         $(CP) \
401                 $(TOOLCHAIN_DIR)/lib/ld*-uClibc.so.* \
402                 $(TOOLCHAIN_DIR)/lib/ld*-uClibc-$(LIBC_SO_VERSION).so \
403                 $(1)/lib/
404         $(CP) \
405                 $(TOOLCHAIN_DIR)/lib/libc.so.* \
406                 $(TOOLCHAIN_DIR)/lib/libuClibc-$(LIBC_SO_VERSION).so \
407                 $(1)/lib/
408         for file in libcrypt libdl libm libutil; do \
409                 $(CP) \
410                         $(TOOLCHAIN_DIR)/lib/$$$$file.so.* \
411                         $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so \
412                         $(1)/lib/; \
413         done
414
415         $(CP) \
416                 $(PKG_BUILD_DIR)/libuClibc-* \
417                 $(PKG_BUILD_DIR)/libm-* \
418                 $(PKG_BUILD_DIR)/libcrypt-* \
419                 $(1)/lib/
420   endef
421
422   define Package/libc/install
423     $(call Package/$(LIBC)/install,$1)
424   endef
425
426   define Package/libc/install_lib
427         $(CP) $(filter-out %/libdl_pic.a %/libpthread_pic.a %/libresolv_pic.a,$(wildcard $(TOOLCHAIN_DIR)/lib/lib*.a)) $(1)/lib/
428         $(if $(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a),$(CP) $(TOOLCHAIN_DIR)/lib/libc_so.a $(1)/lib/libc_pic.a)
429         $(if $(LIBGCC_MAP), \
430                 $(CP) $(LIBGCC_A) $(1)/lib/libgcc_s_pic.a; \
431                 $(CP) $(LIBGCC_MAP) $(1)/lib/libgcc_s_pic.map \
432         )
433   endef
434
435   define Package/libpthread/install
436         $(INSTALL_DIR) $(1)/lib
437         $(CP) \
438                 $(TOOLCHAIN_DIR)/lib/libpthread.so.* \
439                 $(if $(BUILD_LIBGCC),\
440                         $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so, \
441                         $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_SO_VERSION).so \
442                 ) \
443                 $(1)/lib/
444   endef
445
446   define Package/libpthread/install_lib
447         $(if $(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a),$(CP) $(TOOLCHAIN_DIR)/lib/libpthread_so.a $(1)/lib/libpthread_pic.a)
448   endef
449
450   define Package/librt/install
451         $(INSTALL_DIR) $(1)/lib
452         $(CP) \
453                 $(TOOLCHAIN_DIR)/lib/librt.so.* \
454                 $(TOOLCHAIN_DIR)/lib/librt-$(LIBC_SO_VERSION).so \
455                 $(1)/lib/
456   endef
457
458   define Package/ldd/install
459         $(INSTALL_DIR) $(1)/usr/bin/
460         $(CP) $(TOOLCHAIN_DIR)/bin/ldd $(1)/usr/bin/
461   endef
462
463   define Package/ldconfig/install
464         $(INSTALL_DIR) $(1)/sbin/
465         $(CP) $(TOOLCHAIN_DIR)/sbin/ldconfig $(1)/sbin/
466   endef
467
468 else
469
470   define Package/libgcc/install
471         for file in $(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC)); do \
472                 dir=`dirname $$$$file` ; \
473                 $(INSTALL_DIR) $(1)/$$$$dir ; \
474                 $(CP) $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
475         done ; \
476         exit 0
477   endef
478
479   define Package/libgfortran/install
480         for file in $(call qstrip,$(CONFIG_LIBGFORTRAN_FILE_SPEC)); do \
481                 dir=`dirname $$$$file` ; \
482                 $(INSTALL_DIR) $(1)/$$$$dir ; \
483                 $(CP) $(call qstrip,$(CONFIG_LIBGFORTRAN_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
484         done
485   endef
486
487   define Package/libssp/install
488         for file in $(call qstrip,$(CONFIG_LIBSSP_FILE_SPEC)); do \
489                 dir=`dirname $$$$file` ; \
490                 $(INSTALL_DIR) $(1)/$$$$dir ; \
491                 $(CP) $(call qstrip,$(CONFIG_LIBSSP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
492         done ; \
493         exit 0
494   endef
495
496   define Package/libstdcpp/install
497         for file in $(call qstrip,$(CONFIG_LIBSTDCPP_FILE_SPEC)); do \
498                 dir=`dirname $$$$file` ; \
499                 $(INSTALL_DIR) $(1)/$$$$dir ; \
500                 $(CP) $(call qstrip,$(CONFIG_LIBSTDCPP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
501         done ; \
502         exit 0
503   endef
504
505   define Package/libc/install
506         for file in $(call qstrip,$(CONFIG_LIBC_FILE_SPEC)); do \
507                 dir=`dirname $$$$file` ; \
508                 $(INSTALL_DIR) $(1)/$$$$dir ; \
509                 $(CP) $(call qstrip,$(CONFIG_LIBC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
510         done ; \
511         exit 0
512   endef
513
514   define Package/libpthread/install
515         for file in $(call qstrip,$(CONFIG_LIBPTHREAD_FILE_SPEC)); do \
516                 dir=`dirname $$$$file` ; \
517                 $(INSTALL_DIR) $(1)/$$$$dir ; \
518                 $(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
519         done ; \
520         exit 0
521   endef
522
523   define Package/librt/install
524         for file in $(call qstrip,$(CONFIG_LIBRT_FILE_SPEC)); do \
525                 dir=`dirname $$$$file` ; \
526                 $(INSTALL_DIR) $(1)/$$$$dir ; \
527                 $(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
528         done ; \
529         exit 0
530   endef
531
532   define Package/ldd/install
533         for file in $(call qstrip,$(CONFIG_LDD_FILE_SPEC)); do \
534                 dir=`dirname $$$$file` ; \
535                 $(INSTALL_DIR) $(1)/$$$$dir ; \
536                 $(CP) $(call qstrip,$(CONFIG_LDD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
537         done ; \
538         exit 0
539   endef
540
541   define Package/ldconfig/install
542         for file in $(call qstrip,$(CONFIG_LDCONFIG_FILE_SPEC)); do \
543                 dir=`dirname $$$$file` ; \
544                 $(INSTALL_DIR) $(1)/$$$$dir ; \
545                 $(CP) $(call qstrip,$(CONFIG_LDCONFIG_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
546         done ; \
547         exit 0
548   endef
549
550 endif
551
552 $(eval $(call BuildPackage,libc))
553 $(eval $(call BuildPackage,libgcc))
554 $(eval $(call BuildPackage,libssp))
555 $(eval $(call BuildPackage,libstdcpp))
556 $(eval $(call BuildPackage,libpthread))
557 $(eval $(call BuildPackage,librt))
558 $(eval $(call BuildPackage,libgfortran))
559 $(eval $(call BuildPackage,ldd))
560 $(eval $(call BuildPackage,ldconfig))