void FileTarget::check_rebuild()
{
- if(!tool)
+ if(!tool || needs_rebuild())
return;
if(!mtime)
if(!needs_rebuild())
{
+ // Some side effects might not exist
for(Dependencies::iterator i=side_effects.begin(); (i!=side_effects.end() && !needs_rebuild()); ++i)
- {
- FileTarget *ft = dynamic_cast<FileTarget *>(*i);
- if(ft && !ft->get_mtime())
- mark_rebuild((*i)->get_name()+" does not exist");
- }
+ if((*i)->needs_rebuild())
+ mark_rebuild((*i)->get_name()+" needs rebuilding");
}
if(!needs_rebuild() && package)