title: target is not called even after updating dependency
body: <p>In the following code, I expect when <code>app/outputs.list</code> is updates, the related scripts run and when when it is not touched from the last make, the scripts are not called. At the end, the compiler must be called.</p>
  
  <p>However, even if I edit the <code>app/outputs.list</code>, the scripts are not called in any way. Where did I make mistake?</p>
  
  <p>Makefile:</p>
  
  <pre><code>SOURCES := main.cpp
  OUTDIR:= ./out
  BINDIR:= ./bin
  OBJDIR:= ./bin/obj
  OBJECTS := $(addprefix $(OBJDIR)/,$(SOURCES:.cpp=.o))
  DEPFILES:= $(OBJECTS:.o=.d)
  VARLISTS:= app/outputs.list
  
  CXX := g++
  CXXFLAGS := -c -g -MD -MP
  LIBS:= -lboost_filesystem -lboost_system 
  
  .PHONY: all
  
  # default
  all: $(VARLISTS) $(BINDIR)/sim
      @echo "done"
  
  app/outputs.list:
      bash ./scripts/outputs.bash
      bash ./scripts/sim_outputs.bash
  
  $(BINDIR)/sim: $(OBJECTS)
      $(CXX) $(LDFLAGS) $^ -o $@ $(LIBS)
  
  $(OBJDIR)/%.o: %.cpp
      @if [ ! -d "$(OBJDIR)" ]; then mkdir -p $(OBJDIR) &amp;&amp; echo "$(OBJDIR) directory created: $(OBJDIR)";  fi
      $(CXX) $(CXXFLAGS) -MF $(OBJDIR)/$*.d -o $@  $&lt;
  
  -include $(DEPFILES)
  </code></pre>
  
  <p>This is the output:</p>
  
  <pre><code>$ make
  ./bin/obj directory created: ./bin/obj
  g++ -c -g -MD -MP -MF ./bin/obj/main.d -o bin/obj/main.o  main.cpp
  g++  bin/obj/main.o -o bin/sim -lboost_filesystem -lboost_system 
  done
  </code></pre>
  
  <p>However the scripts have an <code>echo</code> to prove they have been called:</p>
  
  <pre><code>#!/bin/bash
  
  echo "outputs called"
  </code></pre>
  
  <p>Seems they are not called.</p>
  
  <p>The <code>app/outputs.list</code> file contains a list of variables and the scripts are supposed to generate appropriate arrays in an auto-generated <code>.hpp</code> file. </p>