64544178f1
We correctly set LDCONFIG=true for MAKE_OPTS, but not for the other steps which don't inherit it, and therefore e2fsprogs tries to use the host ldconfig during staging and target installation, which causes some weird error messages at build time (even if they don't abort the build). Fix that by passing LDCONFIG=true at install time. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
161 lines
6.1 KiB
Makefile
161 lines
6.1 KiB
Makefile
################################################################################
|
|
#
|
|
# e2fsprogs
|
|
#
|
|
################################################################################
|
|
|
|
E2FSPROGS_VERSION = 1.43.3
|
|
E2FSPROGS_SOURCE = e2fsprogs-$(E2FSPROGS_VERSION).tar.xz
|
|
E2FSPROGS_SITE = $(BR2_KERNEL_MIRROR)/linux/kernel/people/tytso/e2fsprogs/v$(E2FSPROGS_VERSION)
|
|
E2FSPROGS_LICENSE = GPLv2, libuuid BSD-3c, libss and libet MIT-like with advertising clause
|
|
E2FSPROGS_LICENSE_FILES = NOTICE lib/uuid/COPYING lib/ss/mit-sipb-copyright.h lib/et/internal.h
|
|
E2FSPROGS_INSTALL_STAGING = YES
|
|
E2FSPROGS_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-libs
|
|
E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
|
|
# we don't have a host-util-linux
|
|
HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf
|
|
|
|
# e4defrag doesn't build on older systems like RHEL5.x, and we don't
|
|
# need it on the host anyway.
|
|
# Disable fuse2fs as well to avoid carrying over deps, and it's unused
|
|
HOST_E2FSPROGS_CONF_OPTS += --disable-defrag --disable-fuse2fs
|
|
|
|
E2FSPROGS_CONF_OPTS = \
|
|
$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
|
|
$(if $(BR2_PACKAGE_E2FSPROGS_DEBUGFS),,--disable-debugfs) \
|
|
$(if $(BR2_PACKAGE_E2FSPROGS_E2IMAGE),,--disable-imager) \
|
|
$(if $(BR2_PACKAGE_E2FSPROGS_E4DEFRAG),,--disable-defrag) \
|
|
$(if $(BR2_PACKAGE_E2FSPROGS_RESIZE2FS),,--disable-resizer) \
|
|
--disable-uuidd \
|
|
--disable-libblkid \
|
|
--disable-libuuid \
|
|
--enable-fsck \
|
|
--disable-e2initrd-helper \
|
|
--disable-testio-debug \
|
|
--disable-rpath
|
|
|
|
ifeq ($(BR2_PACKAGE_E2FSPROGS_FUSE2FS),y)
|
|
E2FSPROGS_CONF_OPTS += --enable-fuse2fs
|
|
E2FSPROGS_DEPENDENCIES += libfuse
|
|
else
|
|
E2FSPROGS_CONF_OPTS += --disable-fuse2fs
|
|
endif
|
|
|
|
ifeq ($(BR2_nios2),y)
|
|
E2FSPROGS_CONF_ENV += ac_cv_func_fallocate=no
|
|
endif
|
|
|
|
# Some programs are built for the host, but use definitions guessed by
|
|
# the configure script (i.e with the cross-compiler). Help them by
|
|
# saying that <sys/stat.h> is available on the host, which is needed
|
|
# for util/subst.c to build properly.
|
|
E2FSPROGS_CONF_ENV += BUILD_CFLAGS="-DHAVE_SYS_STAT_H"
|
|
|
|
# Disable use of the host magic.h, as on older hosts (e.g. RHEL 5)
|
|
# it doesn't provide definitions expected by e2fsprogs support lib.
|
|
HOST_E2FSPROGS_CONF_ENV += \
|
|
ac_cv_header_magic_h=no \
|
|
ac_cv_lib_magic_magic_file=no
|
|
|
|
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
|
|
# util-linux libuuid pulls in libintl if needed, so ensure we also
|
|
# link against it, otherwise static linking fails
|
|
E2FSPROGS_CONF_ENV += LIBS=-lintl
|
|
endif
|
|
|
|
E2FSPROGS_MAKE_OPTS = LDCONFIG=true
|
|
E2FSPROGS_INSTALL_STAGING_OPTS = LDCONFIG=true
|
|
E2FSPROGS_INSTALL_TARGET_OPTS = LDCONFIG=true
|
|
|
|
define HOST_E2FSPROGS_INSTALL_CMDS
|
|
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install install-libs
|
|
endef
|
|
|
|
# binaries to keep or remove
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS) += usr/sbin/badblocks
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_CHATTR) += usr/bin/chattr
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_DUMPE2FS) += usr/sbin/dumpe2fs
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FREEFRAG) += usr/sbin/e2freefrag
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FSCK) += usr/sbin/e2fsck
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2LABEL) += usr/sbin/e2label
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2UNDO) += usr/sbin/e2undo
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E4DEFRAG) += usr/sbin/e4defrag
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FILEFRAG) += usr/sbin/filefrag
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FSCK) += usr/sbin/fsck
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LOGSAVE) += usr/sbin/logsave
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LSATTR) += usr/bin/lsattr
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKE2FS) += usr/sbin/mke2fs
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND) += usr/sbin/mklost+found
|
|
E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_UUIDGEN) += usr/bin/uuidgen
|
|
|
|
# files to remove
|
|
E2FSPROGS_TXTTARGETS_ = \
|
|
usr/sbin/mkfs.ext[234] \
|
|
usr/sbin/mkfs.ext4dev \
|
|
usr/sbin/fsck.ext[234] \
|
|
usr/sbin/fsck.ext4dev \
|
|
usr/sbin/tune2fs
|
|
|
|
define E2FSPROGS_TARGET_REMOVE_UNNEEDED
|
|
rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_BINTARGETS_))
|
|
rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_TXTTARGETS_))
|
|
endef
|
|
|
|
E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_REMOVE_UNNEEDED
|
|
|
|
define E2FSPROGS_TARGET_MKE2FS_SYMLINKS
|
|
ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext2
|
|
ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext3
|
|
ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4
|
|
ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4dev
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_E2FSPROGS_MKE2FS),y)
|
|
E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_MKE2FS_SYMLINKS
|
|
endif
|
|
|
|
define E2FSPROGS_TARGET_E2FSCK_SYMLINKS
|
|
ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext2
|
|
ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext3
|
|
ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4
|
|
ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4dev
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_E2FSPROGS_E2FSCK),y)
|
|
E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_E2FSCK_SYMLINKS
|
|
endif
|
|
|
|
# If BusyBox is included, its configuration may supply its own variant
|
|
# of ext2-related tools. Since Buildroot desires having full blown
|
|
# variants take precedence (in this case, e2fsprogs), we want to remove
|
|
# BusyBox's variant of e2fsprogs provided binaries. e2fsprogs targets
|
|
# /usr/{bin,sbin} where BusyBox targets /{bin,sbin}. We will attempt to
|
|
# remove BusyBox-generated ext2-related tools from /{bin,sbin}. We need
|
|
# to do this in the pre-install stage to ensure we do not accidentally
|
|
# remove e2fsprogs's binaries in usr-merged environments (ie. if they
|
|
# are removed, they would be re-installed in this package's install
|
|
# stage).
|
|
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
|
|
E2FSPROGS_DEPENDENCIES += busybox
|
|
|
|
define E2FSPROGS_REMOVE_BUSYBOX_APPLETS
|
|
$(RM) -f $(TARGET_DIR)/bin/chattr
|
|
$(RM) -f $(TARGET_DIR)/bin/lsattr
|
|
$(RM) -f $(TARGET_DIR)/sbin/fsck
|
|
$(RM) -f $(TARGET_DIR)/sbin/tune2fs
|
|
$(RM) -f $(TARGET_DIR)/sbin/e2label
|
|
endef
|
|
E2FSPROGS_PRE_INSTALL_TARGET_HOOKS += E2FSPROGS_REMOVE_BUSYBOX_APPLETS
|
|
endif
|
|
|
|
define E2FSPROGS_TARGET_TUNE2FS_SYMLINK
|
|
ln -sf e2label $(TARGET_DIR)/usr/sbin/tune2fs
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_E2FSPROGS_TUNE2FS),y)
|
|
E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_TUNE2FS_SYMLINK
|
|
endif
|
|
|
|
$(eval $(autotools-package))
|
|
$(eval $(host-autotools-package))
|