9e2f2fafe55345a1b99086d4f85d359bc81121a9
[openwrt/openwrt.git] / package / utils / e2fsprogs / Makefile
1 #
2 # Copyright (C) 2006-2014 OpenWrt.org
3 # Copyright 2010 Vertical Communications
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
10 PKG_NAME:=e2fsprogs
11 PKG_VERSION:=1.47.0
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
15 PKG_SOURCE_URL:=@KERNEL/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
16 PKG_HASH:=144af53f2bbd921cef6f8bea88bb9faddca865da3fbc657cc9b4d2001097d5db
17
18 PKG_LICENSE:=GPL-2.0
19 PKG_LICENSE_FILES:=NOTICE
20 PKG_CPE_ID:=cpe:/a:e2fsprogs_project:e2fsprogs
21
22 PKG_BUILD_DEPENDS:=util-linux e2fsprogs/host
23 PKG_INSTALL:=1
24
25 PKG_BUILD_PARALLEL:=1
26 PKG_BUILD_FLAGS:=gc-sections lto
27
28 include $(INCLUDE_DIR)/package.mk
29 include $(INCLUDE_DIR)/host-build.mk
30
31 define Package/e2fsprogs
32 SECTION:=utils
33 CATEGORY:=Utilities
34 SUBMENU:=Filesystem
35 TITLE:=Ext2/3/4 filesystem utilities
36 URL:=http://e2fsprogs.sourceforge.net/
37 DEPENDS:=+libuuid +libext2fs +libe2p
38 endef
39
40 define Package/e2fsprogs/description
41 This package contains essential ext2 filesystem utilities which consists of
42 e2fsck, mke2fs and most of the other core ext2 filesystem utilities.
43 endef
44
45 define Package/libext2fs
46 SECTION:=libs
47 CATEGORY:=Libraries
48 TITLE:=ext2/3/4 filesystem library
49 URL:=http://e2fsprogs.sourceforge.net/
50 DEPENDS:=+libuuid +libblkid +libss +libcomerr
51 ABI_VERSION:=2
52 endef
53
54 define Package/libext2fs/description
55 libext2fs is a library which can access ext2, ext3 and ext4 filesystems.
56 endef
57
58 define Package/libe2p
59 SECTION:=libs
60 CATEGORY:=Libraries
61 TITLE:=ext2fs userspace programs utility library
62 URL:=http://e2fsprogs.sourceforge.net/
63 DEPENDS:=+libuuid
64 ABI_VERSION:=2
65 endef
66
67 define Package/libe2p/description
68 This package contains libe2p, ext2fs userspace programs utility library
69 bundled with e2fsprogs.
70 endef
71
72 define Package/libss
73 SECTION:=libs
74 CATEGORY:=Libraries
75 TITLE:=command-line interface parsing library
76 URL:=http://e2fsprogs.sourceforge.net/
77 DEPENDS:=+libcomerr
78 ABI_VERSION:=2
79 endef
80
81 define Package/libss/description
82 This pacakge contains libss, a command-line interface parsing library
83 bundled with e2fsprogs.
84 endef
85
86 define Package/libcomerr
87 SECTION:=libs
88 CATEGORY:=Libraries
89 TITLE:=common error description library
90 URL:=http://e2fsprogs.sourceforge.net/
91 DEPENDS:=+libuuid
92 ABI_VERSION:=0
93 endef
94
95 define Package/libcomerr/description
96 This package contains libcom_err, the common error description library
97 bundled with e2fsprogs.
98 endef
99
100 define Package/tune2fs
101 $(call Package/e2fsprogs)
102 TITLE:=Ext2 Filesystem tune utility
103 DEPENDS:= +e2fsprogs
104 endef
105
106 define Package/resize2fs
107 $(call Package/e2fsprogs)
108 TITLE:=Ext2 Filesystem resize utility
109 DEPENDS:= +e2fsprogs
110 endef
111
112 define Package/badblocks
113 $(call Package/e2fsprogs)
114 TITLE:=Ext2 Filesystem badblocks utility
115 DEPENDS:= +e2fsprogs
116 endef
117
118 define Package/dumpe2fs
119 $(call Package/e2fsprogs)
120 TITLE:=Ext2 Filesystem information dumping utility
121 DEPENDS:= +e2fsprogs
122 endef
123
124 define Package/e2freefrag
125 $(call Package/e2fsprogs)
126 TITLE:=Ext2 Filesystem free space fragmentation information utility
127 DEPENDS:= +e2fsprogs
128 endef
129
130 define Package/e4crypt
131 $(call Package/e2fsprogs)
132 TITLE:=Ext4 Filesystem encryption utility
133 DEPENDS:= +e2fsprogs
134 endef
135
136 define Package/filefrag
137 $(call Package/e2fsprogs)
138 TITLE:=Ext2 Filesystem file fragmentation report utility
139 DEPENDS:= +e2fsprogs
140 endef
141
142 define Package/debugfs
143 $(call Package/e2fsprogs)
144 TITLE:=Ext2 Filesystem debugger
145 DEPENDS:= +e2fsprogs
146 endef
147
148 define Package/chattr
149 $(call Package/e2fsprogs)
150 TITLE:=Ext2 Filesystem chattr utility
151 DEPENDS:= +e2fsprogs
152 endef
153
154 define Package/lsattr
155 $(call Package/e2fsprogs)
156 TITLE:=Ext2 Filesystem lsattr utility
157 DEPENDS:= +e2fsprogs
158 endef
159
160 TARGET_CFLAGS += $(FPIC)
161
162 CONFIGURE_ARGS += \
163 --disable-testio-debug \
164 --enable-elf-shlibs \
165 --disable-libuuid \
166 --disable-libblkid \
167 --disable-uuidd \
168 --disable-tls \
169 --disable-nls \
170 --disable-rpath \
171 --disable-fuse2fs
172
173 ifneq ($(CONFIG_USE_MUSL),)
174 CONFIGURE_VARS += ac_cv_func_lseek64=yes
175 endif
176
177 define Build/Prepare
178 $(call Build/Prepare/Default)
179 $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/config/
180 endef
181
182 define Build/Compile
183 +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/util \
184 BUILDCC="$(HOSTCC)" \
185 CFLAGS="" \
186 CPPFLAGS="" \
187 LDFLAGS="" \
188 V=$(if $(findstring c,$(OPENWRT_VERBOSE)),1,) \
189 subst
190 +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
191 BUILDCC="$(HOSTCC)" \
192 DESTDIR="$(PKG_INSTALL_DIR)" \
193 ELF_OTHER_LIBS="$(TARGET_LDFLAGS) -luuid" \
194 SYSLIBS="$(TARGET_LDFLAGS) -ldl -L$(PKG_BUILD_DIR)/lib/ -l:libcom_err.so.0.0" \
195 V=$(if $(findstring c,$(OPENWRT_VERBOSE)),1,) \
196 all
197 endef
198
199 define Build/InstallDev
200 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
201
202 $(CP) $(PKG_BUILD_DIR)/lib/ext2fs/ext2fs.pc $(1)/usr/lib/pkgconfig
203 $(CP) $(PKG_BUILD_DIR)/lib/et/com_err.pc $(1)/usr/lib/pkgconfig
204 $(CP) $(PKG_BUILD_DIR)/lib/e2p/e2p.pc $(1)/usr/lib/pkgconfig
205 $(CP) $(PKG_BUILD_DIR)/lib/ss/ss.pc $(1)/usr/lib/pkgconfig
206
207 $(INSTALL_DIR) $(1)/usr/lib
208 $(CP) $(PKG_BUILD_DIR)/lib/libext2fs.{so,a}* $(1)/usr/lib
209 $(CP) $(PKG_BUILD_DIR)/lib/libcom_err.{so,a}* $(1)/usr/lib
210 $(CP) $(PKG_BUILD_DIR)/lib/libss.{so,a}* $(1)/usr/lib
211 $(CP) $(PKG_BUILD_DIR)/lib/libe2p.{so,a}* $(1)/usr/lib
212
213 $(INSTALL_DIR) $(1)/usr/include/ext2fs
214 $(CP) $(PKG_BUILD_DIR)/lib/ext2fs/*.h $(1)/usr/include/ext2fs
215 $(INSTALL_DIR) $(1)/usr/include/et
216 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/et/*.h $(1)/usr/include/et
217 # Apparently there is some confusion
218 echo "#include <et/com_err.h>" > $(1)/usr/include/com_err.h
219 $(INSTALL_DIR) $(1)/usr/include/ss
220 $(CP) \
221 $(PKG_BUILD_DIR)/lib/ss/ss.h \
222 $(PKG_BUILD_DIR)/lib/ss/ss_err.h \
223 $(1)/usr/include/ss/
224 $(INSTALL_DIR) $(1)/usr/include/e2p
225 $(CP) $(PKG_BUILD_DIR)/lib/e2p/e2p.h $(1)/usr/include/e2p
226 endef
227
228 define Host/Compile
229 $(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/lib/ss mk_cmds
230 $(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR)/lib/et compile_et
231 endef
232
233 define Host/Install
234 $(INSTALL_DIR) $(1)/share/et
235 $(CP) $(HOST_BUILD_DIR)/lib/et/et_[ch].awk $(1)/share/et/
236 $(INSTALL_DIR) $(1)/share/ss
237 $(CP) $(HOST_BUILD_DIR)/lib/ss/ct_c.{sed,awk} $(1)/share/ss/
238 $(INSTALL_DIR) $(1)/bin
239 $(CP) \
240 $(HOST_BUILD_DIR)/lib/et/compile_et \
241 $(HOST_BUILD_DIR)/lib/ss/mk_cmds \
242 $(1)/bin/
243 endef
244
245 define Package/e2fsprogs/conffiles
246 /etc/e2fsck.conf
247 endef
248
249 define Package/e2fsprogs/install
250 $(INSTALL_DIR) $(1)/usr/sbin
251 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e2fsck $(1)/usr/sbin/
252 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mke2fs $(1)/usr/sbin/
253 $(LN) mke2fs $(1)/usr/sbin/mkfs.ext2
254 $(LN) mke2fs $(1)/usr/sbin/mkfs.ext3
255 $(LN) mke2fs $(1)/usr/sbin/mkfs.ext4
256 $(LN) e2fsck $(1)/usr/sbin/fsck.ext2
257 $(LN) e2fsck $(1)/usr/sbin/fsck.ext3
258 $(LN) e2fsck $(1)/usr/sbin/fsck.ext4
259 $(INSTALL_DIR) $(1)/usr/lib
260 $(INSTALL_DIR) $(1)/etc/init.d
261 $(INSTALL_DIR) $(1)/lib/functions/fsck
262 $(INSTALL_DATA) ./files/e2fsck.sh $(1)/lib/functions/fsck/
263 $(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf
264 endef
265
266 define Package/libe2p/install
267 $(INSTALL_DIR) $(1)/usr/lib
268 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libe2p.so.* $(1)/usr/lib/
269 endef
270
271 define Package/libcomerr/install
272 $(INSTALL_DIR) $(1)/usr/lib
273 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so.* $(1)/usr/lib/
274 endef
275
276 define Package/libss/install
277 $(INSTALL_DIR) $(1)/usr/lib
278 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libss.so.* $(1)/usr/lib/
279 endef
280
281 define Package/libext2fs/install
282 $(INSTALL_DIR) $(1)/usr/lib
283 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libext2fs.so.* $(1)/usr/lib/
284 endef
285
286 define Package/libext2fs/install_lib
287 $(INSTALL_DIR) $(1)/usr/lib
288 $(CP) $(PKG_BUILD_DIR)/lib/ext2fs/libext2fs.a $(1)/usr/lib/libext2fs_pic.a
289 endef
290
291 define Package/tune2fs/install
292 $(INSTALL_DIR) $(1)/usr/sbin
293 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tune2fs $(1)/usr/sbin/
294 endef
295
296 define Package/resize2fs/install
297 $(INSTALL_DIR) $(1)/usr/sbin
298 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/resize2fs $(1)/usr/sbin/
299 endef
300
301 define Package/badblocks/install
302 $(INSTALL_DIR) $(1)/usr/sbin
303 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/badblocks $(1)/usr/sbin/
304 endef
305
306 define Package/dumpe2fs/install
307 $(INSTALL_DIR) $(1)/usr/sbin
308 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/dumpe2fs $(1)/usr/sbin/
309 endef
310
311 define Package/e2freefrag/install
312 $(INSTALL_DIR) $(1)/usr/sbin
313 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e2freefrag $(1)/usr/sbin/
314 endef
315
316 define Package/e4crypt/install
317 $(INSTALL_DIR) $(1)/usr/sbin
318 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e4crypt $(1)/usr/sbin/
319 endef
320
321 define Package/filefrag/install
322 $(INSTALL_DIR) $(1)/usr/sbin
323 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/filefrag $(1)/usr/sbin/
324 endef
325
326 define Package/debugfs/install
327 $(INSTALL_DIR) $(1)/usr/sbin
328 $(INSTALL_DIR) $(1)/usr/lib
329 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/debugfs $(1)/usr/sbin/
330 endef
331
332 define Package/chattr/install
333 $(INSTALL_DIR) $(1)/usr/bin
334 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/chattr $(1)/usr/bin/
335 endef
336
337 define Package/lsattr/install
338 $(INSTALL_DIR) $(1)/usr/bin
339 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/lsattr $(1)/usr/bin/
340 endef
341
342 $(eval $(call BuildPackage,libcomerr))
343 $(eval $(call BuildPackage,libss))
344 $(eval $(call BuildPackage,libext2fs))
345 $(eval $(call BuildPackage,libe2p))
346 $(eval $(call BuildPackage,e2fsprogs))
347 $(eval $(call BuildPackage,tune2fs))
348 $(eval $(call BuildPackage,resize2fs))
349 $(eval $(call BuildPackage,badblocks))
350 $(eval $(call BuildPackage,dumpe2fs))
351 $(eval $(call BuildPackage,e2freefrag))
352 $(eval $(call BuildPackage,e4crypt))
353 $(eval $(call BuildPackage,filefrag))
354 $(eval $(call BuildPackage,debugfs))
355 $(eval $(call BuildPackage,chattr))
356 $(eval $(call BuildPackage,lsattr))
357 $(eval $(call HostBuild))