blob: 32f3bca1514d472fd2b376d54df614819310ea6b [file] [log] [blame]
################################################################################
#
# aufs-util
#
################################################################################
# linux-headers
AUFS_UTIL_VERSION = $(call qstrip,$(BR2_PACKAGE_AUFS_UTIL_VERSION))
AUFS_UTIL_SITE = https://git.code.sf.net/p/aufs/aufs-util
AUFS_UTIL_SITE_METHOD = git
AUFS_UTIL_LICENSE = GPL-2.0
AUFS_UTIL_LICENSE_FILES = COPYING
AUFS_UTIL_DEPENDENCIES = linux
# Building aufs-util requires access to the kernel headers of aufs,
# which are only available in the kernel build directory, which is why
# we add -I$(LINUX_DIR)/include/uapi. These headers have not been
# prepared for usage by userspace, so to workaround this we have to
# defined the "__user" macro as empty.
AUFS_UTIL_HOST_CPPFLAGS = \
$(HOST_CPPFLAGS) \
-I$(LINUX_DIR)/include/uapi \
-D__user=
AUFS_UTIL_CPPFLAGS = \
$(TARGET_CPPFLAGS) \
-I$(LINUX_DIR)/include/uapi \
-D__user=
# rdu64 is supposed to provide the LFS variant of readdir(),
# readdir64(). However, because Buildroot is always LFS-enabled,
# readdir() is always the LFS variant. Drop rdu64 from the build, as
# it causes build failures due to multiple implementations of
# readdir64().
define AUFS_UTIL_REMOVE_RDU64
$(SED) 's% rdu64.o%%' $(@D)/libau/Makefile
endef
AUFS_UTIL_POST_PATCH_HOOKS += AUFS_UTIL_REMOVE_RDU64
# First, we build the host tools, needed to build the target tools.
define AUFS_UTIL_BUILD_CMDS
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) \
$(HOST_CONFIGURE_OPTS) \
CPPFLAGS="$(AUFS_UTIL_HOST_CPPFLAGS)" \
HOSTCC="$(HOSTCC)" HOSTLD="$(HOSTLD)" \
INSTALL="$(INSTALL)" c2sh c2tmac
$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) \
$(TARGET_CONFIGURE_OPTS) \
CPPFLAGS="$(AUFS_UTIL_CPPFLAGS)" \
INSTALL="$(INSTALL)" all
endef
define AUFS_UTIL_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) INSTALL="$(INSTALL)" DESTDIR="$(TARGET_DIR)" install
endef
$(eval $(generic-package))