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