From 567928e5ada28552cfa9c228aba4f275df05008e Mon Sep 17 00:00:00 2001 From: Alex Kaplan Date: Sat, 10 Nov 2018 21:38:34 -0800 Subject: [PATCH] package/android-tools: add option to build ext4 utils for the host This patch adds an option to build and install the ext4_utils for the host, i.e. make_ext4fs, ext4fixup, ext2simg, img2simg, simg2img and simg2simg. Signed-off-by: Alex Kaplan Reviewed-by: Arnout Vandecappelle (Essensium/Mind) [Thomas: - simplify a bit the installation logic by using a single HOST_ANDROID_TOOLS_INSTALL_TARGETS variable, instead of having one specific for ext4 tools - drop "default n" from Config.in.host] Signed-off-by: Thomas Petazzoni --- ...les-for-out-of-tree-ext4_utils-build.patch | 48 +++++++++++++++++++ package/android-tools/Config.in.host | 7 +++ package/android-tools/android-tools.mk | 19 ++++++-- 3 files changed, 69 insertions(+), 5 deletions(-) create mode 100644 package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch diff --git a/package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch b/package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch new file mode 100644 index 0000000000..80ea1ec1fe --- /dev/null +++ b/package/android-tools/0009-Fix-makefiles-for-out-of-tree-ext4_utils-build.patch @@ -0,0 +1,48 @@ +From d24abbec201975a5eb7f8589614cfb424b8c80b6 Mon Sep 17 00:00:00 2001 +From: Alex Kaplan +Date: Sat, 10 Nov 2018 19:50:51 -0800 +Subject: [PATCH] Fix makefiles for out-of-tree ext4_utils build + +Signed-off-by: Alex Kaplan +--- + debian/makefiles/ext4_utils.mk | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/debian/makefiles/ext4_utils.mk b/debian/makefiles/ext4_utils.mk +index cb64916..c5904bf 100644 +--- a/debian/makefiles/ext4_utils.mk ++++ b/debian/makefiles/ext4_utils.mk +@@ -1,6 +1,7 @@ + # Makefile for ext4_utils; based on https://heiher.info/2227.html + # Author: Dmitrijs Ledkovs + ++VPATH+=$(SRCDIR)/extras/ext4_utils + SRCS+=make_ext4fs.c + SRCS+=ext4fixup.c + SRCS+=ext4_utils.c +@@ -13,7 +14,7 @@ SRCS+=sha1.c + SRCS+=wipe.c + SRCS+=crc16.c + +-VPATH+=../../core/libsparse ++VPATH+=$(SRCDIR)/core/libsparse + SRCS+= backed_block.c + SRCS+= sparse_crc32.c + SRCS+= sparse.c +@@ -31,10 +32,9 @@ SRCS+=img2simg.c + SRCS+=simg2img.c + SRCS+=simg2simg.c + +-CPPFLAGS+= -I. +-CPPFLAGS+= -I/usr/include +-CPPFLAGS+= -I../../core/include +-CPPFLAGS+= -I../../core/libsparse/include/ ++CPPFLAGS+= -I$(SRCDIR) ++CPPFLAGS+= -I$(SRCDIR)/core/include ++CPPFLAGS+= -I$(SRCDIR)/core/libsparse/include/ + + LIBS+= -lz -lselinux + +-- +2.7.4 + diff --git a/package/android-tools/Config.in.host b/package/android-tools/Config.in.host index 993c4c9fdc..433f4e384f 100644 --- a/package/android-tools/Config.in.host +++ b/package/android-tools/Config.in.host @@ -23,4 +23,11 @@ config BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB host, which can be used to interact with target devices implementing the ADB protocol. +config BR2_PACKAGE_HOST_ANDROID_TOOLS_EXT4_UTILS + bool "ext4 utils" + help + This option will build and install the ext4 utils for the + host, i.e. make_ext4fs, ext4fixup, ext2simg, img2simg, + simg2img and simg2simg. + endif diff --git a/package/android-tools/android-tools.mk b/package/android-tools/android-tools.mk index 879d788e3a..6f6ca7729b 100644 --- a/package/android-tools/android-tools.mk +++ b/package/android-tools/android-tools.mk @@ -31,15 +31,24 @@ HOST_ANDROID_TOOLS_PRE_PATCH_HOOKS += ANDROID_TOOLS_DEBIAN_PATCH ANDROID_TOOLS_PRE_PATCH_HOOKS += ANDROID_TOOLS_DEBIAN_PATCH ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_FASTBOOT),y) -HOST_ANDROID_TOOLS_TARGETS += fastboot +HOST_ANDROID_TOOLS_BUILD_TARGETS += fastboot +HOST_ANDROID_TOOLS_INSTALL_TARGETS += build-fastboot/fastboot HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-libselinux endif ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB),y) -HOST_ANDROID_TOOLS_TARGETS += adb +HOST_ANDROID_TOOLS_BUILD_TARGETS += adb +HOST_ANDROID_TOOLS_INSTALL_TARGETS += build-adb/adb HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-openssl endif +ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_EXT4_UTILS),y) +HOST_ANDROID_TOOLS_BUILD_TARGETS += ext4_utils +HOST_ANDROID_TOOLS_INSTALL_TARGETS += \ + $(addprefix build-ext4_utils/,make_ext4fs ext4fixup ext2simg img2simg simg2img simg2simg) +HOST_ANDROID_TOOLS_DEPENDENCIES += host-libselinux +endif + ifeq ($(BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT),y) ANDROID_TOOLS_TARGETS += fastboot ANDROID_TOOLS_DEPENDENCIES += zlib libselinux @@ -58,7 +67,7 @@ endif # Build each tool in its own directory not to share object files define HOST_ANDROID_TOOLS_BUILD_CMDS - $(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ + $(foreach t,$(HOST_ANDROID_TOOLS_BUILD_TARGETS),\ mkdir -p $(@D)/build-$(t) && \ $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) SRCDIR=$(@D) \ -C $(@D)/build-$(t) -f $(@D)/debian/makefiles/$(t).mk$(sep)) @@ -72,8 +81,8 @@ define ANDROID_TOOLS_BUILD_CMDS endef define HOST_ANDROID_TOOLS_INSTALL_CMDS - $(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ - $(INSTALL) -D -m 0755 $(@D)/build-$(t)/$(t) $(HOST_DIR)/bin/$(t)$(sep)) + $(foreach t,$(HOST_ANDROID_TOOLS_INSTALL_TARGETS),\ + $(INSTALL) -D -m 0755 $(@D)/$(t) $(HOST_DIR)/bin/$(notdir $(t))$(sep)) endef define ANDROID_TOOLS_INSTALL_TARGET_CMDS -- 2.30.2