kumquat-buildroot/package/dosfstools/dosfstools.mk
Thomas Petazzoni e83529882b dosfstools: make sure install targets aren't run everytime
Adding real targets to $(TARGETS) doesn't work, since they are
prefixed __real_tgt by the main Makefile. 'make' then always thinks
that these targets aren't up-to-date, and re-generate them every time.

Therefore, we switch dosfstools to the more common way of handling
packages, with a phony target added to $(TARGETS), this phony target
depending on real targets.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-02-23 20:34:55 +01:00

79 lines
2.5 KiB
Makefile

#############################################################
#
# 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
echo foo
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