kconfig: split the lexer out of zconf.y
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 21 Dec 2018 08:33:05 +0000 (17:33 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 28 Dec 2018 13:22:38 +0000 (22:22 +0900)
Compile zconf.lex.c independently of the other files.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
scripts/kconfig/Makefile
scripts/kconfig/lkc.h
scripts/kconfig/zconf.l
scripts/kconfig/zconf.y

index d3bd687547500be3b5b666dafc568e0c8fe90901..65cdf8c36cb451f046e61f9c3ba8f71ac212cf0d 100644 (file)
@@ -143,11 +143,9 @@ help:
 
 # ===========================================================================
 # object files used by all kconfig flavours
-common-objs    := confdata.o expr.o symbol.o preprocess.o zconf.tab.o
+common-objs    := confdata.o expr.o symbol.o preprocess.o zconf.lex.o zconf.tab.o
 
-targets                += zconf.lex.c
-
-# generated files seem to need this to find local include files
+$(obj)/zconf.lex.o: $(obj)/zconf.tab.h
 HOSTCFLAGS_zconf.lex.o := -I$(src)
 HOSTCFLAGS_zconf.tab.o := -I$(src)
 
@@ -202,8 +200,6 @@ HOSTCFLAGS_gconf.o  = $(shell . $(obj)/.gconf-cfg && echo $$cflags)
 
 $(obj)/gconf.o: $(obj)/.gconf-cfg
 
-$(obj)/zconf.tab.o: $(obj)/zconf.lex.c
-
 # check if necessary packages are available, and configure build flags
 define filechk_conf_cfg
        $(CONFIG_SHELL) $<
index 160a9312e11a7dd9ee7d6bfa9f7b167e00aed06e..531ff7c57d92dce95e933fee200e6fc0ed3f13b4 100644 (file)
@@ -90,6 +90,9 @@ void *xrealloc(void *p, size_t size);
 char *xstrdup(const char *s);
 char *xstrndup(const char *s, size_t n);
 
+/* zconf.l */
+int yylex(void);
+
 struct gstr {
        size_t len;
        char  *s;
index 96f8b1dcf470d40daf25b132aeaa0999d39b0763..b2d0a3b0bce92294a4d0c7a84ccef12c8ac8a131 100644 (file)
@@ -15,6 +15,7 @@
 #include <unistd.h>
 
 #include "lkc.h"
+#include "zconf.tab.h"
 
 #define YY_DECL                static int yylex1(void)
 
index a990f46f38257702c30311adbca516514c178567..69409abc7dc29c9b4ea1e75fb24d4a89f14f2e65 100644 (file)
@@ -20,7 +20,6 @@
 
 int cdebug = PRINTD;
 
-int yylex(void);
 static void yyerror(const char *err);
 static void zconfprint(const char *err, ...);
 static void zconf_error(const char *err, ...);
@@ -729,6 +728,5 @@ void zconfdump(FILE *out)
        }
 }
 
-#include "zconf.lex.c"
 #include "util.c"
 #include "menu.c"