summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/config/mkmakefile.c95
1 files changed, 38 insertions, 57 deletions
diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c
index 7b11441..8846bfd 100644
--- a/usr.sbin/config/mkmakefile.c
+++ b/usr.sbin/config/mkmakefile.c
@@ -43,6 +43,7 @@ static const char rcsid[] =
#include <ctype.h>
#include <err.h>
+#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <sys/param.h>
@@ -59,6 +60,15 @@ static void do_before_depend(FILE *);
static int opteq(const char *, const char *);
static void read_files(void);
+static void errout(const char *fmt, ...)
+{
+ va_list ap;
+ va_start(ap, fmt);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+ exit(1);
+}
+
/*
* Lookup a file, by name.
*/
@@ -329,11 +339,8 @@ next:
}
if (eq(wd, "include")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- fprintf(stderr, "%s: missing include filename.\n",
- fname);
- exit(1);
- }
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: missing include filename.\n", fname);
(void) snprintf(ifname, sizeof(ifname), "../../%s", wd);
read_file(ifname);
while (((wd = get_word(fp)) != (char *)EOF) && wd)
@@ -344,10 +351,8 @@ next:
wd = get_word(fp);
if (wd == (char *)EOF)
return;
- if (wd == 0) {
- fprintf(stderr, "%s: No type for %s.\n", fname, this);
- exit(1);
- }
+ if (wd == 0)
+ errout("%s: No type for %s.\n", fname, this);
tp = fl_lookup(this);
compile = 0;
match = 1;
@@ -363,14 +368,11 @@ next:
nowerror = 0;
filetype = NORMAL;
objprefix = "";
- if (eq(wd, "standard")) {
+ if (eq(wd, "standard"))
std = 1;
- } else if (!eq(wd, "optional")) {
- fprintf(stderr,
- "%s: \"%s\" %s must be optional or standard\n",
+ else if (!eq(wd, "optional"))
+ errout("%s: \"%s\" %s must be optional or standard\n",
fname, wd, this);
- exit(1);
- }
nextparam:
wd = get_word(fp);
if (wd == (char *)EOF)
@@ -378,11 +380,9 @@ nextparam:
if (wd == 0) {
compile += match;
if (compile && tp == NULL) {
- if (std == 0 && nreqs == 0) {
- fprintf(stderr, "%s: what is %s optional on?\n",
- fname, this);
- exit(1);
- }
+ if (std == 0 && nreqs == 0)
+ errout("%s: what is %s optional on?\n",
+ fname, this);
if (filetype == PROFILING && profiling == 0)
goto next;
tp = new_fent();
@@ -405,11 +405,9 @@ nextparam:
goto next;
}
if (eq(wd, "|")) {
- if (nreqs == 0) {
- fprintf(stderr, "%s: syntax error describing %s\n",
+ if (nreqs == 0)
+ errout("%s: syntax error describing %s\n",
fname, this);
- exit(1);
- }
compile += match;
match = 1;
nreqs = 0;
@@ -420,11 +418,10 @@ nextparam:
goto nextparam;
}
if (eq(wd, "no-implicit-rule")) {
- if (compilewith == 0) {
- fprintf(stderr, "%s: alternate rule required when "
- "\"no-implicit-rule\" is specified.\n",
- fname);
- }
+ if (compilewith == 0)
+ errout("%s: alternate rule required when "
+ "\"no-implicit-rule\" is specified for %s.\n",
+ fname, this);
imp_rule++;
goto nextparam;
}
@@ -434,54 +431,41 @@ nextparam:
}
if (eq(wd, "dependency")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- fprintf(stderr,
- "%s: %s missing dependency string.\n",
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: %s missing dependency string.\n",
fname, this);
- exit(1);
- }
depends = ns(wd);
goto nextparam;
}
if (eq(wd, "clean")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- fprintf(stderr, "%s: %s missing clean file list.\n",
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: %s missing clean file list.\n",
fname, this);
- exit(1);
- }
clean = ns(wd);
goto nextparam;
}
if (eq(wd, "compile-with")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- fprintf(stderr,
- "%s: %s missing compile command string.\n",
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: %s missing compile command string.\n",
fname, this);
- exit(1);
- }
compilewith = ns(wd);
goto nextparam;
}
if (eq(wd, "warning")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- fprintf(stderr,
- "%s: %s missing warning text string.\n",
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: %s missing warning text string.\n",
fname, this);
- exit(1);
- }
warning = ns(wd);
goto nextparam;
}
if (eq(wd, "obj-prefix")) {
wd = get_quoted_word(fp);
- if (wd == (char *)EOF || wd == 0) {
- printf("%s: %s missing object prefix string.\n",
+ if (wd == (char *)EOF || wd == 0)
+ errout("%s: %s missing object prefix string.\n",
fname, this);
- exit(1);
- }
objprefix = ns(wd);
goto nextparam;
}
@@ -501,12 +485,9 @@ nextparam:
nowerror = 1;
goto nextparam;
}
- if (std) {
- fprintf(stderr,
- "standard entry %s has optional inclusion specifier %s!\n",
+ if (std)
+ errout("standard entry %s has optional inclusion specifier %s!\n",
this, wd);
- exit(1);
- }
nreqs++;
STAILQ_FOREACH(dp, &dtab, d_next)
if (eq(dp->d_name, wd)) {
OpenPOWER on IntegriCloud