treewide: use APK compatible version schema
[openwrt/staging/stintel.git] / package / libs / toolchain / Makefile
1 #
2 # Copyright (C) 2007-2014 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:=4
11
12 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
13 PKG_LICENSE:=GPL-3.0-with-GCC-exception
14
15 PKG_FLAGS:=hold essential nonshared
16
17 include $(INCLUDE_DIR)/package.mk
18
19 ifneq ($(DUMP),1)
20 LIBGCC_VERSION:=$(GCC_VERSION)
21 else
22 LIBC_VERSION:=<LIBC_VERSION>
23 LIBGCC_VERSION:=<LIBGCC_VERSION>
24 endif
25
26 define Package/gcc/Default
27 SECTION:=libs
28 CATEGORY:=Base system
29 URL:=http://gcc.gnu.org/
30 VERSION:=$(LIBGCC_VERSION)-r$(PKG_RELEASE)
31 endef
32
33 define Package/libgcc
34 $(call Package/gcc/Default)
35 TITLE:=GCC support library
36 ABI_VERSION:=1
37 endef
38
39 define Package/libgcc/config
40 menu "Configuration"
41 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
42
43 config LIBGCC_ROOT_DIR
44 string
45 prompt "libgcc shared library base directory"
46 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
47 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
48 default "/" if NATIVE_TOOLCHAIN
49
50 config LIBGCC_FILE_SPEC
51 string
52 prompt "libgcc shared library files (use wildcards)"
53 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgcc
54 default "./lib/libgcc_s.so.*"
55
56 endmenu
57 endef
58
59 define Package/libatomic
60 $(call Package/gcc/Default)
61 DEPENDS:=+libgcc
62 TITLE:=Atomic support library
63 ABI_VERSION:=1
64 endef
65
66 define Package/libatomic/config
67 menu "Configuration"
68 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
69
70 config LIBATOMIC_ROOT_DIR
71 string
72 prompt "libatomic shared library base directory"
73 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
74 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
75 default "/" if NATIVE_TOOLCHAIN
76
77 config LIBATOMIC_FILE_SPEC
78 string
79 prompt "libatomic shared library files (use wildcards)"
80 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libatomic
81 default "./lib/libatomic.so.*"
82
83 endmenu
84 endef
85
86 define Package/libstdcpp
87 $(call Package/gcc/Default)
88 NAME:=libstdc++
89 TITLE:=GNU Standard C++ Library v3
90 ABI_VERSION:=6
91 endef
92
93 define Package/libstdcpp/config
94 menu "Configuration"
95 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
96
97 config LIBSTDCPP_ROOT_DIR
98 string
99 prompt "libstdcpp shared library base directory"
100 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
101 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
102 default "/" if NATIVE_TOOLCHAIN
103
104 config LIBSTDCPP_FILE_SPEC
105 string
106 prompt "libstdc++ shared library files (use wildcards)"
107 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libstdcpp
108 default "./lib/libstdc++.so.*"
109
110 endmenu
111 endef
112
113
114 define Package/libasan
115 $(call Package/gcc/Default)
116 NAME:=libasan
117 TITLE:=Runtime library for AddressSanitizer in GCC
118 DEPENDS:=@USE_GLIBC +librt +libstdcpp @!mips64 @!mips64el @!arc
119 ABI_VERSION:=5
120 endef
121
122 define Package/libasan/config
123 menu "Configuration"
124 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libasan
125
126 config LIBASAN_ROOT_DIR
127 string
128 prompt "libasan shared library base directory"
129 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libasan
130 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
131 default "/" if NATIVE_TOOLCHAIN
132
133 config LIBASAN_FILE_SPEC
134 string
135 prompt "libasan shared library files (use wildcards)"
136 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libasan
137 default "./lib/libasan.so.*"
138
139 endmenu
140 endef
141
142
143 define Package/libtsan
144 $(call Package/gcc/Default)
145 NAME:=libtsan
146 TITLE:=Runtime library for ThreadSanitizer in GCC
147 DEPENDS:=@USE_GLIBC +librt +libstdcpp @!mips @!mipsel @!mips64 @!mips64el @!arc
148 ABI_VERSION:=0
149 endef
150
151 define Package/libtsan/config
152 menu "Configuration"
153 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libtsan
154
155 config LIBTSAN_ROOT_DIR
156 string
157 prompt "libtsan shared library base directory"
158 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libtsan
159 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
160 default "/" if NATIVE_TOOLCHAIN
161
162 config LIBTSAN_FILE_SPEC
163 string
164 prompt "libtsan shared library files (use wildcards)"
165 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libtsan
166 default "./lib/libtsan.so.*"
167
168 endmenu
169 endef
170
171
172 define Package/liblsan
173 $(call Package/gcc/Default)
174 NAME:=liblsan
175 TITLE:=Runtime library for LeakSanitizer in GCC
176 DEPENDS:=@USE_GLIBC +librt +libstdcpp @!mips @!mipsel @!mips64 @!mips64el @!arc
177 ABI_VERSION:=0
178 endef
179
180 define Package/liblsan/config
181 menu "Configuration"
182 depends on EXTERNAL_TOOLCHAIN && PACKAGE_liblsan
183
184 config LIBLSAN_ROOT_DIR
185 string
186 prompt "liblsan shared library base directory"
187 depends on EXTERNAL_TOOLCHAIN && PACKAGE_liblsan
188 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
189 default "/" if NATIVE_TOOLCHAIN
190
191 config LIBLSAN_FILE_SPEC
192 string
193 prompt "liblsan shared library files (use wildcards)"
194 depends on EXTERNAL_TOOLCHAIN && PACKAGE_liblsan
195 default "./lib/liblsan.so.*"
196
197 endmenu
198 endef
199
200
201 define Package/libubsan
202 $(call Package/gcc/Default)
203 NAME:=libubsan
204 TITLE:=Runtime library for UndefinedBehaviorSanitizer in GCC
205 DEPENDS:=@USE_GLIBC +librt +libstdcpp @!mips64 @!mips64el @!arc
206 ABI_VERSION:=1
207 endef
208
209 define Package/libubsan/config
210 menu "Configuration"
211 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libubsan
212
213 config LIBUBSAN_ROOT_DIR
214 string
215 prompt "libubsan shared library base directory"
216 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libubsan
217 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
218 default "/" if NATIVE_TOOLCHAIN
219
220 config LIBUBSAN_FILE_SPEC
221 string
222 prompt "libubsan shared library files (use wildcards)"
223 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libubsan
224 default "./lib/libubsan.so.*"
225
226 endmenu
227 endef
228
229
230 define Package/libc/Default
231 SECTION:=libs
232 CATEGORY:=Base system
233 VERSION:=$(LIBC_VERSION)-r$(PKG_RELEASE)
234 DEPENDS:=+libgcc
235 URL:=$(LIBC_URL)
236 endef
237
238
239 define Package/libc
240 $(call Package/libc/Default)
241 TITLE:=C library
242 endef
243
244 define Package/libc/config
245 menu "Configuration"
246 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libc
247
248 config LIBC_ROOT_DIR
249 string
250 prompt "libc shared library base directory"
251 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libc
252 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
253 default "/" if NATIVE_TOOLCHAIN
254
255 config LIBC_FILE_SPEC
256 string
257 prompt "libc shared library files (use wildcards)"
258 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libc
259 default "./lib/ld{*.so*,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*,.so}"
260
261 endmenu
262 endef
263
264
265 define Package/libpthread
266 $(call Package/libc/Default)
267 TITLE:=POSIX thread library
268 endef
269
270 define Package/libpthread/config
271 menu "Configuration"
272 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
273
274 config LIBPTHREAD_ROOT_DIR
275 string
276 prompt "libpthread shared library base directory"
277 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
278 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
279 default "/" if NATIVE_TOOLCHAIN
280
281 config LIBPTHREAD_FILE_SPEC
282 string
283 prompt "libpthread shared library files (use wildcards)"
284 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libpthread
285 default "./lib/libpthread{-*.so,.so.*}"
286
287 endmenu
288 endef
289
290
291 define Package/libthread-db
292 $(call Package/libc/Default)
293 DEPENDS:=@!USE_MUSL
294 TITLE:=POSIX thread library debugging support
295 endef
296
297 define Package/libthread-db/config
298 menu "Configuration"
299 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libthread-db
300
301 config LIBTHREAD_DB_ROOT_DIR
302 string
303 prompt "POSIX thread debugging shared library base directory"
304 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libthread-db
305 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
306 default "/" if NATIVE_TOOLCHAIN
307
308 config LIBTHREAD_DB_FILE_SPEC
309 string
310 prompt "POSIX thread debugging shared library files (use wildcards)"
311 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libthread-db
312 default "./lib/libthread_db{-*.so,.so.*}"
313
314 endmenu
315 endef
316
317 define Package/librt
318 $(call Package/libc/Default)
319 TITLE:=POSIX.1b RealTime extension library
320 DEPENDS:=+libpthread
321 endef
322
323 define Package/librt/config
324 menu "Configuration"
325 depends on EXTERNAL_TOOLCHAIN && PACKAGE_librt
326
327 config LIBRT_ROOT_DIR
328 string
329 prompt "librt shared library base directory"
330 depends on EXTERNAL_TOOLCHAIN && PACKAGE_librt
331 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
332 default "/" if NATIVE_TOOLCHAIN
333
334 config LIBRT_FILE_SPEC
335 string
336 prompt "librt shared library files (use wildcards)"
337 depends on EXTERNAL_TOOLCHAIN && PACKAGE_librt
338 default "./lib/librt{-*.so,.so.*}"
339
340 endmenu
341 endef
342
343
344 define Package/libgfortran
345 $(call Package/gcc/Default)
346 TITLE:=GFortran support library
347 DEPENDS+=@INSTALL_GFORTRAN
348 endef
349
350 define Package/libgfortran/config
351 menu "Configuration"
352 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
353
354 config LIBGFORTRAN_ROOT_DIR
355 string
356 prompt "libgfortran shared library base directory"
357 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
358 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
359 default "/" if NATIVE_TOOLCHAIN
360
361 config LIBGFORTRAN_FILE_SPEC
362 string
363 prompt "libgfortran shared library files (use wildcards)"
364 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgfortran
365 default "./usr/lib/libgfortran.so.*"
366
367 endmenu
368 endef
369
370 define Package/libgomp
371 $(call Package/gcc/Default)
372 TITLE:=OpenMP support library
373 endef
374
375 define Package/libgomp/config
376 menu "Configuration"
377 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgomp
378
379 config LIBGOMP_ROOT_DIR
380 string
381 prompt "libgomp shared library base directory"
382 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgomp
383 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
384 default "/" if NATIVE_TOOLCHAIN
385
386 config LIBGOMP_FILE_SPEC
387 string
388 prompt "libgomp shared library files (use wildcards)"
389 depends on EXTERNAL_TOOLCHAIN && PACKAGE_libgomp
390 default "./lib/libgomp.so*"
391
392 endmenu
393 endef
394
395
396 define Package/ldd
397 $(call Package/libc/Default)
398 DEPENDS:=@!USE_MUSL
399 SECTION:=utils
400 CATEGORY:=Utilities
401 TITLE:=LDD trace utility
402 endef
403
404 define Package/ldd/config
405 menu "Configuration"
406 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldd
407
408 config LDD_ROOT_DIR
409 string
410 prompt "ldd trace utility base directory"
411 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldd
412 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
413 default "/" if NATIVE_TOOLCHAIN
414
415 config LDD_FILE_SPEC
416 string
417 prompt "ldd trace utility file"
418 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldd
419 default "./usr/bin/ldd"
420
421 endmenu
422 endef
423
424
425 define Package/ldconfig
426 $(call Package/libc/Default)
427 DEPENDS:=@!USE_MUSL
428 SECTION:=utils
429 CATEGORY:=Utilities
430 TITLE:=Shared library path configuration
431 endef
432
433 define Package/ldconfig/config
434 menu "Configuration"
435 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
436
437 config LDCONFIG_ROOT_DIR
438 string
439 prompt "ldconfig base directory"
440 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
441 default TOOLCHAIN_ROOT if !NATIVE_TOOLCHAIN
442 default "/" if NATIVE_TOOLCHAIN
443
444 config LDCONFIG_FILE_SPEC
445 string
446 prompt "ldconfig file"
447 depends on EXTERNAL_TOOLCHAIN && PACKAGE_ldconfig
448 default "./sbin/ldconfig"
449
450 endmenu
451 endef
452
453 define Build/Prepare
454 mkdir -p $(PKG_BUILD_DIR)
455 endef
456
457 define Build/Quilt
458 endef
459
460 LIBGCC_A=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a))
461 LIBGCC_MAP=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map))
462 LIBGCC_SO=$(lastword $(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*))
463
464 ifneq ($(LIBGCC_SO),)
465 define Build/Compile/libgcc
466 $(CP) $(LIBGCC_SO) $(PKG_BUILD_DIR)/
467 endef
468 endif
469
470 define Build/Compile/Default
471 $(call Build/Compile/libgcc)
472 $(call Build/Compile/$(LIBC))
473 endef
474 Build/Compile = $(Build/Compile/Default)
475
476 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
477
478 define Package/libgcc/install
479 $(INSTALL_DIR) $(1)/lib
480 $(CP) $(TOOLCHAIN_DIR)/lib/libgcc_s.so.* $(1)/lib/
481 endef
482
483 define Package/libatomic/install
484 $(INSTALL_DIR) $(1)/lib
485 $(CP) $(TOOLCHAIN_DIR)/lib/libatomic.so.* $(1)/lib/
486 endef
487
488 define Package/libgfortran/install
489 $(INSTALL_DIR) $(1)/usr/lib
490 $(CP) $(TOOLCHAIN_DIR)/lib/libgfortran.so.* $(1)/usr/lib/
491 endef
492
493 define Package/libstdcpp/install
494 $(INSTALL_DIR) $(1)/usr/lib
495 $(CP) $(TOOLCHAIN_DIR)/lib/libstdc++.so.* $(1)/usr/lib/
496 rm -rf $(1)/usr/lib/*-gdb.py
497 endef
498
499 define Package/libasan/install
500 $(INSTALL_DIR) $(1)/lib
501 $(CP) $(TOOLCHAIN_DIR)/lib/libasan.so.* $(1)/lib/
502 endef
503
504 define Package/libtsan/install
505 $(INSTALL_DIR) $(1)/lib
506 $(CP) $(TOOLCHAIN_DIR)/lib/libtsan.so.* $(1)/lib/
507 endef
508
509 define Package/liblsan/install
510 $(INSTALL_DIR) $(1)/lib
511 $(CP) $(TOOLCHAIN_DIR)/lib/liblsan.so.* $(1)/lib/
512 endef
513
514 define Package/libubsan/install
515 $(INSTALL_DIR) $(1)/lib
516 $(CP) $(TOOLCHAIN_DIR)/lib/libubsan.so.* $(1)/lib/
517 endef
518
519 define Package/glibc/install
520 $(CP) ./glibc-files/* $(1)/
521 rm -f $(1)/etc/localtime
522 $(INSTALL_DIR) $(1)/lib
523 $(CP) \
524 $(TOOLCHAIN_DIR)/lib/ld*.so.* \
525 $(1)/lib/
526 for file in libanl libc libcidn libcrypt libdl libm libnsl libnss_dns libnss_files libresolv libutil; do \
527 for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.*; do \
528 if [ -e "$$$$file" ]; then \
529 $(CP) $$$$file $(1)/lib/; \
530 fi; \
531 done; \
532 done
533 endef
534
535 LD_MUSL_NAME = $(notdir $(firstword $(wildcard $(TOOLCHAIN_DIR)/lib/libc.so*)))
536
537 define Package/musl/install
538 $(INSTALL_DIR) $(1)/lib $(1)/usr/bin
539 $(CP) \
540 $(TOOLCHAIN_DIR)/lib/ld-musl-*.so* \
541 $(1)/lib/
542 $(CP) \
543 $(TOOLCHAIN_DIR)/lib/libc.so* \
544 $(1)/lib/
545 $(LN) ../../lib/$(LD_MUSL_NAME) $(1)/usr/bin/ldd
546 endef
547
548 define Package/libc/install
549 $(call Package/$(LIBC)/install,$1)
550 endef
551
552 define Package/libc/install_lib
553 $(CP) $(filter-out %/libdl_pic.a %/libpthread_pic.a %/libresolv_pic.a,$(wildcard $(TOOLCHAIN_DIR)/lib/lib*.a)) $(1)/lib/
554 $(if $(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a),$(CP) $(TOOLCHAIN_DIR)/lib/libc_so.a $(1)/lib/libc_pic.a)
555 $(if $(LIBGCC_MAP), \
556 $(CP) $(LIBGCC_A) $(1)/lib/libgcc_s_pic.a; \
557 $(CP) $(LIBGCC_MAP) $(1)/lib/libgcc_s_pic.map \
558 )
559 endef
560
561 define Package/libpthread/install
562 $(INSTALL_DIR) $(1)/lib
563 ifneq ($(CONFIG_USE_MUSL),y)
564 $(CP) \
565 $(TOOLCHAIN_DIR)/lib/libpthread.so.* \
566 $(1)/lib/
567 endif
568 endef
569
570 define Package/libthread-db/install
571 $(INSTALL_DIR) $(1)/lib
572 $(CP) \
573 $(TOOLCHAIN_DIR)/lib/libthread_db.so.* $(1)/lib
574 endef
575
576 define Package/libpthread/install_lib
577 $(if $(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a),$(CP) $(TOOLCHAIN_DIR)/lib/libpthread_so.a $(1)/lib/libpthread_pic.a)
578 endef
579
580 define Package/librt/install
581 $(INSTALL_DIR) $(1)/lib
582 ifneq ($(CONFIG_USE_MUSL),y)
583 $(CP) \
584 $(TOOLCHAIN_DIR)/lib/librt.so.* \
585 $(1)/lib/
586 endif
587 endef
588
589 define Package/ldd/install
590 $(INSTALL_DIR) $(1)/usr/bin/
591 $(CP) $(TOOLCHAIN_DIR)/bin/ldd $(1)/usr/bin/
592 sed -i 's,^#!.*,#!/bin/sh,' $(1)/usr/bin/ldd
593 endef
594
595 define Package/ldconfig/install
596 $(INSTALL_DIR) $(1)/sbin/
597 $(CP) $(TOOLCHAIN_DIR)/sbin/ldconfig $(1)/sbin/
598 endef
599
600 else
601
602 define Package/libgcc/install
603 for file in $(call qstrip,$(CONFIG_LIBGCC_FILE_SPEC)); do \
604 $(INSTALL_DIR) $(1)/lib ; \
605 $(CP) $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$$$$file $(1)/lib/ ; \
606 done ; \
607 exit 0
608 endef
609
610 define Package/libgfortran/install
611 for file in $(call qstrip,$(CONFIG_LIBGFORTRAN_FILE_SPEC)); do \
612 $(INSTALL_DIR) $(1)/lib ; \
613 $(CP) $(call qstrip,$(CONFIG_LIBGFORTRAN_ROOT_DIR))/$$$$file $(1)/lib/ ; \
614 done
615 endef
616
617 define Package/libstdcpp/install
618 for file in $(call qstrip,$(CONFIG_LIBSTDCPP_FILE_SPEC)); do \
619 $(INSTALL_DIR) $(1)/lib ; \
620 $(CP) $(call qstrip,$(CONFIG_LIBSTDCPP_ROOT_DIR))/$$$$file $(1)/lib/ ; \
621 done ; \
622 exit 0
623 endef
624
625 define Package/libasan/install
626 for file in $(call qstrip,$(CONFIG_LIBASAN_FILE_SPEC)); do \
627 $(INSTALL_DIR) $(1)/lib ; \
628 $(CP) $(call qstrip,$(CONFIG_LIBASAN_ROOT_DIR))/$$$$file $(1)/lib/ ; \
629 done ; \
630 exit 0
631 endef
632
633 define Package/libtsan/install
634 for file in $(call qstrip,$(CONFIG_LIBTSAN_FILE_SPEC)); do \
635 $(INSTALL_DIR) $(1)/lib ; \
636 $(CP) $(call qstrip,$(CONFIG_LIBTSAN_ROOT_DIR))/$$$$file $(1)/lib/ ; \
637 done ; \
638 exit 0
639 endef
640
641 define Package/liblsan/install
642 for file in $(call qstrip,$(CONFIG_LIBLSAN_FILE_SPEC)); do \
643 $(INSTALL_DIR) $(1)/lib ; \
644 $(CP) $(call qstrip,$(CONFIG_LIBLSAN_ROOT_DIR))/$$$$file $(1)/lib/ ; \
645 done ; \
646 exit 0
647 endef
648
649 define Package/libubsan/install
650 for file in $(call qstrip,$(CONFIG_LIBUBSAN_FILE_SPEC)); do \
651 $(INSTALL_DIR) $(1)/lib ; \
652 $(CP) $(call qstrip,$(CONFIG_LIBUBSAN_ROOT_DIR))/$$$$file $(1)/lib/ ; \
653 done ; \
654 exit 0
655 endef
656
657 define Package/glibc/install
658 endef
659
660 LD_MUSL_NAME = $(notdir $(firstword $(wildcard $(TOOLCHAIN_ROOT_DIR)/lib/libc.so*)))
661
662 define Package/musl/install
663 $(INSTALL_DIR) $(1)/usr/bin
664 $(LN) ../../lib/$(LD_MUSL_NAME) $(1)/usr/bin/ldd
665 endef
666
667 define Package/libc/install
668 for file in $(call qstrip,$(CONFIG_LIBC_FILE_SPEC)); do \
669 $(INSTALL_DIR) $(1)/lib ; \
670 $(CP) $(call qstrip,$(CONFIG_LIBC_ROOT_DIR))/$$$$file $(1)/lib/ ; \
671 done ; \
672 exit 0
673 $(call Package/$(LIBC)/install,$1)
674 endef
675
676 define Package/libpthread/install
677 for file in $(call qstrip,$(CONFIG_LIBPTHREAD_FILE_SPEC)); do \
678 $(INSTALL_DIR) $(1)/lib ; \
679 $(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file $(1)/lib/ ; \
680 done ; \
681 exit 0
682 endef
683
684 define Package/libthread-db/install
685 for file in $(call qstrip,$(CONFIG_LIBTHREAD_DB_FILE_SPEC)); do \
686 $(INSTALL_DIR) $(1)/lib ; \
687 $(CP) $(call qstrip,$(CONFIG_LIBTHREAD_DB_ROOT_DIR))/$$$$file $(1)/lib/ ; \
688 done ; \
689 exit 0
690 endef
691
692 define Package/librt/install
693 for file in $(call qstrip,$(CONFIG_LIBRT_FILE_SPEC)); do \
694 $(INSTALL_DIR) $(1)/lib ; \
695 $(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file $(1)/lib/ ; \
696 done ; \
697 exit 0
698 endef
699
700 define Package/libatomic/install
701 for file in $(call qstrip,$(CONFIG_LIBATOMIC_FILE_SPEC)); do \
702 $(INSTALL_DIR) $(1)/lib ; \
703 $(CP) $(call qstrip,$(CONFIG_LIBATOMIC_ROOT_DIR))/$$$$file $(1)/lib/ ; \
704 done ; \
705 exit 0
706 endef
707
708 define Package/libgomp/install
709 for file in $(call qstrip,$(CONFIG_LIBGOMP_FILE_SPEC)); do \
710 $(INSTALL_DIR) $(1)/lib ; \
711 $(CP) $(call qstrip,$(CONFIG_LIBGOMP_ROOT_DIR))/$$$$file $(1)/lib/ ; \
712 done ; \
713 exit 0
714 endef
715
716 define Package/ldd/install
717 for file in $(call qstrip,$(CONFIG_LDD_FILE_SPEC)); do \
718 dir=`dirname $$$$file` ; \
719 $(INSTALL_DIR) $(1)/$$$$dir ; \
720 $(CP) $(call qstrip,$(CONFIG_LDD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
721 done ; \
722 exit 0
723 endef
724
725 define Package/ldconfig/install
726 for file in $(call qstrip,$(CONFIG_LDCONFIG_FILE_SPEC)); do \
727 dir=`dirname $$$$file` ; \
728 $(INSTALL_DIR) $(1)/$$$$dir ; \
729 $(CP) $(call qstrip,$(CONFIG_LDCONFIG_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \
730 done ; \
731 exit 0
732 endef
733
734 endif
735
736 $(eval $(call BuildPackage,libc))
737 $(eval $(call BuildPackage,libgcc))
738 $(eval $(call BuildPackage,libatomic))
739 $(eval $(call BuildPackage,libstdcpp))
740 $(eval $(call BuildPackage,libasan))
741 $(eval $(call BuildPackage,libtsan))
742 $(eval $(call BuildPackage,liblsan))
743 $(eval $(call BuildPackage,libubsan))
744 $(eval $(call BuildPackage,libpthread))
745 $(eval $(call BuildPackage,libthread-db))
746 $(eval $(call BuildPackage,librt))
747 $(eval $(call BuildPackage,libgfortran))
748 $(eval $(call BuildPackage,libgomp))
749 $(eval $(call BuildPackage,ldd))
750 $(eval $(call BuildPackage,ldconfig))