dosfstools: make sure install targets aren't run everytime
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 21 Feb 2010 14:50:18 +0000 (15:50 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 23 Feb 2010 19:34:55 +0000 (20:34 +0100)
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>
package/dosfstools/dosfstools.mk

index e1e9fe34e336f6be4ac58d0da2e6c435a1356232..b826ab183d11cbaf38c05ca57a77102fecb59511 100644 (file)
@@ -32,7 +32,8 @@ $(DOSFSTOOLS_DIR)/.built : $(DOSFSTOOLS_DIR)/.unpacked
        $(STRIPCMD) $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY)
        touch $@
 
-$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
+$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY): # $(DOSFSTOOLS_DIR)/.built
+       echo foo
        cp -a $(DOSFSTOOLS_DIR)/$(MKDOSFS_BINARY) $@
        touch -c $@
 
@@ -44,7 +45,20 @@ $(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY): $(DOSFSTOOLS_DIR)/.built
        cp -a $(DOSFSTOOLS_DIR)/$(DOSFSLABEL_BINARY) $@
        touch -c $@
 
-dosfstools: $(TARGET_DIR)/$(DOSFSTOOLS_TARGET_BINARY) $(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
+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)
@@ -60,14 +74,6 @@ dosfstools-dirclean:
 # Toplevel Makefile options
 #
 #############################################################
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_MKDOSFS),y)
-TARGETS+=$(TARGET_DIR)/$(MKDOSFS_TARGET_BINARY)
-endif
-
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSCK),y)
-TARGETS+=$(TARGET_DIR)/$(DOSFSCK_TARGET_BINARY)
-endif
-
-ifeq ($(BR2_PACKAGE_DOSFSTOOLS_DOSFSLABEL),y)
-TARGETS+=$(TARGET_DIR)/$(DOSFSLABEL_TARGET_BINARY)
-endif
+ifeq ($(BR2_PACKAGE_DOSFSTOOLS),y)
+TARGETS+=dosfstools
+endif
\ No newline at end of file