kumquat-buildroot/package/acl/acl.mk

58 lines
1.8 KiB
Makefile
Raw Normal View History

################################################################################
#
# acl
#
################################################################################
ACL_VERSION = 2.2.52
ACL_SOURCE = acl-$(ACL_VERSION).src.tar.gz
ACL_SITE = http://download.savannah.gnu.org/releases/acl
ACL_INSTALL_STAGING = YES
ACL_DEPENDENCIES = attr
ACL_CONF_OPTS = --enable-gettext=no
ACL_LICENSE = GPL-2.0+ (programs), LGPL-2.1+ (libraries)
ACL_LICENSE_FILES = doc/COPYING doc/COPYING.LGPL
# While the configuration system uses autoconf, the Makefiles are
# hand-written and do not use automake. Therefore, we have to hack
# around their deficiencies by:
# - explicitly passing CFLAGS (LDFLAGS are passed on from configure,
# CFLAGS are not).
# - explicitly passing the installation prefix, not using DESTDIR.
ACL_MAKE_ENV = CFLAGS="$(TARGET_CFLAGS)"
ACL_INSTALL_STAGING_OPTS = \
prefix=$(STAGING_DIR)/usr \
exec_prefix=$(STAGING_DIR)/usr \
PKG_DEVLIB_DIR=$(STAGING_DIR)/usr/lib \
install-dev install-lib
ACL_INSTALL_TARGET_OPTS = \
prefix=$(TARGET_DIR)/usr \
exec_prefix=$(TARGET_DIR)/usr \
install install-lib
acl, attr: fix libdir variable in .la files The acl and attr packages are using autoconf and libtool, but not automake, which causes all sort of troubles. Some of them are already worked around in acl.mk and attr.mk, but there is another one: the libdir variable in the .la file remains empty, which causes libtool to sometimes be confused about where the acl and attr libraries are installed. This was causing build issues with libarchive, but interestingly only in situations where we had zlib *and* libxml2 also part of the build, which maybe affects how libtool in libarchive behaves since libarchive can use zlib and libxml2 as optional dependencies. So what this patch does is to mungle the libattr.la and libacl.la files to make sure they contain the right libdir values. Yocto is doing exactly the same thing. Upstream attr and acl have been converted fully to automake, so hopefully the upcoming upstream release will allow us to get rid of those hacks, but in the mean time, it seems to be the most appropriate solution. Here is a minimal defconfig that exhibits the problem, and which allows to show that this patch fixes it: BR2_bfin=y BR2_BINFMT_FLAT=y BR2_COMPILER_PARANOID_UNSAFE_PATH=y BR2_INIT_NONE=y BR2_PACKAGE_LIBARCHIVE=y BR2_PACKAGE_LIBARCHIVE_BSDCPIO=y BR2_PACKAGE_ZLIB=y BR2_PACKAGE_LIBXML2=y BR2_PACKAGE_ACL=y Fixes: http://autobuild.buildroot.org/results/e96/e96c8bec1039d9fe8c6c51fd48b6be0dc8be51d7/ (and many, many similar build failures) Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2015-05-16 14:54:26 +02:00
# The libdir variable in libacl.la is empty, so let's fix it. This is
# probably due to acl not using automake, and not doing fully the
# right thing with libtool.
define ACL_FIX_LIBTOOL_LA_LIBDIR
$(SED) "s,libdir=.*,libdir='$(STAGING_DIR)'," \
$(STAGING_DIR)/usr/lib/libacl.la
endef
ACL_POST_INSTALL_STAGING_HOOKS += ACL_FIX_LIBTOOL_LA_LIBDIR
HOST_ACL_DEPENDENCIES = host-attr
HOST_ACL_CONF_OPTS = --enable-gettext=no
HOST_ACL_MAKE_ENV = CFLAGS="$(HOST_CFLAGS)"
HOST_ACL_INSTALL_OPTS = \
prefix=$(HOST_DIR)/usr \
exec_prefix=$(HOST_DIR)/usr \
PKG_DEVLIB_DIR=$(HOST_DIR)/usr/lib \
install-dev install-lib
# For the host, libacl.la is correct, no fixup needed.
$(eval $(autotools-package))
$(eval $(host-autotools-package))