aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-19 16:59:13 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-06-22 15:46:24 +0900
commit861bd64b71cbe63f177445410e1f2254e1b79bb0 (patch)
tree1647185bb1560f118a9ceb196ff7cce41fabdd60
parent66bd7bc688aa0b79c1d3128852007e4c57eddb42 (diff)
downloadandroid_build_kati-861bd64b71cbe63f177445410e1f2254e1b79bb0.tar.gz
android_build_kati-861bd64b71cbe63f177445410e1f2254e1b79bb0.tar.bz2
android_build_kati-861bd64b71cbe63f177445410e1f2254e1b79bb0.zip
[C++] Make err_include.mk pass
-rw-r--r--eval.cc7
-rw-r--r--parser.cc2
-rwxr-xr-xruntest.rb2
3 files changed, 8 insertions, 3 deletions
diff --git a/eval.cc b/eval.cc
index 28d4e16..511a606 100644
--- a/eval.cc
+++ b/eval.cc
@@ -1,6 +1,8 @@
#include "eval.h"
+#include <errno.h>
#include <glob.h>
+#include <string.h>
#include "ast.h"
#include "file.h"
@@ -150,8 +152,9 @@ void Evaluator::DoInclude(const char* fname, bool should_exist) {
if (!mk->Exists()) {
if (should_exist) {
Error(StringPrintf(
- "Cannot read %s\n"
- "NOTE: kati does not support generating missing makefiles", fname));
+ "%s: %s\n"
+ "NOTE: kati does not support generating missing makefiles",
+ fname, strerror(errno)));
}
return;
}
diff --git a/parser.cc b/parser.cc
index 457e357..d185b51 100644
--- a/parser.cc
+++ b/parser.cc
@@ -134,6 +134,7 @@ class Parser {
if (line[0] == '\t' && state_ != ParserState::NOT_AFTER_RULE) {
CommandAST* ast = new CommandAST();
+ ast->set_loc(loc_);
ast->expr = ParseExpr(line.substr(1), ParseExprOpt::COMMAND);
out_asts_->push_back(ast);
return;
@@ -204,6 +205,7 @@ class Parser {
void ParseInclude(StringPiece line, StringPiece directive) {
IncludeAST* ast = new IncludeAST();
+ ast->set_loc(loc_);
ast->expr = ParseExpr(line);
ast->should_exist = directive[0] == 'i';
out_asts_->push_back(ast);
diff --git a/runtest.rb b/runtest.rb
index e3f4e6c..d0667fb 100755
--- a/runtest.rb
+++ b/runtest.rb
@@ -103,7 +103,7 @@ def normalize_kati_log(output)
# kati specific log messages.
output.gsub!(/^\*kati\*.*\n/, '')
output.gsub!(/[`'"]/, '"')
- output.gsub!(/(: )open (\S+): n(o such file or directory)\nNOTE:.*/,
+ output.gsub!(/(: )(?:open )?(\S+): [Nn](o such file or directory)\nNOTE:.*/,
"\\1\\2: N\\3\n*** No rule to make target \"\\2\".")
output
end