Makefile 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. #
  2. # Copyright (C) 2007 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. # $Id$
  8. include $(TOPDIR)/rules.mk
  9. include $(INCLUDE_DIR)/kernel.mk
  10. PKG_NAME:=base-files
  11. PKG_RELEASE:=13
  12. PKG_FILE_DEPEND:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
  13. include $(INCLUDE_DIR)/package.mk
  14. ifneq ($(DUMP),1)
  15. TARGET:=-$(BOARD)
  16. ifneq ($(wildcard $(PLATFORM_DIR)/base-files-$(PROFILE) $(PLATFORM_SUBDIR)/base-files-$(PROFILE)),)
  17. TARGET:=$(TARGET)-$(PROFILE)
  18. endif
  19. LIBGCC_VERSION:=$(GCC_VERSION)
  20. ifeq ($(ARCH),x86_64)
  21. LIB_SUFFIX:=64
  22. endif
  23. else
  24. UCLIBC_VERSION:=<UCLIBC_VERSION>
  25. LIBGCC_VERSION:=<LIBGCC_VERSION>
  26. endif
  27. CONFIG_PACKAGE_base-files$(TARGET):=$(CONFIG_PACKAGE_base-files)
  28. define Package/base-files$(TARGET)
  29. SECTION:=base
  30. CATEGORY:=Base system
  31. TITLE:=Base filesystem for OpenWrt
  32. URL:=http://openwrt.org/
  33. VERSION:=$(PKG_RELEASE)-$(REVISION)
  34. $(call Config,network.lan.proto,string,static,LAN Protocol)
  35. $(call Config,network.lan.ipaddr,ip,192.168.1.1,LAN IP Address)
  36. $(call Config,network.lan.netmask,netmask,255.255.255.0,LAN Network Mask)
  37. $(call Config,network.lan.gateway,ip,,LAN Gateway)
  38. $(call Config,network.lan.dns,ip,,LAN DNS server)
  39. endef
  40. define Package/base-files$(TARGET)/conffiles
  41. /etc/banner
  42. /etc/hosts
  43. /etc/inittab
  44. /etc/group
  45. /etc/passwd
  46. /etc/profile
  47. /etc/shells
  48. /etc/sysctl.conf
  49. $(call $(TARGET)/conffiles)
  50. endef
  51. define Package/base-files$(TARGET)/description
  52. This package contains a base filesystem and system scripts for OpenWrt.
  53. endef
  54. define Package/gcc/Default
  55. SECTION:=libs
  56. CATEGORY:=Base system
  57. DEPENDS:=@!NATIVE_TOOLCHAIN
  58. URL:=http://gcc.gnu.org/
  59. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  60. endef
  61. define Package/libgcc
  62. $(call Package/gcc/Default)
  63. TITLE:=GCC support library
  64. DEPENDS+=@!TARGET_avr32
  65. endef
  66. define Package/libssp
  67. $(call Package/gcc/Default)
  68. DEPENDS+=@SSP_SUPPORT
  69. TITLE:=GCC support library
  70. endef
  71. define Package/libstdcpp
  72. $(call Package/gcc/Default)
  73. NAME:=libstdc++
  74. TITLE:=GNU Standard C++ Library v3
  75. DEPENDS+=@INSTALL_LIBSTDCPP
  76. endef
  77. define Package/uclibc/Default
  78. SECTION:=libs
  79. CATEGORY:=Base system
  80. DEPENDS:=@!NATIVE_TOOLCHAIN
  81. URL:=http://uclibc.org/
  82. VERSION:=$(UCLIBC_VERSION)$(UCLIBC_PATCHVER)-$(PKG_RELEASE)
  83. endef
  84. define Package/libpthread
  85. $(call Package/uclibc/Default)
  86. TITLE:=POSIX thread library
  87. endef
  88. define Package/uclibc
  89. $(call Package/uclibc/Default)
  90. TITLE:=C library embedded systems
  91. endef
  92. define Package/ldd
  93. $(call Package/uclibc/Default)
  94. TITLE:=LDD trace utility
  95. endef
  96. define Package/ldconfig
  97. $(call Package/uclibc/Default)
  98. TITLE:=Shared library path configuration
  99. endef
  100. define Build/Prepare
  101. mkdir -p $(PKG_BUILD_DIR)
  102. endef
  103. define Build/Compile/Default
  104. endef
  105. define Build/Compile
  106. $(call Build/Compile/Default)
  107. endef
  108. define Package/base-files$(TARGET)/install
  109. $(CP) ./files/* $(1)/
  110. if [ -d $(GENERIC_PLATFORM_DIR)/base-files/. ]; then \
  111. $(CP) $(GENERIC_PLATFORM_DIR)/base-files/* $(1)/; \
  112. fi
  113. if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
  114. $(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
  115. fi
  116. if [ -d $(PLATFORM_DIR)/base-files-$(PROFILE)/. ]; then \
  117. $(CP) $(PLATFORM_DIR)/base-files-$(PROFILE)/* $(1)/; \
  118. fi
  119. $(if $(filter-out $(PLATFORM_DIR),$(PLATFORM_SUBDIR)), \
  120. if [ -d $(PLATFORM_SUBDIR)/base-files/. ]; then \
  121. $(CP) $(PLATFORM_SUBDIR)/base-files/* $(1)/; \
  122. fi; \
  123. if [ -d $(PLATFORM_SUBDIR)/base-files-$(PROFILE)/. ]; then \
  124. $(CP) $(PLATFORM_SUBDIR)/base-files-$(PROFILE)/* $(1)/; \
  125. fi \
  126. )
  127. # Form valid /etc/shadow entries, by copying the user:pw pairs
  128. # from /etc/passwd, and adding on pw change data
  129. $(if $(CONFIG_BUSYBOX_CONFIG_FEATURE_SHADOWPASSWDS), \
  130. cut -d ':' -f 1-2 $(1)/etc/passwd > $(1)/etc/shadow; \
  131. $(SED) 's/$$$$/:13848:0:99999:7:::/' $(1)/etc/shadow \
  132. )
  133. $(SED) 's,$$$$R,$(REVISION),g' $(1)/etc/banner
  134. mkdir -p $(1)/dev
  135. mkdir -p $(1)/etc/crontabs
  136. mkdir -p $(1)/jffs
  137. mkdir -p $(1)/lib/firmware
  138. mkdir -p $(1)/mnt
  139. mkdir -p $(1)/proc
  140. mkdir -p $(1)/tmp
  141. mkdir -p $(1)/usr/lib
  142. mkdir -p $(1)/usr/bin
  143. mkdir -p $(1)/sys
  144. mkdir -p $(1)/www
  145. mkdir -p $(1)/root
  146. ln -sf /proc/mounts $(1)/etc/mtab
  147. rm -f $(1)/var
  148. ln -sf /tmp $(1)/var
  149. mkdir -p $(1)/etc
  150. ln -sf /tmp/resolv.conf /tmp/fstab /tmp/TZ $(1)/etc/
  151. $(call Package/base-files/install-target,$(1))
  152. for conffile in $(1)/etc/config/*; do \
  153. if [ -f "$$$$conffile" ]; then \
  154. grep "$$$$conffile" $(1)/CONTROL/conffiles || \
  155. echo "$$$${conffile##$(1)}" >> $(1)/CONTROL/conffiles; \
  156. fi \
  157. done
  158. endef
  159. define Package/libgcc/install
  160. $(INSTALL_DIR) $(1)/lib
  161. $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libgcc_s.so.* $(1)/lib/
  162. endef
  163. ifeq ($(word 1,$(subst ., ,$(LIBGCC_VERSION))),4)
  164. define Package/libssp/install
  165. $(INSTALL_DIR) $(1)/lib
  166. $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libssp.so.* $(1)/lib/
  167. endef
  168. endif
  169. define Package/libstdcpp/install
  170. $(INSTALL_DIR) $(1)/lib
  171. $(CP) $(TOOLCHAIN_DIR)/lib$(LIB_SUFFIX)/libstdc++.so.* $(1)/lib/
  172. endef
  173. define Package/libpthread/install
  174. $(INSTALL_DIR) $(1)/lib
  175. $(CP) $(TOOLCHAIN_DIR)/lib/libpthread.so.* $(1)/lib/
  176. $(CP) $(TOOLCHAIN_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
  177. endef
  178. define Package/uclibc/install
  179. $(INSTALL_DIR) $(1)/lib
  180. for file in ld$(LIB_SUFFIX)-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
  181. $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(1)/lib/; \
  182. $(CP) $(TOOLCHAIN_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
  183. done
  184. endef
  185. define Package/ldd/install
  186. $(INSTALL_DIR) $(1)/bin/
  187. $(CP) $(TOOLCHAIN_DIR)/target-utils/ldd $(1)/bin/
  188. endef
  189. define Package/ldconfig/install
  190. $(INSTALL_DIR) $(1)/bin/
  191. $(CP) $(TOOLCHAIN_DIR)/target-utils/ldconfig $(1)/bin/
  192. endef
  193. ifneq ($(DUMP),1)
  194. -include $(PLATFORM_DIR)/base-files.mk
  195. endif
  196. $(eval $(call BuildPackage,base-files$(TARGET)))
  197. $(eval $(call BuildPackage,libgcc))
  198. $(eval $(call BuildPackage,libssp))
  199. $(eval $(call BuildPackage,libstdcpp))
  200. $(eval $(call BuildPackage,libpthread))
  201. $(eval $(call BuildPackage,uclibc))
  202. $(eval $(call BuildPackage,ldd))
  203. $(eval $(call BuildPackage,ldconfig))