Module Name:    src
Committed By:   uebayasi
Date:           Fri Sep  4 05:52:15 UTC 2015

Modified Files:
        src/usr.bin/config: mkmakefile.c

Log Message:
Output ${ALLFILES}, the list of selected *.[csSo] files, sorted in the exact
order config(1) parses "file ..." commands in config(5) files.  Define
${CFILES}, ${SFILES}, and ${OFILES} as subset of ${ALLFILES} selected by
suffix.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 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.65 src/usr.bin/config/mkmakefile.c:1.66
--- src/usr.bin/config/mkmakefile.c:1.65	Fri Sep  4 05:13:32 2015
+++ src/usr.bin/config/mkmakefile.c	Fri Sep  4 05:52:15 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: mkmakefile.c,v 1.65 2015/09/04 05:13:32 uebayasi Exp $	*/
+/*	$NetBSD: mkmakefile.c,v 1.66 2015/09/04 05:52:15 uebayasi Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -45,7 +45,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: mkmakefile.c,v 1.65 2015/09/04 05:13:32 uebayasi Exp $");
+__RCSID("$NetBSD: mkmakefile.c,v 1.66 2015/09/04 05:52:15 uebayasi Exp $");
 
 #include <sys/param.h>
 #include <ctype.h>
@@ -63,9 +63,9 @@ __RCSID("$NetBSD: mkmakefile.c,v 1.65 20
  */
 
 static void emitdefs(FILE *);
-static void emitfiles(FILE *, struct filelist *, int);
+static void emitallfiles(FILE *);
 
-static void emitobjs(FILE *);
+static void emitofiles(FILE *);
 static void emitallkobjs(FILE *);
 static int emitallkobjscb(const char *, void *, void *);
 static void emitattrkobjs(FILE *);
@@ -145,7 +145,7 @@ mkmakefile(void)
 			continue;
 		}
 		if (strcmp(line, "%OBJS\n") == 0)
-			fn = Mflag ? emitkobjs : emitobjs;
+			fn = Mflag ? emitkobjs : emitofiles;
 		else if (strcmp(line, "%CFILES\n") == 0)
 			fn = emitcfiles;
 		else if (strcmp(line, "%SFILES\n") == 0)
@@ -332,10 +332,11 @@ emitfilerel(FILE *fp, struct files *fi)
 }
 
 static void
-emitobjs(FILE *fp)
+emitofiles(FILE *fp)
 {
 
-	emitfiles(fp, &allofiles, 'o');
+	emitallfiles(fp);
+	fprintf(fp, "OFILES=\t${ALLFILES:M*.o}\n");
 }
 
 static void
@@ -452,33 +453,37 @@ static void
 emitcfiles(FILE *fp)
 {
 
-	emitfiles(fp, &allcfiles, 'c');
+	emitallfiles(fp);
+	fprintf(fp, "CFILES=\t${ALLFILES:M*.c}\n");
 }
 
 static void
 emitsfiles(FILE *fp)
 {
 
-	emitfiles(fp, &allsfiles, 's');
+	emitallfiles(fp);
+	fprintf(fp, "SFILES=\t${ALLFILES:M*.[sS]}\n");
 }
 
 static void
-emitfiles(FILE *fp, struct filelist *filelist, int suffix)
+emitallfiles(FILE *fp)
 {
 	struct files *fi;
+	static int called;
 	int found = 0;
 
-	TAILQ_FOREACH(fi, filelist, fi_snext) {
-		if (found++ == 0)
-			fprintf(fp, "%cFILES= \\\n", toupper(suffix));
+	if (called++ != 0)
+		return;
+	TAILQ_FOREACH(fi, &allfiles, fi_next) {
 		if ((fi->fi_flags & FI_SEL) == 0)
 			continue;
+		if (found++ == 0)
+			fprintf(fp, "ALLFILES= \\\n");
 		putc('\t', fp);
 		emitfilerel(fp, fi);
 		fputs(" \\\n", fp);
 	}
-	if (found == 0)
-		fprintf(fp, "#%%%cFILES\n", toupper(suffix));
+	fputc('\n', fp);
 }
 
 /*

Reply via email to