Module Name: src Committed By: uebayasi Date: Sun Nov 16 14:49:12 UTC 2014
Modified Files: src/usr.bin/config: mkmakefile.c Log Message: Refactor. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/usr.bin/config/mkmakefile.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/config/mkmakefile.c diff -u src/usr.bin/config/mkmakefile.c:1.29 src/usr.bin/config/mkmakefile.c:1.30 --- src/usr.bin/config/mkmakefile.c:1.29 Sun Nov 16 14:26:14 2014 +++ src/usr.bin/config/mkmakefile.c Sun Nov 16 14:49:12 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: mkmakefile.c,v 1.29 2014/11/16 14:26:14 uebayasi Exp $ */ +/* $NetBSD: mkmakefile.c,v 1.30 2014/11/16 14:49:12 uebayasi Exp $ */ /* * Copyright (c) 1992, 1993 @@ -45,7 +45,7 @@ #endif #include <sys/cdefs.h> -__RCSID("$NetBSD: mkmakefile.c,v 1.29 2014/11/16 14:26:14 uebayasi Exp $"); +__RCSID("$NetBSD: mkmakefile.c,v 1.30 2014/11/16 14:49:12 uebayasi Exp $"); #include <sys/param.h> #include <ctype.h> @@ -334,21 +334,22 @@ emitobjs(FILE *fp) fprintf(fp, "\t%s.o \\\n", fi->fi_base); } TAILQ_FOREACH(oi, &allobjects, oi_next) { + const char *prologue, *prefix, *sep; + if ((oi->oi_flags & OI_SEL) == 0) continue; - if (*oi->oi_path == '/') { - fprintf(fp, "\t%s \\\n", oi->oi_path); - } else { + prologue = prefix = sep = ""; + if (*oi->oi_path != '/') { if (oi->oi_prefix != NULL) { - fprintf(fp, "\t%s%s/%s \\\n", - prefix_prologue(oi->oi_path), - oi->oi_prefix, oi->oi_path); + prologue = prefix_prologue(oi->oi_path); + prefix = oi->oi_prefix; + sep = "/"; } else { - fprintf(fp, "\t%s%s \\\n", - filetype_prologue(&oi->oi_fit), - oi->oi_path); + prologue = filetype_prologue(&oi->oi_fit); } } + fprintf(fp, "\t%s%s%s%s \\\n", prologue, prefix, sep, + oi->oi_path); } putc('\n', fp); } @@ -488,25 +489,27 @@ emitfiles(FILE *fp, int suffix, int uppe fprintf(fp, "%cFILES= \\\n", toupper(suffix)); TAILQ_FOREACH(fi, &allfiles, fi_next) { + const char *prologue, *prefix, *sep; + if ((fi->fi_flags & FI_SEL) == 0) continue; fpath = srcpath(fi); len = strlen(fpath); if (fpath[len - 1] != suffix && fpath[len - 1] != upper_suffix) continue; - if (*fi->fi_path == '/') { - fprintf(fp, "\t%s \\\n", fpath); + prologue = prefix = sep = ""; + if (*fi->fi_path != '/') { } else { if (fi->fi_prefix != NULL) { - fprintf(fp, "\t%s%s/%s \\\n", - prefix_prologue(fi->fi_prefix), - fi->fi_prefix, fpath); + prologue = prefix_prologue(fi->fi_prefix); + prefix = fi->fi_prefix; + sep = "/"; } else { - fprintf(fp, "\t%s%s \\\n", - filetype_prologue(&fi->fi_fit), - fpath); + prologue = filetype_prologue(&fi->fi_fit); } } + fprintf(fp, "\t%s%s%s%s \\\n", + prologue, prefix, sep, fpath); } /* * The allfiles list does not include the configuration-specific @@ -534,23 +537,23 @@ emitrules(FILE *fp) int ch; TAILQ_FOREACH(fi, &allfiles, fi_next) { + const char *prologue, *prefix, *sep; + if ((fi->fi_flags & FI_SEL) == 0) continue; fpath = srcpath(fi); - if (*fpath == '/') { - fprintf(fp, "%s.o: %s\n", fi->fi_base, fpath); - } else { + prologue = prefix = sep = ""; + if (*fpath != '/') { if (fi->fi_prefix != NULL) { - fprintf(fp, "%s.o: %s%s/%s\n", fi->fi_base, - prefix_prologue(fi->fi_prefix), - fi->fi_prefix, fpath); + prologue = prefix_prologue(fi->fi_prefix); + prefix = fi->fi_prefix; + sep = "/"; } else { - fprintf(fp, "%s.o: %s%s\n", - fi->fi_base, - filetype_prologue(&fi->fi_fit), - fpath); + prologue = filetype_prologue(&fi->fi_fit); } } + fprintf(fp, "%s.o: %s%s%s%s\n", fi->fi_base, + prologue, prefix, sep, fpath); if (fi->fi_mkrule != NULL) { fprintf(fp, "\t%s\n\n", fi->fi_mkrule); } else {