#! /bin/sh
dep=""
tmpdir=$1
shift
gmk="bindep.gmk"
gmk="$tmpdir/$gmk"
echo="echo -e"
if [ ! -d $tmpdir ]; then
  mkdir -p $tmpdir;
fi
if [ -e $gmk ]; then
  rm -f $gmk
fi
touch $gmk
for exe in $*; do

  $echo "# begin of dependencies for $exe" >> $gmk
  $echo "\$(CCD_BIN_DIR)/$exe: \$(CCD_TARGET_TMP_DIR)/$exe/exe/obj.last" >> $gmk
  $echo "\t@if [ ! -d \$(CCD_BIN_DIR) ]; then mkdir -p \$(CCD_BIN_DIR); fi" >> $gmk
  $echo "\t@\$(ECHO) Linking $exe using granular libraries ..." >> $gmk
  $echo "\t@\$(CXX) \$(CXXFLAGS) \$(CPPFLAGS) \$(OUT_EXE)\$(CCD_BIN_DIR)/$exe \$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.o \$(LDFLAGS) \$(LDLIBS)" >> $gmk

  $echo >> $gmk


  $echo "ifeq (\$(CCD_ONLY_EXE),0)" >> $gmk
  $echo "\$(CCD_TARGET_TMP_DIR)/$exe/exe/obj.last: lib \$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.o" >> $gmk
  $echo "else" >> $gmk
  $echo "\$(CCD_TARGET_TMP_DIR)/$exe/exe/obj.last: \$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.o" >> $gmk
  $echo "endif" >> $gmk
  $echo "\t@touch \$@" >> $gmk

  $echo >> $gmk

  $echo "\$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.o: $exe.cc" >> $gmk
  $echo "\t@\$(ECHO) Compiling $exe.cc ..." >> $gmk
  $echo "\t@\$(CXX) \$(CXXFLAGS) \$(CPPFLAGS) \$(APPFLAGS) -c \$(OUT_OBJ)\$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.o $exe.cc" >> $gmk

  $echo >> $gmk

  $echo "\$(CCD_TARGET_TMP_DIR)/$exe/exe/$exe.d: $exe.cc" >> $gmk
  $echo "\t@if [ ! -d \$(CCD_TARGET_TMP_DIR)/$exe/exe ]; then mkdir -p \$(CCD_TARGET_TMP_DIR)/$exe/exe; fi" >> $gmk
  $echo "\t@echo Making dependency for file \$< ..." >> $gmk
  echo -en "\t@(\$(ECHO) \$(CCD_TARGET_TMP_DIR)/exe/" >> $gmk
  echo -en "\\" >> $gmk
  echo -en "\\" >> $gmk
  $echo "c; g++ \$(GPPFLAGS) \$(CPPFLAGS) \$< ) | sed 's!\$(CCD_TARGET_TMP_DIR)/exe/\$*.o!& \$@!' > \$@" >> $gmk

  $echo "# end of dependencies for $exe" >> $gmk
  $echo >> $gmk
  $echo >> $gmk
done

exit 0
