Makefile 5.3 KB

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