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.
Showing the changes to scripts/Makefile.lib (1 of 2 files). Show all
Unified · Split
| @@ -187,22 +187,6 @@ $(foreach m, $(notdir $1), \ · 186 unmodified lines | ||
| 187 | 187 | $(addprefix $(obj)/, $(foreach s, $3, $($(m:%$(strip $2)=%$(s))))))) |
| 188 | 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 | 190 | # Shipped files |
| 207 | 191 | # =========================================================================== |
| 208 | 192 | |