Flex and bison are used for kconfig, dtc, genksyms, all of which are host programs. I never imagine the kernel embeds a parser or a lexer. Move the flex and bison rules to scripts/Makefile.host. This file is included only when hostprogs-y etc. is present in the Makefile in the directory. So, parsing these rules are skipped in most of directories.
Unified · Split
| @@ -1,4 +1,21 @@ | |||
| 1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
| 2 | |||
| 3 | # LEX | ||
| 4 | # --------------------------------------------------------------------------- | ||
| 5 | quiet_cmd_flex = LEX $@ | ||
| 6 | cmd_flex = $(LEX) -o$@ -L $< | ||
| 7 | |||
| 8 | $(obj)/%.lex.c: $(src)/%.l FORCE | ||
| 9 | $(call if_changed,flex) | ||
| 10 | |||
| 11 | # YACC | ||
| 12 | # --------------------------------------------------------------------------- | ||
| 13 | quiet_cmd_bison = YACC $(basename $@).[ch] | ||
| 14 | cmd_bison = $(YACC) -o $(basename $@).c --defines=$(basename $@).h -t -l $< | ||
| 15 | |||
| 16 | $(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE | ||
| 17 | $(call if_changed,bison) | ||
| 18 | |||
| 2 | # ========================================================================== | 19 | # ========================================================================== |
| 3 | # Building binaries on the host system | 20 | # Building binaries on the host system |
| 4 | # Binaries are used during the compilation of the kernel, for example | 21 | # Binaries are used during the compilation of the kernel, for example |
| @@ -187,22 +187,6 @@ $(foreach m, $(notdir $1), \ · 186 unmodified lines | |||
| 187 | $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) | 187 | $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) |
| 188 | endef | 188 | endef |
| 189 | 189 | ||
| 190 | # LEX | ||
| 191 | # --------------------------------------------------------------------------- | ||
| 192 | quiet_cmd_flex = LEX $@ | ||
| 193 | cmd_flex = $(LEX) -o$@ -L $< | ||
| 194 | |||
| 195 | $(obj)/%.lex.c: $(src)/%.l FORCE | ||
| 196 | $(call if_changed,flex) | ||
| 197 | |||
| 198 | # YACC | ||
| 199 | # --------------------------------------------------------------------------- | ||
| 200 | quiet_cmd_bison = YACC $(basename $@).[ch] | ||
| 201 | cmd_bison = $(YACC) -o $(basename $@).c --defines=$(basename $@).h -t -l $< | ||
| 202 | |||
| 203 | $(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE | ||
| 204 | $(call if_changed,bison) | ||
| 205 | |||
| 206 | # Shipped files | 190 | # Shipped files |
| 207 | # =========================================================================== | 191 | # =========================================================================== |
| 208 | 192 | ||