Don't run hake twice for 'make rehake'
authorDavid Cock <david.cock@inf.ethz.ch>
Mon, 31 Aug 2015 08:55:33 +0000 (10:55 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Mon, 31 Aug 2015 08:55:33 +0000 (10:55 +0200)
Signed-off-by: David Cock <david.cock@inf.ethz.ch>

hake/Main.hs
hake/symbolic_targets.mk

index 1304aac..c0a5a15 100644 (file)
@@ -619,7 +619,9 @@ stripSlash cs = cs
 -- Emit the rule to rebuild the Hakefile.
 makeHakeDeps :: Handle -> Opts -> [String] -> IO ()
 makeHakeDeps h o l = do
+    hPutStrLn h "ifneq ($(MAKECMDGOALS),rehake)"
     makefileRule h rule
+    hPutStrLn h "endif"
     hPutStrLn h ".DELETE_ON_ERROR:\n" -- this applies to following targets.
     where
         hake = resolveTokenPath o "" (In InstallTree "root" "/hake/hake")
index 47bf723..0489d3f 100644 (file)
@@ -411,7 +411,8 @@ TAGS: cscope.files
 
 # force rebuild of the Makefile
 rehake: ./hake/hake
-       ./hake/hake --source-dir $(SRCDIR)
+       ./hake/hake --source-dir $(SRCDIR) --install-dir . \
+                   --output-filename Makefile
 .PHONY: rehake
 
 clean::