GetOpt getopt;
getopt.add_option('a', "analyze", analyze_mode, GetOpt::REQUIRED_ARG).set_help("Perform dependency analysis.", "MODE");
- getopt.add_option('b', "build", build, GetOpt::NO_ARG).set_help("Perform build even if doing analysis.");
+ getopt.add_option('b', "build", build, GetOpt::NO_ARG).set_help("Perform build even if also doing something else.");
getopt.add_option('c', "clean", clean, GetOpt::NO_ARG).set_help("Clean buildable targets.");
getopt.add_option('f', "file", build_file, GetOpt::REQUIRED_ARG).set_help("Read build instructions from FILE.", "FILE");
getopt.add_option('h', "help", help, GetOpt::NO_ARG).set_help("Print this message.");
if(clean)
exit_code = do_clean();
- else if(build)
+ if(build)
exit_code = do_build();
return exit_code;
}
for(set<Target *>::iterator i=clean_tgts.begin(); i!=clean_tgts.end(); ++i)
- if(FileTarget *ft = dynamic_cast<FileTarget *>(*i))
- if(ft->get_mtime())
- FS::unlink(ft->get_path());
+ {
+ logger.log("tasks", format("RM %s", (*i)->get_name()));
+ if(!dry_run)
+ (*i)->clean();
+ }
return 0;
}