From 204499e92663b478405aa68e3ed210532feec290 Mon Sep 17 00:00:00 2001
From: Tom Smeding <tom.smeding@gmail.com>
Date: Tue, 8 Dec 2020 21:03:10 +0100
Subject: Less intrusive Makefile dependency tracking

---
 2020/Makefile | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

(limited to '2020')

diff --git a/2020/Makefile b/2020/Makefile
index 340e2ce..ff844f6 100644
--- a/2020/Makefile
+++ b/2020/Makefile
@@ -15,7 +15,7 @@ CPP_BIN     := $(CPP_SRC:.cpp=)
 
 BINARIES := $(HASKELL_BIN) $(CPP_BIN)
 
-.PHONY: all clean
+.PHONY: all clean depend
 
 
 all: $(BINARIES)
@@ -24,6 +24,12 @@ clean:
 	rm -f $(BINARIES) .depend_hs
 	rm -rf $(OBJDIR)
 
+# Generate the .depend_hs file for correct Haskell dependency tracking
+depend:
+	ghc -dep-suffix '' -dep-makefile .depend_hs -M $(GHCBASEFLAGS) $(HASKELL_SRC)
+	sed -i 's/\.o *:/:/; s/\.hi$$/.hs/g; s/\.hi[ \t]/.hs/g' .depend_hs
+	rm -f .depend_hs.bak
+
 $(HASKELL_BIN): %: %.hs | $(OBJDIR)/%
 	$(GHC) $(GHCFLAGS) -odir $(OBJDIR)/$* -hidir $(OBJDIR)/$* -o $@ $<
 
@@ -34,9 +40,8 @@ $(OBJDIR)/%:
 	mkdir -p $@
 
 
-.depend_hs: $(HASKELL_SRC) $(HASKELL_AUX)
-	ghc -dep-suffix '' -dep-makefile $@ -M $(GHCBASEFLAGS) $(HASKELL_SRC)
-	rm -f .depend_hs.bak
-	sed -i 's/\.o *:/:/; s/\.hi$$/.hs/g; s/\.hi[ \t]/.hs/g' $@
+# By default, if it's needed, just create an empty file (but don't truncate if it exists)
+.depend_hs:
+	touch $@
 
 -include .depend_hs
-- 
cgit v1.2.3-70-g09d2