buildroot/package/dosfstools/dosfstools.mk
Markus Mayer 4cc31dfa3d package/dosfstools: introduce custom install routine
We can't use dosfstools' install target, because it'll install *all*
binaries, even the disabled ones. Also, we can't just delete dosfstools
binaries from the target directory after installing them, because other
packages (specifically Busybox) may provide tools of the same name, and
we may end up deleting those instead.

To avoid any issues, we create our own install routines, which only
copy the enabled binaries into the target location.

Signed-off-by: Markus Mayer <mmayer@broadcom.com>
[Thomas: use full destination path for INSTALL commands.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-05-31 22:00:49 +02:00

60 lines
1.8 KiB
Makefile

################################################################################
#
# dosfstools
#
################################################################################
DOSFSTOOLS_VERSION = 4.1
DOSFSTOOLS_SOURCE = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz
DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION)
DOSFSTOOLS_LICENSE = GPL-3.0+
DOSFSTOOLS_LICENSE_FILES = COPYING
DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks --exec-prefix=/
HOST_DOSFSTOOLS_CONF_OPTS = --enable-compat-symlinks
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
DOSFSTOOLS_CONF_OPTS += --with-udev
DOSFSTOOLS_DEPENDENCIES += udev
else
DOSFSTOOLS_CONF_OPTS += --without-udev
endif
ifneq ($(BR2_ENABLE_LOCALE),y)
DOSFSTOOLS_CONF_OPTS += LIBS="-liconv"
DOSFSTOOLS_DEPENDENCIES += libiconv
endif
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FATLABEL),y)
define DOSFSTOOLS_INSTALL_FATLABEL
$(INSTALL) -D -m 0755 $(@D)/src/fatlabel $(TARGET_DIR)/sbin/fatlabel
ln -sf fatlabel $(TARGET_DIR)/sbin/dosfslabel
endef
endif
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_FSCK_FAT),y)
define DOSFSTOOLS_INSTALL_FSCK_FAT
$(INSTALL) -D -m 0755 $(@D)/src/fsck.fat $(TARGET_DIR)/sbin/fsck.fat
ln -sf fsck.fat $(TARGET_DIR)/sbin/fsck.vfat
ln -sf fsck.fat $(TARGET_DIR)/sbin/fsck.msdos
ln -sf fsck.fat $(TARGET_DIR)/sbin/dosfsck
endef
endif
ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKFS_FAT),y)
define DOSFSTOOLS_INSTALL_MKFS_FAT
$(INSTALL) -D -m 0755 $(@D)/src/mkfs.fat $(TARGET_DIR)/sbin/mkfs.fat
ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkdosfs
ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkfs.msdos
ln -sf mkfs.fat $(TARGET_DIR)/sbin/mkfs.vfat
endef
endif
define DOSFSTOOLS_INSTALL_TARGET_CMDS
$(call DOSFSTOOLS_INSTALL_FATLABEL)
$(call DOSFSTOOLS_INSTALL_FSCK_FAT)
$(call DOSFSTOOLS_INSTALL_MKFS_FAT)
endef
$(eval $(autotools-package))
$(eval $(host-autotools-package))