Makefile 9.4 KB

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