From 68cd2dc506e7440baf1fa5467b84212a8a6a4913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Sun, 11 Jul 2021 13:11:53 +0200 Subject: Support "-o " targets --- build.1 | 16 +++++++--------- build.c | 11 +++++++---- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/build.1 b/build.1 index 10ae999..63e46e7 100644 --- a/build.1 +++ b/build.1 @@ -55,8 +55,9 @@ searches for a .Em target : .Bl -tag -width indent .It target -.br ">" +.br +"-o " .El .Pp The last target found will be counted @@ -89,7 +90,7 @@ starts with the following text, .Bd -literal -offset indent /** * To build this program, use the following invocation: - * $ cc -O2 -o prg prg.c # > prg + * $ cc -O2 -o prg prg.c */ .Ed .Pp @@ -99,19 +100,16 @@ $ build prg.c .Ed .Pp will build -.Pa prg . -(Because -.Xr cc 1 -does not print the built file on standard output, -a commented -.Ql > prg -is necessary to set the target correctly. +.Pa prg , +if it is older than +.Pa prg.c . .Pp Assuming that the file .Pa doc.t starts with the following text, .Bd -literal -offset indent \&.\\" This document is built with the following shell commands: +\&.\\" $ export LC_ALL=en_US.UTF-8 \&.\\" $ refer -p refs doc.t | troff -ms | dpost > doc.ps \&.\\" $ ps2pdf doc.ps > doc.pdf \&.\\" $ rm doc.ps diff --git a/build.c b/build.c index 16b53e2..267f674 100644 --- a/build.c +++ b/build.c @@ -100,10 +100,13 @@ main(int argc, char *argv[]) /* Find target inside command. */ for(b = b+3; *b; b++){ - if(!(*b+1)) continue; - if(*b != '>') continue; - strncpy(tgt, b+1, MAXTGT-1); - + if(*(b+1) && *(b+2) && *(b+3) + && strncmp(b, "-o ", 3) == 0) + strncpy(tgt, b+3, + MAXTGT-1); + else if(*(b+1) && *b == '>') + strncpy(tgt, b+1, + MAXTGT-1); } ddd("%s: command line '%s'\n", -- cgit v1.2.3