Makefile 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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. $(call Config,network.lan.proto,string,static,LAN Protocol)
  37. $(call Config,network.lan.ipaddr,ip,192.168.1.1,LAN IP Address)
  38. $(call Config,network.lan.netmask,netmask,255.255.0.0,LAN Network Mask)
  39. $(call Config,network.lan.gateway,ip,,LAN Gateway)
  40. $(call Config,network.lan.dns,ip,,LAN DNS server)
  41. endef
  42. define Package/base-files$(TARGET)/conffiles
  43. /etc/banner
  44. /etc/hosts
  45. /etc/inittab
  46. /etc/group
  47. /etc/passwd
  48. /etc/profile
  49. /etc/shells
  50. /etc/ipkg.conf
  51. /etc/sysctl.conf
  52. $(call $(TARGET)/conffiles)
  53. endef
  54. define Package/libgcc
  55. SECTION:=libs
  56. CATEGORY:=Base system
  57. DEPENDS:=@!NATIVE_TOOLCHAIN
  58. TITLE:=GCC support library
  59. URL:=http://gcc.gnu.org/
  60. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  61. endef
  62. define Package/libpthread
  63. SECTION:=libs
  64. CATEGORY:=Libraries
  65. DEPENDS:=@!NATIVE_TOOLCHAIN
  66. TITLE:=POSIX thread library
  67. URL:=http://uclibc.org/
  68. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  69. endef
  70. define Package/uclibc
  71. SECTION:=libs
  72. CATEGORY:=Base system
  73. DEPENDS:=@!NATIVE_TOOLCHAIN
  74. TITLE:=C library embedded systems
  75. URL:=http://uclibc.org/
  76. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  77. endef
  78. define Build/Prepare
  79. mkdir -p $(PKG_BUILD_DIR)
  80. endef
  81. define Build/Compile/Default
  82. endef
  83. define Build/Compile
  84. $(call Build/Compile/Default)
  85. endef
  86. define Package/base-files$(TARGET)/install
  87. $(CP) ./files/* $(1)/
  88. if [ -d $(PLATFORM_DIR)/base-files/default/. ]; then \
  89. $(CP) $(PLATFORM_DIR)/base-files/default/* $(1)/; \
  90. fi
  91. if [ "$(PROFILE)" != "Default" ]; then \
  92. if [ -d $(PLATFORM_DIR)/base-files/profile-$(PROFILE)/. ]; then \
  93. $(CP) $(PLATFORM_DIR)/base-files/profile-$(PROFILE)/* $(1)/; \
  94. fi; \
  95. fi
  96. $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
  97. $(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
  98. mkdir -p $(1)/dev
  99. mkdir -p $(1)/etc/crontabs
  100. mkdir -p $(1)/jffs
  101. mkdir -p $(1)/lib
  102. mkdir -p $(1)/mnt
  103. mkdir -p $(1)/proc
  104. mkdir -p $(1)/tmp
  105. mkdir -p $(1)/usr/lib
  106. mkdir -p $(1)/usr/bin
  107. mkdir -p $(1)/sys
  108. mkdir -p $(1)/www
  109. ln -sf /proc/mounts $(1)/etc/mtab
  110. rm -f $(1)/var
  111. ln -sf /tmp $(1)/var
  112. mkdir -p $(1)/etc
  113. ln -sf /tmp/resolv.conf $(1)/etc/resolv.conf
  114. $(call Package/base-files/install-target,$(1))
  115. for conffile in $(1)/etc/config/*; do \
  116. if [ -f "$$$$conffile" ]; then \
  117. grep "$$$$conffile" $(1)/CONTROL/conffiles || \
  118. echo "$$$${conffile##$(1)}" >> $(1)/CONTROL/conffiles; \
  119. fi \
  120. done
  121. endef
  122. define Package/libgcc/install
  123. $(INSTALL_DIR) $(1)/lib
  124. $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
  125. endef
  126. define Package/libpthread/install
  127. $(INSTALL_DIR) $(1)/lib
  128. $(CP) $(STAGING_DIR)/lib/libpthread.so.* $(1)/lib/
  129. $(CP) $(STAGING_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
  130. endef
  131. define Package/uclibc/install
  132. $(INSTALL_DIR) $(1)/lib
  133. for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
  134. $(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
  135. $(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
  136. done
  137. endef
  138. ifneq ($(DUMP),1)
  139. -include $(PLATFORM_DIR)/base-files.mk
  140. endif
  141. $(eval $(call BuildPackage,base-files$(TARGET)))
  142. $(eval $(call BuildPackage,libgcc))
  143. $(eval $(call BuildPackage,libpthread))
  144. $(eval $(call BuildPackage,uclibc))