Makefile 4.2 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. 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 -ar7-2.4/conffiles
  37. /etc/config/network
  38. endef
  39. define -aruba-2.6/conffiles
  40. /etc/config/network
  41. endef
  42. define -au1000-2.6/conffiles
  43. /etc/config/network
  44. endef
  45. define -rb532-2.6/conffiles
  46. /etc/config/network
  47. endef
  48. define -sibyte-2.6/conffiles
  49. /etc/config/network
  50. endef
  51. define -x86-2.6/conffiles
  52. /etc/config/network
  53. endef
  54. define -xscale-2.6/conffiles
  55. /etc/config/network
  56. endef
  57. define Package/base-files$(TARGET)/conffiles
  58. /etc/banner
  59. /etc/hosts
  60. /etc/inittab
  61. /etc/group
  62. /etc/passwd
  63. /etc/profile
  64. /etc/shells
  65. /etc/ipkg.conf
  66. /etc/sysctl.conf
  67. $(call $(TARGET)/conffiles)
  68. endef
  69. define Package/libgcc
  70. SECTION:=libs
  71. CATEGORY:=Base system
  72. DEPENDS:=@!NATIVE_TOOLCHAIN
  73. TITLE:=GCC support library
  74. URL:=http://gcc.gnu.org/
  75. VERSION:=$(LIBGCC_VERSION)-$(PKG_RELEASE)
  76. endef
  77. define Package/libpthread
  78. SECTION:=libs
  79. CATEGORY:=Libraries
  80. DEPENDS:=@!NATIVE_TOOLCHAIN
  81. TITLE:=POSIX thread library
  82. URL:=http://uclibc.org/
  83. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  84. endef
  85. define Package/uclibc
  86. SECTION:=libs
  87. CATEGORY:=Base system
  88. DEPENDS:=@!NATIVE_TOOLCHAIN
  89. TITLE:=C library embedded systems
  90. URL:=http://uclibc.org/
  91. VERSION:=$(UCLIBC_VERSION)-$(PKG_RELEASE)
  92. endef
  93. define Build/Prepare
  94. mkdir -p $(PKG_BUILD_DIR)
  95. endef
  96. define Build/Compile/ar7
  97. $(TARGET_CC) -o $(PKG_BUILD_DIR)/adam2patcher src/adam2patcher.c
  98. endef
  99. define Build/Compile/brcm
  100. $(TARGET_CC) -I src -o $(PKG_BUILD_DIR)/jffs2root src/jffs2root.c
  101. endef
  102. define Build/Compile
  103. $(call Build/Compile/$(BOARD))
  104. endef
  105. define Package/base-files$(TARGET)/install-ar7
  106. mkdir -p $(1)/sbin
  107. $(CP) $(PKG_BUILD_DIR)/adam2patcher $(1)/sbin
  108. endef
  109. define Package/base-files$(TARGET)/install-brcm
  110. rm -f $(1)/etc/config/network
  111. mkdir -p $(1)/sbin
  112. $(CP) $(PKG_BUILD_DIR)/jffs2root $(1)/sbin
  113. endef
  114. define Package/base-files$(TARGET)/install
  115. $(CP) ./default/* $(1)/
  116. if [ -d $(BOARD) ]; then \
  117. $(CP) $(BOARD)/* $(1)/; \
  118. fi
  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))