aboutsummaryrefslogtreecommitdiff
path: root/src/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/makefile')
-rw-r--r--src/makefile/input.rs5
-rw-r--r--src/makefile/mod.rs7
-rw-r--r--src/makefile/target.rs11
3 files changed, 23 insertions, 0 deletions
diff --git a/src/makefile/input.rs b/src/makefile/input.rs
index d6f6254..6ee5392 100644
--- a/src/makefile/input.rs
+++ b/src/makefile/input.rs
@@ -413,6 +413,11 @@ impl<'a, 'parent, R: BufRead> MakefileReader<'a, 'parent, R> {
inference_match.name("s2").unwrap().as_str().to_owned(),
commands,
);
+ log::trace!(
+ "suffix-based inference rule defined by {:?} - {:?}",
+ &inference_match,
+ &new_rule,
+ );
self.inference_rules.retain(|existing_rule| {
(&existing_rule.prerequisites, &existing_rule.products)
diff --git a/src/makefile/mod.rs b/src/makefile/mod.rs
index e13ecff..0f8cfd2 100644
--- a/src/makefile/mod.rs
+++ b/src/makefile/mod.rs
@@ -153,9 +153,16 @@ impl<'a> Makefile<'a> {
.chain(self.builtin_inference_rules.iter())
.filter(|rule| rule.matches(name).unwrap_or(false));
for rule in inference_rule_candidates {
+ log::trace!(
+ "{:>58} considering rule to build {:?} from {:?}",
+ name,
+ &rule.products,
+ &rule.prerequisites
+ );
// whose prerequisite file ($*.s2) exists.
let prereq_paths = rule
.prereqs(name)?
+ .inspect(|x| log::trace!("{:>58} prereq {}", name, x))
.map(|prereq_path_name| {
if name == prereq_path_name {
// we can't build this based on itself! fuck outta here
diff --git a/src/makefile/target.rs b/src/makefile/target.rs
index ad46884..1c382d0 100644
--- a/src/makefile/target.rs
+++ b/src/makefile/target.rs
@@ -53,6 +53,12 @@ impl Target {
.and_then(|t| self.newer_than(&t.borrow()))
.unwrap_or(false)
});
+ log::trace!(
+ "{:>50} exists: {}, newer than dependencies: {}",
+ self.name,
+ exists,
+ newer_than_all_dependencies
+ );
exists && newer_than_all_dependencies
}
@@ -62,6 +68,10 @@ impl Target {
.wrap_err_with(|| format!("as a dependency for target {}", self.name))?;
}
if !self.is_up_to_date(file) {
+ log::debug!("rebuilding {}...", self.name);
+ if self.commands.is_empty() {
+ log::warn!("no commands found to rebuild {}", self.name);
+ }
self.execute_commands(file)
.wrap_err_with(|| format!("while updating target {}", self.name))?;
}
@@ -72,6 +82,7 @@ impl Target {
fn execute_commands(&self, file: &Makefile) -> Result<()> {
for command in &self.commands {
+ log::trace!(" executing {}", command);
command.execute(file, self)?;
}