--- uppsrc/ide/Builders/MakeFile.cpp +++ uppsrc/ide/Builders/MakeFile.cpp @@ -168,20 +168,24 @@ fn << "c"; } if(isc || isrc || iscpp || isicpp) { - String outfile; - outfile << makefile.outdir << AdjustMakePath(GetFileTitle(fn)) << (isrc ? "_rc" : "") << objext; + String outcommon, outfile, outdep; + outcommon << makefile.outdir << AdjustMakePath(GetFileTitle(fn)) << (isrc ? "_rc" : ""); + outfile << outcommon << objext; + outdep << outcommon << ".d"; String srcfile = GetMakePath(MakeSourcePath(src, fn, false, exporting)); + makefile.rules << "-include " << outdep << '\n'; makefile.rules << outfile << ": " << srcfile; - Vector dep = HdependGetDependencies(fn); + /*Vector dep = HdependGetDependencies(fn); Sort(dep, GetLanguageInfo()); for(int d = 0; d < dep.GetCount(); d++) { String dfn = MakeSourcePath(src, dep[d], true, exporting); if(!IsNull(dfn)) makefile.rules << " \\\n\t" << GetMakePath(dfn); - } + }*/ makefile.rules << "\n" "\t$(CXX) -c " << (isc ? "-x c $(CFLAGS)" : "-x c++ $(CXXFLAGS)") << " $(CINC) $(" << macros << ") " - << gop << " " << srcfile << " -o " << outfile << "\n\n"; + << gop << " " << srcfile << " -o " << outfile + << " \\\n\t-MMD -MT '$" << outfile << "' -MF " << outdep << "\n\n"; if(!libout || isicpp) { makefile.linkdep << " \\\n\t" << outfile; makefile.linkfiles << " \\\n\t\t" << outfile;