title: How do you force a makefile to rebuild a target?
body: <p>I have a makefile that builds and then calls another makefile. Since this makefile calls more makefiles that does the work it doesn't really change. Thus it keeps thinking the project is built and up to date.</p>
  <pre><code>dnetdev11 ~ # make
  make: `release' is up to date.
  </code></pre>
  <p>How do I force the makefile to rebuild the target?</p>
  <pre><code>clean = $(MAKE) -f ~/xxx/xxx_compile.workspace.mak clean
  
  
  build = svn up ~/xxx                                                       \
          $(clean)                                                                \
          ~/cbp2mak/cbp2mak -C ~/xxx ~/xxx/xxx_compile.workspace        \
          $(MAKE) -f ~/xxx/xxx_compile.workspace.mak $(1)                    \
  
  
  release:
          $(build )
  
  debug:
          $(build DEBUG=1)
  
  clean:
          $(clean)
  
  install:
          cp ~/xxx/source/xxx_utility/release/xxx_util /usr/local/bin
          cp ~/xxx/source/xxx_utility/release/xxxcore.so /usr/local/lib
  </code></pre>
  <p>Note: Names removed to protect the innocent</p>
  <p>Final Fixed version:</p>
  <pre><code>clean = $(MAKE) -f xxx_compile.workspace.mak clean;
  
  
  build = svn up;                                         \
          $(clean)                                        \
          ./cbp2mak/cbp2mak -C . xxx_compile.workspace;   \
          $(MAKE) -f xxx_compile.workspace.mak    $(1);   \
  
  
  .PHONY: release debug clean install
  
  release:
          $(call build,)
  
  debug:
          $(call build,DEBUG=1)
  
  clean:
          $(clean)
  
  install:
          cp ./source/xxx_utillity/release/xxx_util /usr/bin
          cp ./dlls/Release/xxxcore.so /usr/lib
  </code></pre>