Merge changes I2ba90314,I5f47307d

* changes:
  makeparallel: prepend flags to ninja command line
  Put NINJA_ARGS last
diff --git a/core/ninja.mk b/core/ninja.mk
index 6fc508d..81298e5 100644
--- a/core/ninja.mk
+++ b/core/ninja.mk
@@ -121,7 +121,7 @@
 .INTERMEDIATE: ninja.intermediate
 ninja.intermediate: $(KATI_OUTPUTS) $(MAKEPARALLEL)
 	@echo Starting build with ninja
-	+$(hide) PATH=prebuilts/ninja/$(HOST_PREBUILT_TAG)/:$$PATH NINJA_STATUS="$(NINJA_STATUS)" $(NINJA_MAKEPARALLEL) $(KATI_NINJA_SH) -C $(TOP) $(NINJA_ARGS) $(filter-out dist,$(ANDROID_TARGETS))
+	+$(hide) PATH=prebuilts/ninja/$(HOST_PREBUILT_TAG)/:$$PATH NINJA_STATUS="$(NINJA_STATUS)" $(NINJA_MAKEPARALLEL) $(KATI_NINJA_SH) $(filter-out dist,$(ANDROID_TARGETS)) -C $(TOP) $(NINJA_ARGS)
 else
 generateonly droid $(ANDROID_TARGETS) $(EXTRA_TARGETS): $(KATI_OUTPUTS)
 	@#empty
diff --git a/tools/makeparallel/Makefile b/tools/makeparallel/Makefile
index 4e79708..4e12b10 100644
--- a/tools/makeparallel/Makefile
+++ b/tools/makeparallel/Makefile
@@ -90,3 +90,5 @@
 	@EXPECTED="-j1"    $(MAKEPARALLEL_TEST) A=-j1234
 	@EXPECTED="-j1"    $(MAKEPARALLEL_TEST) A\ -j1234=-j1234
 	@EXPECTED="-j1234" $(MAKEPARALLEL_TEST) A\ -j1234=-j1234 -j1234
+
+	@EXPECTED="-j1234 args" ARGS="args" $(MAKEPARALLEL_TEST) -j1234
diff --git a/tools/makeparallel/Makefile.test b/tools/makeparallel/Makefile.test
index 91aacf7..cf53684 100644
--- a/tools/makeparallel/Makefile.test
+++ b/tools/makeparallel/Makefile.test
@@ -3,7 +3,7 @@
 .PHONY: test
 test:
 	@+echo MAKEFLAGS=$${MAKEFLAGS};              \
-	result=$$($(MAKEPARALLEL) echo);             \
+	result=$$($(MAKEPARALLEL) echo $(ARGS));     \
 	echo result: $${result};                     \
 	if [ "$${result}" = "$(EXPECTED)" ]; then    \
 	  echo SUCCESS && echo;                      \
diff --git a/tools/makeparallel/makeparallel.cpp b/tools/makeparallel/makeparallel.cpp
index 7dd0ceb..576fe8d 100644
--- a/tools/makeparallel/makeparallel.cpp
+++ b/tools/makeparallel/makeparallel.cpp
@@ -298,8 +298,12 @@
     argc--;
   }
 
+  if (argc < 2) {
+    error(EXIT_FAILURE, 0, "expected command to run");
+  }
+
   const char* path = argv[1];
-  std::vector<char*> args(&argv[1], &argv[argc]);
+  std::vector<char*> args({argv[1]});
 
   std::vector<std::string> makeflags = ReadMakeflags();
   if (ParseMakeflags(makeflags, &in_fd, &out_fd, &parallel, &keep_going)) {
@@ -328,6 +332,8 @@
     args.push_back(strdup(jarg.c_str()));
   }
 
+  args.insert(args.end(), &argv[2], &argv[argc]);
+
   args.push_back(nullptr);
 
   pid_t pid = fork();