Makefile 5.1 KB

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