Module Name: src Committed By: jmmv Date: Sun Aug 26 22:37:19 UTC 2012
Modified Files: src/doc: CHANGES src/tests/usr.bin/mkdep: t_mkdep.sh src/tools/host-mkdep: host-mkdep.in src/usr.bin/mkdep: mkdep.1 mkdep.c Log Message: Add a new "-P prefix" option to mkdep(1). This option prepends the string given in prefix to every target filename. This is useful for programs that have source files in multiple subdirectories and a single Makefile that references all of them explicitly (without using the VPATH functionality because there can be files with the same name in each subdirectory). To generate a diff of this commit: cvs rdiff -u -r1.1738 -r1.1739 src/doc/CHANGES cvs rdiff -u -r1.3 -r1.4 src/tests/usr.bin/mkdep/t_mkdep.sh cvs rdiff -u -r1.20 -r1.21 src/tools/host-mkdep/host-mkdep.in cvs rdiff -u -r1.16 -r1.17 src/usr.bin/mkdep/mkdep.1 cvs rdiff -u -r1.40 -r1.41 src/usr.bin/mkdep/mkdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/doc/CHANGES diff -u src/doc/CHANGES:1.1738 src/doc/CHANGES:1.1739 --- src/doc/CHANGES:1.1738 Sun Aug 26 12:30:33 2012 +++ src/doc/CHANGES Sun Aug 26 22:37:19 2012 @@ -1,4 +1,4 @@ -# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.1738 $> +# LIST OF CHANGES FROM LAST RELEASE: <$Revision: 1.1739 $> # # # [Note: This file does not mention every change made to the NetBSD source tree. @@ -106,3 +106,4 @@ Changes from NetBSD 6.0 to NetBSD 7.0: mfi(8): Added tagged queuing support. [bouyer 20120823] mfi(8): Added support for LSI SAS2208-based controllers. [bouyer 20120823] + mkdep(1): Add -P option. [jmmv 20120826] Index: src/tests/usr.bin/mkdep/t_mkdep.sh diff -u src/tests/usr.bin/mkdep/t_mkdep.sh:1.3 src/tests/usr.bin/mkdep/t_mkdep.sh:1.4 --- src/tests/usr.bin/mkdep/t_mkdep.sh:1.3 Tue Jun 14 11:44:25 2011 +++ src/tests/usr.bin/mkdep/t_mkdep.sh Sun Aug 26 22:37:19 2012 @@ -1,4 +1,4 @@ -# $NetBSD: t_mkdep.sh,v 1.3 2011/06/14 11:44:25 njoly Exp $ +# $NetBSD: t_mkdep.sh,v 1.4 2012/08/26 22:37:19 jmmv Exp $ # # Copyright (c) 2011 The NetBSD Foundation, Inc. # All rights reserved. @@ -28,12 +28,24 @@ # POSSIBILITY OF SUCH DAMAGE. # +atf_test_case prefix +prefix_head() { + atf_set "descr" "Test adding a prefix to a single target" + atf_set "require.progs" "mkdep cc" +} +prefix_body() { + + atf_check touch sample.c + + atf_check mkdep -f sample.d -P some/path/ sample.c + atf_check -o ignore grep '^some/path/sample.o:' sample.d +} + atf_test_case suffixes suffixes_head() { atf_set "descr" "Test suffixes list" atf_set "require.progs" "mkdep cc" } - suffixes_body() { atf_check touch sample.c @@ -51,6 +63,21 @@ suffixes_body() { atf_check -o ignore grep '^sample:' sample.d } +atf_test_case prefix_and_suffixes +prefix_and_suffixes_head() { + atf_set "descr" "Test the combination of a prefix and suffixes" + atf_set "require.progs" "mkdep cc" +} +prefix_and_suffixes_body() { + + atf_check touch sample.c + + atf_check mkdep -f sample.d -s '.a .b' -P c/d sample.c + atf_check -o ignore grep '^c/dsample.b c/dsample.a:' sample.d +} + atf_init_test_cases() { + atf_add_test_case prefix atf_add_test_case suffixes + atf_add_test_case prefix_and_suffixes } Index: src/tools/host-mkdep/host-mkdep.in diff -u src/tools/host-mkdep/host-mkdep.in:1.20 src/tools/host-mkdep/host-mkdep.in:1.21 --- src/tools/host-mkdep/host-mkdep.in:1.20 Thu Jun 30 20:09:41 2011 +++ src/tools/host-mkdep/host-mkdep.in Sun Aug 26 22:37:19 2012 @@ -1,6 +1,6 @@ #!@BSHELL@ - # -# $NetBSD: host-mkdep.in,v 1.20 2011/06/30 20:09:41 wiz Exp $ +# $NetBSD: host-mkdep.in,v 1.21 2012/08/26 22:37:19 jmmv Exp $ # # Copyright (c) 1991, 1993 # The Regents of the University of California. All rights reserved. @@ -43,6 +43,7 @@ AWK_OPTIONAL= QUIET=false CPPFLAGS= NEWEXT=.o +PREFIX= OUTFILE=.depend SRCS= @@ -61,10 +62,10 @@ set_objlist() IFS="$oifs" objlist= for suf in "$@"; do - objlist="$objlist${objlist:+ }$file$suf" + objlist="$objlist${objlist:+ }$PREFIX$file$suf" done else - objlist="$file" + objlist="$PREFIX$file" fi } @@ -84,7 +85,7 @@ while [ $# -gt 0 ]; do -p) NEWEXT=;; -q) QUIET=true;; - -[fs]) # Options with arguments + -[fPs]) # Options with arguments [ -z "$optarg" ] && { [ $# = 1 ] && usage shift @@ -92,6 +93,7 @@ while [ $# -gt 0 ]; do } case "-$option" in -f) OUTFILE="$optarg";; + -P) PREFIX="$optarg";; -s) NEWEXT="$optarg";; esac optarg= Index: src/usr.bin/mkdep/mkdep.1 diff -u src/usr.bin/mkdep/mkdep.1:1.16 src/usr.bin/mkdep/mkdep.1:1.17 --- src/usr.bin/mkdep/mkdep.1:1.16 Thu Jun 30 20:09:42 2011 +++ src/usr.bin/mkdep/mkdep.1 Sun Aug 26 22:37:19 2012 @@ -1,4 +1,4 @@ -.\" $NetBSD: mkdep.1,v 1.16 2011/06/30 20:09:42 wiz Exp $ +.\" $NetBSD: mkdep.1,v 1.17 2012/08/26 22:37:19 jmmv Exp $ .\" .\" Copyright (c) 1987, 1990, 1993 .\" The Regents of the University of California. All rights reserved. @@ -29,7 +29,7 @@ .\" .\" @(#)mkdep.1 8.1 (Berkeley) 6/6/93 .\" -.Dd October 15, 2010 +.Dd August 26, 2012 .Dt MKDEP 1 .Os .Sh NAME @@ -39,6 +39,7 @@ .Nm .Op Fl aDdopq .Op Fl f Ar file +.Op Fl P Ar prefix .Op Fl s Ar suffixes .Li -- .Op Ar flags @@ -81,6 +82,14 @@ Write the include file dependencies to instead of the default ``.depend''. .It Fl o Add an additional .OPTIONAL line for each dependent file. +.It Fl P +Prepend the string given in +.Ar prefix +to every target filename. +This is useful for programs that have source files in multiple subdirectories +and a single Makefile that references all of them explicitly (without using +the VPATH functionality because there can be files with the same name in +each subdirectory). .It Fl p Cause .Nm Index: src/usr.bin/mkdep/mkdep.c diff -u src/usr.bin/mkdep/mkdep.c:1.40 src/usr.bin/mkdep/mkdep.c:1.41 --- src/usr.bin/mkdep/mkdep.c:1.40 Sun Sep 4 20:30:06 2011 +++ src/usr.bin/mkdep/mkdep.c Sun Aug 26 22:37:19 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: mkdep.c,v 1.40 2011/09/04 20:30:06 joerg Exp $ */ +/* $NetBSD: mkdep.c,v 1.41 2012/08/26 22:37:19 jmmv Exp $ */ /*- * Copyright (c) 1999 The NetBSD Foundation, Inc. @@ -37,7 +37,7 @@ #if !defined(lint) __COPYRIGHT("@(#) Copyright (c) 1999 The NetBSD Foundation, Inc.\ All rights reserved."); -__RCSID("$NetBSD: mkdep.c,v 1.40 2011/09/04 20:30:06 joerg Exp $"); +__RCSID("$NetBSD: mkdep.c,v 1.41 2012/08/26 22:37:19 jmmv Exp $"); #endif /* not lint */ #include <sys/mman.h> @@ -91,7 +91,8 @@ __dead static void usage(void) { (void)fprintf(stderr, - "usage: %s [-aDdopq] [-f file] [-s suffixes] -- [flags] file ...\n", + "usage: %s [-aDdopq] [-f file] [-P prefix] [-s suffixes] " + "-- [flags] file ...\n", getprogname()); exit(EXIT_FAILURE); } @@ -216,6 +217,7 @@ main(int argc, char **argv) int fd; size_t slen; const char *fname; + const char *prefix = NULL; const char *suffixes = NULL, *s; suff_list_t *suff_list = NULL, *sl; @@ -235,7 +237,7 @@ main(int argc, char **argv) opterr = 0; /* stop getopt() bleating about errors. */ for (;;) { ok_ind = optind; - ch = getopt_long(argc, argv, "aDdf:opqRs:", longopt, NULL); + ch = getopt_long(argc, argv, "aDdf:oP:pqRs:", longopt, NULL); switch (ch) { case -1: ok_ind = optind; @@ -257,6 +259,9 @@ main(int argc, char **argv) case 'o': /* Mark dependent files .OPTIONAL */ oflag = 1; continue; + case 'P': /* Prefix for each target filename */ + prefix = optarg; + continue; case 'p': /* Program mode (x.o: -> x:) */ suffixes = ""; continue; @@ -401,12 +406,18 @@ main(int argc, char **argv) { if (sl != suff_list) write(dependfile, " ", 1); + if (prefix != NULL) + write(dependfile, prefix, + strlen(prefix)); write(dependfile, line, suf - line); write(dependfile, sl->suff, sl->len); } write(dependfile, colon, eol - colon); - } else + } else { + if (prefix != NULL) + write(dependfile, prefix, strlen(prefix)); write(dependfile, line, eol - line); + } if (oflag) save_for_optional(colon + 1, eol);