Makefile 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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)
  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. LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version 2>/dev/null}
  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. DESCRIPTION:=\
  33. This package contains a base filesystem and system scripts for OpenWrt.
  34. URL:=http://openwrt.org/
  35. VERSION:=$(PKG_RELEASE)-$(REV)
  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/libgcc
  50. SECTION:=libs
  51. CATEGORY:=Base system
  52. DEPENDS:=@!NATIVE_TOOLCHAIN
  53. TITLE:=GCC support library
  54. URL:=http://gcc.gnu.org/
  55. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  56. endef
  57. define Package/libpthread
  58. SECTION:=libs
  59. CATEGORY:=Libraries
  60. DEPENDS:=@!NATIVE_TOOLCHAIN
  61. TITLE:=POSIX thread library
  62. URL:=http://uclibc.org/
  63. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  64. endef
  65. define Package/uclibc
  66. SECTION:=libs
  67. CATEGORY:=Base system
  68. DEPENDS:=@!NATIVE_TOOLCHAIN
  69. TITLE:=C library embedded systems
  70. URL:=http://uclibc.org/
  71. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  72. endef
  73. define Build/Prepare
  74. mkdir -p $(PKG_BUILD_DIR)
  75. endef
  76. define Build/Compile/Default
  77. endef
  78. define Build/Compile
  79. $(call Build/Compile/Default)
  80. endef
  81. define Package/base-files$(TARGET)/install
  82. $(CP) ./files/* $(1)/
  83. if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
  84. $(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
  85. fi
  86. $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
  87. $(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
  88. mkdir -p $(1)/dev
  89. mkdir -p $(1)/etc/crontabs
  90. mkdir -p $(1)/jffs
  91. mkdir -p $(1)/lib
  92. mkdir -p $(1)/mnt
  93. mkdir -p $(1)/proc
  94. mkdir -p $(1)/tmp
  95. mkdir -p $(1)/usr/lib
  96. mkdir -p $(1)/usr/bin
  97. mkdir -p $(1)/sys
  98. mkdir -p $(1)/www
  99. ln -sf /proc/mounts $(1)/etc/mtab
  100. rm -f $(1)/var
  101. ln -sf /tmp $(1)/var
  102. mkdir -p $(1)/etc
  103. ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
  104. $(call Package/base-files/install-target,$(1))
  105. for conffile in $(1)/etc/config/*; do \
  106. if [ -f "$$$$conffile" ]; then \
  107. grep "$$$$conffile" $(1)/CONTROL/conffiles || \
  108. echo "$$$${conffile##$(1)}" >> $(1)/CONTROL/conffiles; \
  109. fi \
  110. done
  111. endef
  112. define Package/libgcc/install
  113. $(INSTALL_DIR) $(1)/lib
  114. $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
  115. endef
  116. define Package/libpthread/install
  117. $(INSTALL_DIR) $(1)/lib
  118. $(CP) $(STAGING_DIR)/lib/libpthread.so.* $(1)/lib/
  119. $(CP) $(STAGING_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
  120. endef
  121. define Package/uclibc/install
  122. $(INSTALL_DIR) $(1)/lib
  123. for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
  124. $(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
  125. $(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
  126. done
  127. endef
  128. ifneq ($(DUMP),1)
  129. -include $(PLATFORM_DIR)/base-files.mk
  130. endif
  131. $(eval $(call BuildPackage,base-files$(TARGET)))
  132. $(eval $(call BuildPackage,libgcc))
  133. $(eval $(call BuildPackage,libpthread))
  134. $(eval $(call BuildPackage,uclibc))