Greetings, I have spent hours on a trivial problem that I still haven't figured out. I am using 9front, and I am building a C app using mk. I understand about that parallel stuff so I am calling mk with -s for now. There are actually three problems, but the fact that it won't build is clearly the first. Here are the facts: Problem 1: If I execute "mk -s", mk prints out what it is executing interspersed with messages from the command being executed. Somewhere in the middle I see: mk: ../../bin/dpp -g -t ... : status=rc 1357: dpp 1359: Exit code 1 Each time I run it, the two numbers (1357 & 1369) are different. This message is showing up in the middle of all of the commands getting executed. If I execute "mk -n" and manually execute each command the build succeeds. If I manually execute each command and append "; echo $status" to each command, no error code is ever displayed. Since I can build manually, and I get no error codes when I do so, I cannot figure out what the problem is. Problem 2: Even though I am executing mk with the "-s" option, it still seems like it is running in parallel because a subsequent command can't find a file created by a prior command - as if it didn't wait for the prior command to finish. Remember this build fine, and without error codes, when executed manually. Problem 3: Somehow Unix or GNU "make" doesn't mix up buffered stdout with unbuffered stderr output. They remain in order so the total out of make and all of the commands are shown in order and in context. You know, so a human can understand it. mk appears not to handle this the same. stdout output and stderr output are totally out of sequence making it very, very difficult to understand what is going on. ---- Here is my mkfile: