diff options
-rw-r--r-- | build.1 | 14 | ||||
-rw-r--r-- | build.c | 5 |
2 files changed, 16 insertions, 3 deletions
@@ -44,6 +44,16 @@ Build information is encoded in two ways: .Pp There can be multiple command lines, but only one dependency line. +.Pp +Unlike +.Xr make 1 , +.Nm +executes all command lines, +joined by newlines, +in the same shell process. +This means that you can keep state across multiple commands. +Note that all commands are executed +regardless of the exit status of previous commands. . .Sh EXAMPLES .Pp @@ -52,8 +62,8 @@ Assuming that the file starts with the following text, .Bd -literal -offset indent \&.\\" This document is built with the following shell commands: -\&.\\" $ refer -p refs doc.t | troff -ms | dpost > doc.ps -\&.\\" $ ps2pdf doc.ps > doc.pdf +\&.\\" $ refer -p refs doc.t | troff -ms | dpost > doc.ps && +\&.\\" $ ps2pdf doc.ps > doc.pdf && \&.\\" $ rm doc.ps \&. \&.\\" It depends on the following files: @@ -155,10 +155,13 @@ uptodate: build: /* run commands */ + buf[0] = 0; for (j = 0; j < icmd; j++) { fprintf(stderr, "%s: %s\n", argv[i], cmd[j]); - system(cmd[j]); + strncat(buf, cmd[j], sizeof(buf)-1); + strncat(buf, "\n", sizeof(buf)-1); } + system(buf); done: fclose(fp); |