Makefile 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
  14. ifeq ($(REV),)
  15. REV:=0
  16. endif
  17. include $(INCLUDE_DIR)/package.mk
  18. ifneq ($(DUMP),1)
  19. TARGET:=-$(BOARD)-$(KERNEL)
  20. UCLIBC_VERSION:=${shell cat $(STAGING_DIR)/uclibc_version 2>/dev/null}
  21. LIBGCC_VERSION:=${shell cat $(STAGING_DIR)/gcc_version 2>/dev/null}
  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. endef
  36. define Package/base-files$(TARGET)/conffiles
  37. /etc/banner
  38. /etc/hosts
  39. /etc/inittab
  40. /etc/group
  41. /etc/passwd
  42. /etc/profile
  43. /etc/shells
  44. /etc/ipkg.conf
  45. /etc/sysctl.conf
  46. $(call $(TARGET)/conffiles)
  47. endef
  48. define Package/libgcc
  49. SECTION:=libs
  50. CATEGORY:=Base system
  51. DEPENDS:=@!NATIVE_TOOLCHAIN
  52. TITLE:=GCC support library
  53. URL:=http://gcc.gnu.org/
  54. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  55. endef
  56. define Package/libpthread
  57. SECTION:=libs
  58. CATEGORY:=Libraries
  59. DEPENDS:=@!NATIVE_TOOLCHAIN
  60. TITLE:=POSIX thread library
  61. URL:=http://uclibc.org/
  62. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  63. endef
  64. define Package/uclibc
  65. SECTION:=libs
  66. CATEGORY:=Base system
  67. DEPENDS:=@!NATIVE_TOOLCHAIN
  68. TITLE:=C library embedded systems
  69. URL:=http://uclibc.org/
  70. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  71. endef
  72. define Build/Prepare
  73. mkdir -p $(PKG_BUILD_DIR)
  74. endef
  75. define Build/Compile/Default
  76. endef
  77. define Build/Compile
  78. $(call Build/Compile/Default)
  79. endef
  80. define Package/base-files$(TARGET)/install
  81. $(CP) ./files/* $(1)/
  82. if [ -d $(PLATFORM_DIR)/base-files/. ]; then \
  83. $(CP) $(PLATFORM_DIR)/base-files/* $(1)/; \
  84. fi
  85. $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
  86. $(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
  87. mkdir -p $(1)/dev
  88. mkdir -p $(1)/etc/crontabs
  89. mkdir -p $(1)/jffs
  90. mkdir -p $(1)/lib
  91. mkdir -p $(1)/mnt
  92. mkdir -p $(1)/proc
  93. mkdir -p $(1)/tmp
  94. mkdir -p $(1)/usr/lib
  95. mkdir -p $(1)/usr/bin
  96. mkdir -p $(1)/sys
  97. mkdir -p $(1)/www
  98. ln -sf /proc/mounts $(1)/etc/mtab
  99. rm -f $(1)/var
  100. ln -sf /tmp $(1)/var
  101. mkdir -p $(1)/etc
  102. $(call Package/base-files/install-target,$(1))
  103. for conffile in $(1)/etc/config/*; do \
  104. if [ -f "$$$$conffile" ]; then \
  105. grep "$$$$conffile" $(1)/CONTROL/conffiles || \
  106. echo "$$$${conffile##$(1)}" >> $(1)/CONTROL/conffiles; \
  107. fi \
  108. done
  109. endef
  110. define Package/libgcc/install
  111. install -m0755 -d $(1)/lib
  112. $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
  113. endef
  114. define Package/libpthread/install
  115. install -m0755 -d $(1)/lib
  116. $(CP) $(STAGING_DIR)/lib/libpthread.so.* $(1)/lib/
  117. $(CP) $(STAGING_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
  118. endef
  119. define Package/uclibc/install
  120. install -m0755 -d $(1)/lib
  121. for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
  122. $(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
  123. $(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
  124. done
  125. endef
  126. ifneq ($(DUMP),1)
  127. -include $(PLATFORM_DIR)/base-files.mk
  128. endif
  129. $(eval $(call BuildPackage,base-files$(TARGET)))
  130. $(eval $(call BuildPackage,libgcc))
  131. $(eval $(call BuildPackage,libpthread))
  132. $(eval $(call BuildPackage,uclibc))