From 204499e92663b478405aa68e3ed210532feec290 Mon Sep 17 00:00:00 2001 From: Tom Smeding 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(-) 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-54-g00ecf