diff options
Diffstat (limited to 'usr.sbin/config/mkmakefile.c')
-rw-r--r-- | usr.sbin/config/mkmakefile.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/usr.sbin/config/mkmakefile.c b/usr.sbin/config/mkmakefile.c index 0bf5620..47a1db0 100644 --- a/usr.sbin/config/mkmakefile.c +++ b/usr.sbin/config/mkmakefile.c @@ -305,6 +305,7 @@ makeenv(void) static void read_file(char *fname) { + char ifname[MAXPATHLEN]; FILE *fp; struct file_list *tp; struct device *dp; @@ -318,6 +319,7 @@ read_file(char *fname) err(1, "%s", fname); next: /* + * include "filename" * filename [ standard | mandatory | optional ] * [ dev* [ | dev* ... ] | profiling-routine ] [ no-obj ] * [ compile-with "compile rule" [no-implicit-rule] ] @@ -337,6 +339,18 @@ next: ; goto next; } + if (eq(wd, "include")) { + next_quoted_word(fp, wd); + if (wd == 0) { + printf("%s: missing include filename.\n", fname); + exit(1); + } + (void) snprintf(ifname, sizeof(ifname), "../../%s", wd); + read_file(ifname); + while (((wd = get_word(fp)) != (char *)EOF) && wd) + ; + goto next; + } this = ns(wd); next_word(fp, wd); if (wd == 0) { |