Makefile 5.6 KB

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