Makefile: make $(BUILD_DIR)/.root rule idempotent
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 15 Sep 2013 19:28:45 +0000 (21:28 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Sun, 15 Sep 2013 19:46:53 +0000 (21:46 +0200)
The $(BUILD_DIR)/.root rule is executed as part of the 'dirs'
target. The 'dirs' target is re-executed at every execution of 'make
external-deps', and make external-deps explicitly tells make to ignore
targets that have already been made (through the -B option). This
means that the $(BUILD_DIR)/.root rule has to be idempotant, which was
not the case this the introduction of the lib32/lib64 symbolic link.

Running 'make external-deps' three times in a row was sufficient to
trigger an error due to symbolic links being incorrectly created. This
patch fixes that.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Makefile

index 861059284b84cd1a0b4f091d7471a91c4f2919f3..2163e95a52e1c0405d32958249d91a281e6214dd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -448,9 +448,9 @@ $(BUILD_DIR)/.root:
                --exclude .hg --exclude=CVS --exclude '*~' \
                $(TARGET_SKELETON)/ $(TARGET_DIR)/
        cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
-       @ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
+       @ln -snf lib $(TARGET_DIR)/$(LIB_SYMLINK)
        @mkdir -p $(TARGET_DIR)/usr
-       @ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
+       @ln -snf lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
        touch $@
 
 $(TARGET_DIR): $(BUILD_DIR)/.root