Makefile 5.0 KB

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