Declare some Makefile targets to be PHONY
authorThomas Miedema <thomasmiedema@gmail.com>
Mon, 23 Feb 2015 09:40:34 +0000 (03:40 -0600)
committerAustin Seipp <austin@well-typed.com>
Mon, 23 Feb 2015 09:40:34 +0000 (03:40 -0600)
Summary:
Given:
  a Makefile with a non-PHONY target called `target`
If:
  after running `make target`, a file exists with the same name as `target`
  (it was either already there, or it was created by running `make target`)
And:
  `target` has no dependencies, such as `clean`, that modify or delete that
  file
Then:
  subsequent invocations of `make target` will not have any effect.

Solution: make `target` PHONY.

BAD:
  ```
  foo:
          ...
          ./foo
  ```

BETTER:
  ```
  foo:
          ...
          ./foo
  .PHONY: foo
  ```

Reviewers: austin

Reviewed By: austin

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D670

testsuite/tests/driver/recomp014/Makefile
testsuite/tests/ghc-api/T7478/Makefile
testsuite/tests/ghc-api/annotations-literals/Makefile
testsuite/tests/ghc-api/annotations/Makefile
testsuite/tests/ghc-api/landmines/Makefile
testsuite/tests/ghc-api/show-srcspan/Makefile

index 58c6f2a..8bd9735 100644 (file)
@@ -25,3 +25,5 @@ recomp014: clean
        '$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) -c C.hs
        '$(TEST_HC)' $(TEST_HC_OPTS_NO_RECOMP) A1.o C.o -o recomp014
        ./recomp014
+
+.PHONY: clean recomp014
index 1afb16d..6214051 100644 (file)
@@ -9,3 +9,4 @@ T7478: clean
        '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 -package ghc T7478.hs
        ./T7478 "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`"
 
+.PHONY: clean T7478
index 875d063..5b06030 100644 (file)
@@ -15,4 +15,4 @@ parsed:
        '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 -package ghc parsed
        ./parsed "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`"
 
-.PHONY: clean
+.PHONY: clean literals parsed
index 61474e9..f5ef3b4 100644 (file)
@@ -26,4 +26,4 @@ exampleTest:
        '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 -package ghc exampleTest
        ./exampleTest "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`"
 
-.PHONY: clean
+.PHONY: clean annotations parseTree comments exampleTest
index 3197647..c727b95 100644 (file)
@@ -10,4 +10,4 @@ landmines: clean
        ./landmines "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`"
 
 
-.PHONY: clean
+.PHONY: clean landmines
index e467b61..8adcaa4 100644 (file)
@@ -10,4 +10,4 @@ showsrcspan: clean
        ./showsrcspan "`'$(TEST_HC)' $(TEST_HC_OPTS) --print-libdir | tr -d '\r'`"
 
 
-.PHONY: clean
+.PHONY: clean showsrcspan