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