Makefile 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  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. DEFAULT:=y
  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 -ar7-2.4/conffiles
  38. /etc/config/network
  39. endef
  40. define -aruba-2.6/conffiles
  41. /etc/config/network
  42. endef
  43. define -au1000-2.6/conffiles
  44. /etc/config/network
  45. endef
  46. define -rb532-2.6/conffiles
  47. /etc/config/network
  48. endef
  49. define -sibyte-2.6/conffiles
  50. /etc/config/network
  51. endef
  52. define -x86-2.6/conffiles
  53. /etc/config/network
  54. endef
  55. define -xscale-2.6/conffiles
  56. /etc/config/network
  57. endef
  58. define Package/base-files$(TARGET)/conffiles
  59. /etc/banner
  60. /etc/hosts
  61. /etc/inittab
  62. /etc/group
  63. /etc/passwd
  64. /etc/profile
  65. /etc/shells
  66. /etc/ipkg.conf
  67. /etc/sysctl.conf
  68. $(call $(TARGET)/conffiles)
  69. endef
  70. define Package/libgcc
  71. SECTION:=libs
  72. CATEGORY:=Base system
  73. DEFAULT:=y
  74. DEPENDS:=@!NATIVE_TOOLCHAIN
  75. TITLE:=GCC support library
  76. URL:=http://gcc.gnu.org/
  77. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  78. endef
  79. define Package/libpthread
  80. SECTION:=libs
  81. CATEGORY:=Libraries
  82. DEPENDS:=@!NATIVE_TOOLCHAIN
  83. TITLE:=POSIX thread library
  84. URL:=http://uclibc.org/
  85. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  86. endef
  87. define Package/uclibc
  88. SECTION:=libs
  89. CATEGORY:=Base system
  90. DEFAULT:=y
  91. DEPENDS:=@!NATIVE_TOOLCHAIN
  92. TITLE:=C library embedded systems
  93. URL:=http://uclibc.org/
  94. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  95. endef
  96. define Build/Prepare
  97. mkdir -p $(PKG_BUILD_DIR)
  98. endef
  99. define Build/Compile/ar7
  100. $(TARGET_CC) -o $(PKG_BUILD_DIR)/adam2patcher src/adam2patcher.c
  101. endef
  102. define Build/Compile/brcm
  103. $(TARGET_CC) -o $(PKG_BUILD_DIR)/jffs2root src/jffs2root.c
  104. endef
  105. define Build/Compile
  106. $(call Build/Compile/$(BOARD))
  107. endef
  108. define Package/base-files$(TARGET)/install-ar7
  109. mkdir -p $(1)/sbin
  110. $(CP) $(PKG_BUILD_DIR)/adam2patcher $(1)/sbin
  111. endef
  112. define Package/base-files$(TARGET)/install-brcm
  113. rm -f $(1)/etc/config/network
  114. mkdir -p $(1)/sbin
  115. $(CP) $(PKG_BUILD_DIR)/jffs2root $(1)/sbin
  116. endef
  117. define Package/base-files$(TARGET)/install
  118. $(CP) ./default/* $(1)/
  119. if [ -d $(BOARD)-$(KERNEL) ]; then \
  120. $(CP) $(BOARD)-$(KERNEL)/* $(1)/; \
  121. fi
  122. $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
  123. $(SED) 's,$$$$S,$(BOARD)-$(KERNEL),g' $(1)/etc/ipkg.conf
  124. mkdir -p $(1)/dev
  125. mkdir -p $(1)/etc/crontabs
  126. mkdir -p $(1)/jffs
  127. mkdir -p $(1)/lib
  128. mkdir -p $(1)/mnt
  129. mkdir -p $(1)/proc
  130. mkdir -p $(1)/tmp
  131. mkdir -p $(1)/usr/lib
  132. mkdir -p $(1)/usr/bin
  133. mkdir -p $(1)/sys
  134. mkdir -p $(1)/www
  135. ln -sf /proc/mounts $(1)/etc/mtab
  136. rm -f $(1)/var
  137. ln -sf /tmp $(1)/var
  138. mkdir -p $(1)/etc
  139. $(call Package/base-files$(TARGET)/install-$(BOARD),$(1))
  140. endef
  141. define Package/libgcc/install
  142. install -m0755 -d $(1)/lib
  143. $(CP) $(STAGING_DIR)/lib/libgcc_s.so.* $(1)/lib/
  144. endef
  145. define Package/libpthread/install
  146. install -m0755 -d $(1)/lib
  147. $(CP) $(STAGING_DIR)/lib/libpthread.so.* $(1)/lib/
  148. $(CP) $(STAGING_DIR)/lib/libpthread-$(UCLIBC_VERSION).so $(1)/lib/
  149. endef
  150. define Package/uclibc/install
  151. install -m0755 -d $(1)/lib
  152. for file in ld-uClibc libc libcrypt libdl libm libnsl libresolv librt libuClibc libutil; do \
  153. $(CP) $(STAGING_DIR)/lib/$$$$file.so.* $(1)/lib/; \
  154. $(CP) $(STAGING_DIR)/lib/$$$$file-$(UCLIBC_VERSION).so $(1)/lib/; \
  155. done
  156. endef
  157. $(eval $(call BuildPackage,base-files$(TARGET)))
  158. $(eval $(call BuildPackage,libgcc))
  159. $(eval $(call BuildPackage,libpthread))
  160. $(eval $(call BuildPackage,uclibc))