summaryrefslogtreecommitdiffstats
path: root/package/dosfstools
diff options
context:
space:
mode:
Diffstat (limited to 'package/dosfstools')
-rw-r--r--package/dosfstools/Config.in4
-rw-r--r--package/dosfstools/dosfstools.mk105
2 files changed, 36 insertions, 73 deletions
diff --git a/package/dosfstools/Config.in b/package/dosfstools/Config.in
index 4906fff86..1b9202699 100644
--- a/package/dosfstools/Config.in
+++ b/package/dosfstools/Config.in
@@ -1,5 +1,6 @@
config BR2_PACKAGE_DOSFSTOOLS
bool "dosfstools"
+ depends on BR2_LARGEFILE
help
Tools for creating and checking DOS FAT filesystems.
@@ -22,3 +23,6 @@ config BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL
depends on BR2_PACKAGE_DOSFSTOOLS
help
Get or set the DOS FAT filesystem label.
+
+comment "dosfstools requires a toolchain with LARGEFILE support"
+ depends on !BR2_LARGEFILE
diff --git a/package/dosfstools/dosfstools.mk b/package/dosfstools/dosfstools.mk
index a7f59f0cb..8e6cfc96e 100644
--- a/package/dosfstools/dosfstools.mk
+++ b/package/dosfstools/dosfstools.mk
@@ -3,76 +3,35 @@
# dosfstools
#
#############################################################
-DOSFSTOOLS_VERSION:=3.0.3
-DOSFSTOOLS_SOURCE:=dosfstools-$(DOSFSTOOLS_VERSION).tar.gz
-DOSFSTOOLS_SITE:=http://www.daniel-baumann.ch/software/dosfstools
-DOSFSTOOLS_DIR:=$(BUILD_DIR)/dosfstools-$(DOSFSTOOLS_VERSION)
-DOSFSTOOLS_CAT:=$(ZCAT)
-MKDOSFS_BINARY:=mkdosfs
-MKDOSFS_TARGET_BINARY:=sbin/mkdosfs
-DOSFSCK_BINARY:=dosfsck
-DOSFSCK_TARGET_BINARY:=sbin/dosfsck
-DOSFSLABEL_BINARY:=dosfslabel
-DOSFSLABEL_TARGET_BINARY:=sbin/dosfslabel
-
-$(DL_DIR)/$(DOSFSTOOLS_SOURCE):
- $(call DOWNLOAD,$(DOSFSTOOLS_SITE),$(DOSFSTOOLS_SOURCE))
-
-dosfstools-source: $(DL_DIR)/$(DOSFSTOOLS_SOURCE)
-
-$(DOSFSTOOLS_DIR)/.unpacked: $(DL_DIR)/$(DOSFSTOOLS_SOURCE) $(wildcard local/dosfstools/dosfstools*.patch)
- $(DOSFSTOOLS_CAT) $(DL_DIR)/$(DOSFSTOOLS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(DOSFSTOOLS_DIR) package/dosfstools/ dosfstools\*.patch
- touch $(DOSFSTOOLS_DIR)/.unpacked
-
-$(DOSFSTOOLS_DIR)/.built : $(DOSFSTOOLS_DIR)/.unpacked
- $(MAKE) CFLAGS="$(TARGET_CFLAGS)" CC="$(TARGET_CC)" -C $(DOSFSTOOLS_DIR)
- $(STRIPCMD) $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY)
- $(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSCK_BINARY)
- $(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY)
- touch $@
-
-$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
- cp -a $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY) $@
- touch -c $@
-
-$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
- cp -a $(DOSFSTOOLS_DIR)/$(DOSFSCK_BINARY) $@
- touch -c $@
-
-$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
- cp -a $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY) $@
- touch -c $@
-
-DOSFSTOOLS=
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS),y)
-DOSFSTOOLS+=$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
-endif
-
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK),y)
-DOSFSTOOLS+=$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
-endif
-
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL),y)
-DOSFSTOOLS+=$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY)
-endif
-
-dosfstools: $(DOSFSTOOLS)
-
-dosfstools-clean:
- rm -f $(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
- rm -f $(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
- rm -f $(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY)
- -$(MAKE) -C $(DOSFSTOOLS_DIR) clean
-
-dosfstools-dirclean:
- rm -rf $(DOSFSTOOLS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS),y)
-TARGETS+=dosfstools
-endif \ No newline at end of file
+DOSFSTOOLS_VERSION = 3.0.10
+DOSFSTOOLS_SOURCE = dosfstools-$(DOSFSTOOLS_VERSION).tar.gz
+DOSFSTOOLS_SITE = http://www.daniel-baumann.ch/software/dosfstools
+MKDOSFS_BINARY = mkdosfs
+DOSFSCK_BINARY = dosfsck
+DOSFSLABEL_BINARY = dosfslabel
+
+define DOSFSTOOLS_BUILD_CMDS
+ $(MAKE) CFLAGS="$(TARGET_CFLAGS)" LDFLAGS="$(TARGET_LDFLAGS)" \
+ CC="$(TARGET_CC)" -C $(@D)
+endef
+
+DOSFSTOOLS_INSTALL_BIN_FILES_$(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS)+=$(MKDOSFS_BINARY)
+DOSFSTOOLS_INSTALL_BIN_FILES_$(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK)+=$(DOSFSCK_BINARY)
+DOSFSTOOLS_INSTALL_BIN_FILES_$(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL)+=$(DOSFSLABEL_BINARY)
+
+define DOSFSTOOLS_INSTALL_TARGET_CMDS
+ test -z "$(DOSFSTOOLS_INSTALL_BIN_FILES_y)" || \
+ install -m 755 $(addprefix $(@D)/,$(DOSFSTOOLS_INSTALL_BIN_FILES_y)) $(TARGET_DIR)/sbin/
+endef
+
+define DOSFSTOOLS_UNINSTALL_TARGET_CMDS
+ rm -f $(TARGET_DIR)/sbin/$(MKDOSFS_BINARY)
+ rm -f $(TARGET_DIR)/sbin/$(DOSFSCK_BINARY)
+ rm -f $(TARGET_DIR)/sbin/$(DOSFSLABEL_BINARY)
+endef
+
+define DOSFSTOOLS_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
+
+$(eval $(call GENTARGETS,package,dosfstools))