Makefile 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. #
  2. # Copyright (C) 2006-2010 OpenWrt.org
  3. #
  4. # This is free software, licensed under the GNU General Public License v2.
  5. # See /LICENSE for more information.
  6. #
  7. include $(TOPDIR)/rules.mk
  8. include $(INCLUDE_DIR)/kernel.mk
  9. PKG_NAME:=fuse
  10. PKG_VERSION:=2.8.3
  11. PKG_RELEASE:=1
  12. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  13. PKG_SOURCE_URL:=@SF/$(PKG_NAME)
  14. PKG_MD5SUM:=517c8384f915e40647bda9f71579fd97
  15. PKG_INSTALL:=1
  16. # Kernel 2.4 Module
  17. FUSE24_VERSION=2.5.3
  18. FUSE24_SOURCE:=$(PKG_NAME)-$(FUSE24_VERSION).tar.gz
  19. FUSE24_MD5SUM:=9c7e8b6606b9f158ae20b8521ba2867c
  20. FUSE24_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(FUSE24_VERSION)
  21. FUSE24_INSTALL_DIR:=$(FUSE24_BUILD_DIR)/ipkg-install
  22. FUSE24_PATCH_DIR:=./patches-kernel24
  23. include $(INCLUDE_DIR)/package.mk
  24. define Package/fuse/Default
  25. TITLE:=FUSE
  26. URL:=http://fuse.sourceforge.net/
  27. endef
  28. define Package/fuse/Default/description
  29. FUSE (Filesystem in UserSpacE)
  30. endef
  31. define Package/fuse-utils
  32. $(call Package/fuse/Default)
  33. SECTION:=utils
  34. CATEGORY:=Utilities
  35. DEPENDS:=+libfuse
  36. TITLE+= (utilities)
  37. SUBMENU:=Filesystem
  38. endef
  39. define Package/fuse-utils/description
  40. $(call Package/fuse/Default/description)
  41. This package contains the FUSE utilities.
  42. - fusermount
  43. - ulockmgr_server
  44. endef
  45. define KernelPackage/fuse
  46. $(call Package/fuse/Default)
  47. SUBMENU:=Filesystems
  48. TITLE+= (kernel module)
  49. ifeq ($(KERNEL),2.4)
  50. FILES:=$(FUSE24_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/kernel/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
  51. VERSION:=$(LINUX_VERSION)+$(FUSE24_VERSION)-$(PKG_RELEASE)
  52. else
  53. KCONFIG:= CONFIG_FUSE_FS
  54. FILES:=$(LINUX_DIR)/fs/fuse/fuse.$(LINUX_KMOD_SUFFIX)
  55. VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)
  56. endif
  57. AUTOLOAD:=$(call AutoLoad,80,fuse)
  58. endef
  59. define KernelPackage/fuse/description
  60. $(call Package/fuse/Default/description)
  61. This package contains the FUSE kernel module.
  62. endef
  63. define Package/libfuse
  64. $(call Package/fuse/Default)
  65. SECTION:=libs
  66. CATEGORY:=Libraries
  67. TITLE+= (library)
  68. DEPENDS:=kmod-fuse
  69. SUBMENU:=Filesystem
  70. endef
  71. define Package/libfuse/description
  72. $(call Package/fuse/Default/description)
  73. This package contains the FUSE shared libraries, needed by other programs.
  74. - libfuse
  75. - libulockmgr
  76. endef
  77. # generic args
  78. CONFIGURE_ARGS += \
  79. --enable-shared \
  80. --enable-static \
  81. --disable-rpath \
  82. --disable-example \
  83. --disable-mtab
  84. # kmod 2.4 args
  85. FUSE24_CONFIGURE_ARGS := $(CONFIGURE_ARGS) \
  86. --disable-lib --disable-util \
  87. --enable-kernel-module --disable-auto-modprobe \
  88. --with-kernel="$(LINUX_DIR)"
  89. # generic package uses lib & utils
  90. CONFIGURE_ARGS += --enable-lib --enable-util
  91. ####### FUSE24 - START ######
  92. ### if we're on kernel 2.4 build a kernel 2.4 compatible fuse module from older version, see also
  93. ### http://sourceforge.net/apps/mediawiki/fuse/index.php?title=FAQ#What_version_of_FUSE_do_I_need_to_use_FUSE_with_Linux_2.4.3F
  94. ifeq ($(KERNEL),2.4)
  95. define Download/fuse24
  96. FILE:=$(FUSE24_SOURCE)
  97. URL:=$(PKG_SOURCE_URL)
  98. MD5SUM:=$(FUSE24_MD5SUM)
  99. endef
  100. $(eval $(call Download,fuse24))
  101. define Build/Prepare/fuse24
  102. rm -rf $(FUSE24_BUILD_DIR)/
  103. mkdir -p $(FUSE24_BUILD_DIR)/
  104. $(TAR) -xzf $(DL_DIR)/$(FUSE24_SOURCE) -C $(FUSE24_BUILD_DIR)/..
  105. endef
  106. define Build/Patch/fuse24
  107. $(call PatchDir,$(FUSE24_BUILD_DIR),$(FUSE24_PATCH_DIR),)
  108. endef
  109. define Build/Configure/fuse24
  110. (cd $(FUSE24_BUILD_DIR); \
  111. rm -rf config.{cache,status} ; \
  112. $(CONFIGURE_VARS) \
  113. ./configure \
  114. $(FUSE24_CONFIGURE_ARGS) \
  115. );
  116. endef
  117. define Build/Compile/fuse24
  118. $(MAKE) -C $(FUSE24_BUILD_DIR)/$(MAKE_PATH) \
  119. ARCH="$(LINUX_KARCH)" \
  120. CROSS_COMPILE="$(TARGET_CROSS)" \
  121. all;
  122. endef
  123. define Build/Install/fuse24
  124. rm -rf $(FUSE24_INSTALL_DIR)
  125. mkdir -p $(FUSE24_INSTALL_DIR)
  126. $(MAKE) -C $(FUSE24_BUILD_DIR) \
  127. ARCH="$(LINUX_KARCH)" \
  128. CROSS_COMPILE="$(TARGET_CROSS)" \
  129. DESTDIR="$(FUSE24_INSTALL_DIR)" \
  130. install
  131. endef
  132. define Build/Prepare
  133. @echo "--> Build/Prepare enter"
  134. $(call Build/Prepare/fuse24)
  135. $(call Build/Patch/fuse24)
  136. $(call Build/Prepare/Default)
  137. @echo "--> Build/Prepare leave"
  138. endef
  139. define Build/Configure
  140. @echo "--> Build/Configure enter"
  141. $(call Build/Configure/fuse24)
  142. $(call Build/Configure/Default)
  143. @echo "--> Build/Configure leave"
  144. endef
  145. define Build/Compile
  146. @echo "--> Build/Compile enter"
  147. $(call Build/Compile/fuse24)
  148. $(call Build/Compile/Default)
  149. @echo "--> Build/Compile leave"
  150. endef
  151. define Build/Install
  152. @echo "--> Build/Install enter"
  153. $(call Build/Install/fuse24)
  154. $(call Build/Install/Default)
  155. @echo "--> Build/Install leave"
  156. endef
  157. endif
  158. ####### FUSE24 - END ######
  159. define Build/InstallDev
  160. @echo "--> Build/InstallDev enter"
  161. mkdir -p $(1)/usr/include
  162. $(CP) $(PKG_INSTALL_DIR)/usr/include/{fuse,*.h} $(1)/usr/include/
  163. mkdir -p $(1)/usr/lib
  164. $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.{a,so*} $(1)/usr/lib/
  165. mkdir -p $(1)/usr/lib/pkgconfig
  166. $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/fuse.pc $(1)/usr/lib/pkgconfig/
  167. $(SED) 's,-I$$$${includedir}/fuse,,g' $(1)/usr/lib/pkgconfig/fuse.pc
  168. $(SED) 's,-L$$$${libdir},,g' $(1)/usr/lib/pkgconfig/fuse.pc
  169. @echo "--> Build/InstallDev leave"
  170. endef
  171. define Package/fuse-utils/install
  172. @echo "--> Package/fuse-utils/install enter"
  173. $(INSTALL_DIR) $(1)/usr/bin
  174. # use cp and keep fusermount sticky bit
  175. $(FIND) $(PKG_INSTALL_DIR)/usr/bin/ -type f -exec $(CP) -a {} $(1)/usr/bin/ \;
  176. @echo "--> Package/fuse-utils/install leave"
  177. endef
  178. define Package/libfuse/install
  179. @echo "--> Package/libfuse/install enter"
  180. $(INSTALL_DIR) $(1)/usr/lib
  181. $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so.* $(1)/usr/lib/
  182. @echo "--> Package/libfuse/install leave"
  183. endef
  184. define Package/kmod-fuse/install
  185. @echo "--> Package/kmod-fuse/install enter/leave"
  186. endef
  187. $(eval $(call BuildPackage,fuse-utils))
  188. $(eval $(call BuildPackage,libfuse))
  189. $(eval $(call KernelPackage,fuse))