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 <kaplan2539@gmail.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[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 <thomas.petazzoni@bootlin.com>
This commit is contained in:
Alex Kaplan 2018-11-10 21:38:34 -08:00 committed by Thomas Petazzoni
parent 5c47cabd17
commit 567928e5ad
3 changed files with 69 additions and 5 deletions

View File

@ -0,0 +1,48 @@
From d24abbec201975a5eb7f8589614cfb424b8c80b6 Mon Sep 17 00:00:00 2001
From: Alex Kaplan <kaplan2539@gmail.com>
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 <kaplan2539@gmail.com>
---
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 <xnox@ubuntu.com>
+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

View File

@ -23,4 +23,11 @@ config BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB
host, which can be used to interact with target devices host, which can be used to interact with target devices
implementing the ADB protocol. 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 endif

View File

@ -31,15 +31,24 @@ HOST_ANDROID_TOOLS_PRE_PATCH_HOOKS += ANDROID_TOOLS_DEBIAN_PATCH
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) 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 HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-libselinux
endif endif
ifeq ($(BR2_PACKAGE_HOST_ANDROID_TOOLS_ADB),y) 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 HOST_ANDROID_TOOLS_DEPENDENCIES += host-zlib host-openssl
endif 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) ifeq ($(BR2_PACKAGE_ANDROID_TOOLS_FASTBOOT),y)
ANDROID_TOOLS_TARGETS += fastboot ANDROID_TOOLS_TARGETS += fastboot
ANDROID_TOOLS_DEPENDENCIES += zlib libselinux ANDROID_TOOLS_DEPENDENCIES += zlib libselinux
@ -58,7 +67,7 @@ endif
# Build each tool in its own directory not to share object files # Build each tool in its own directory not to share object files
define HOST_ANDROID_TOOLS_BUILD_CMDS define HOST_ANDROID_TOOLS_BUILD_CMDS
$(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ $(foreach t,$(HOST_ANDROID_TOOLS_BUILD_TARGETS),\
mkdir -p $(@D)/build-$(t) && \ mkdir -p $(@D)/build-$(t) && \
$(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) SRCDIR=$(@D) \ $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) SRCDIR=$(@D) \
-C $(@D)/build-$(t) -f $(@D)/debian/makefiles/$(t).mk$(sep)) -C $(@D)/build-$(t) -f $(@D)/debian/makefiles/$(t).mk$(sep))
@ -72,8 +81,8 @@ define ANDROID_TOOLS_BUILD_CMDS
endef endef
define HOST_ANDROID_TOOLS_INSTALL_CMDS define HOST_ANDROID_TOOLS_INSTALL_CMDS
$(foreach t,$(HOST_ANDROID_TOOLS_TARGETS),\ $(foreach t,$(HOST_ANDROID_TOOLS_INSTALL_TARGETS),\
$(INSTALL) -D -m 0755 $(@D)/build-$(t)/$(t) $(HOST_DIR)/bin/$(t)$(sep)) $(INSTALL) -D -m 0755 $(@D)/$(t) $(HOST_DIR)/bin/$(notdir $(t))$(sep))
endef endef
define ANDROID_TOOLS_INSTALL_TARGET_CMDS define ANDROID_TOOLS_INSTALL_TARGET_CMDS