0001
0002
0003
0004
0005 quiet_cmd_flex = LEX $@
0006 cmd_flex = $(LEX) -o$@ -L $<
0007
0008 $(obj)/%.lex.c: $(src)/%.l FORCE
0009 $(call if_changed,flex)
0010
0011
0012
0013 quiet_cmd_bison = YACC $(basename $@).[ch]
0014 cmd_bison = $(YACC) -o $(basename $@).c --defines=$(basename $@).h -t -l $<
0015
0016 $(obj)/%.tab.c $(obj)/%.tab.h: $(src)/%.y FORCE
0017 $(call if_changed,bison)
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 host-csingle := $(foreach m,$(hostprogs), \
0044 $(if $($(m)-objs)$($(m)-cxxobjs),,$(m)))
0045
0046
0047 host-cmulti := $(foreach m,$(hostprogs),\
0048 $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
0049
0050
0051 host-cobjs := $(sort $(foreach m,$(hostprogs),$($(m)-objs)))
0052
0053
0054
0055
0056 host-cxxmulti := $(foreach m,$(hostprogs),$(if $($(m)-cxxobjs),$(m)))
0057
0058
0059 host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
0060
0061 host-csingle := $(addprefix $(obj)/,$(host-csingle))
0062 host-cmulti := $(addprefix $(obj)/,$(host-cmulti))
0063 host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
0064 host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
0065 host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs))
0066
0067
0068
0069
0070 _hostc_flags = $(KBUILD_HOSTCFLAGS) $(HOST_EXTRACFLAGS) \
0071 $(HOSTCFLAGS_$(target-stem).o)
0072 _hostcxx_flags = $(KBUILD_HOSTCXXFLAGS) $(HOST_EXTRACXXFLAGS) \
0073 $(HOSTCXXFLAGS_$(target-stem).o)
0074
0075
0076 ifeq ($(KBUILD_EXTMOD),)
0077 ifdef building_out_of_srctree
0078 _hostc_flags += -I $(objtree)/$(obj)
0079 _hostcxx_flags += -I $(objtree)/$(obj)
0080 endif
0081 endif
0082
0083 hostc_flags = -Wp,-MMD,$(depfile) $(_hostc_flags)
0084 hostcxx_flags = -Wp,-MMD,$(depfile) $(_hostcxx_flags)
0085
0086
0087
0088
0089
0090
0091 quiet_cmd_host-csingle = HOSTCC $@
0092 cmd_host-csingle = $(HOSTCC) $(hostc_flags) $(KBUILD_HOSTLDFLAGS) -o $@ $< \
0093 $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
0094 $(host-csingle): $(obj)/%: $(src)/%.c FORCE
0095 $(call if_changed_dep,host-csingle)
0096
0097
0098
0099 quiet_cmd_host-cmulti = HOSTLD $@
0100 cmd_host-cmulti = $(HOSTCC) $(KBUILD_HOSTLDFLAGS) -o $@ \
0101 $(addprefix $(obj)/, $($(target-stem)-objs)) \
0102 $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
0103 $(host-cmulti): FORCE
0104 $(call if_changed,host-cmulti)
0105 $(call multi_depend, $(host-cmulti), , -objs)
0106
0107
0108
0109 quiet_cmd_host-cobjs = HOSTCC $@
0110 cmd_host-cobjs = $(HOSTCC) $(hostc_flags) -c -o $@ $<
0111 $(host-cobjs): $(obj)/%.o: $(src)/%.c FORCE
0112 $(call if_changed_dep,host-cobjs)
0113
0114
0115
0116 quiet_cmd_host-cxxmulti = HOSTLD $@
0117 cmd_host-cxxmulti = $(HOSTCXX) $(KBUILD_HOSTLDFLAGS) -o $@ \
0118 $(foreach o,objs cxxobjs,\
0119 $(addprefix $(obj)/, $($(target-stem)-$(o)))) \
0120 $(KBUILD_HOSTLDLIBS) $(HOSTLDLIBS_$(target-stem))
0121 $(host-cxxmulti): FORCE
0122 $(call if_changed,host-cxxmulti)
0123 $(call multi_depend, $(host-cxxmulti), , -objs -cxxobjs)
0124
0125
0126 quiet_cmd_host-cxxobjs = HOSTCXX $@
0127 cmd_host-cxxobjs = $(HOSTCXX) $(hostcxx_flags) -c -o $@ $<
0128 $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
0129 $(call if_changed_dep,host-cxxobjs)
0130
0131 targets += $(host-csingle) $(host-cmulti) $(host-cobjs) \
0132 $(host-cxxmulti) $(host-cxxobjs)