1*1debfc3dSmrg# This file is included several times in a row, once for each element of 2*1debfc3dSmrg# $(iter-items). On each inclusion, we advance $o to the next element. 3*1debfc3dSmrg 4*1debfc3dSmrgo := $(firstword $(iter-items)) 5*1debfc3dSmrgiter-items := $(filter-out $o,$(iter-items)) 6*1debfc3dSmrg 7*1debfc3dSmrgbase := $(basename $(notdir $o)) 8*1debfc3dSmrg 9*1debfc3dSmrg# Copy c_flags to a rule-specific copy and use the copy, to avoid the 10*1debfc3dSmrg# following rules being affected by later changes to c_flags in the 11*1debfc3dSmrg# including file. 12*1debfc3dSmrgc_flags-$o := $(c_flags) 13*1debfc3dSmrg 14*1debfc3dSmrgifeq ($(suffix $o),.c) 15*1debfc3dSmrg 16*1debfc3dSmrg$(base)$(objext): $o 17*1debfc3dSmrg $(gcc_compile) $(c_flags-$<) -c $< $(vis_hide) 18*1debfc3dSmrg 19*1debfc3dSmrgelse 20*1debfc3dSmrg 21*1debfc3dSmrgifneq ($(suffix $o),.S) 22*1debfc3dSmrgifneq ($(suffix $o),.asm) 23*1debfc3dSmrg$(error Unsupported file type: $o) 24*1debfc3dSmrgendif 25*1debfc3dSmrgendif 26*1debfc3dSmrg 27*1debfc3dSmrgas_flags-$o := -xassembler$(if $(filter .S,$(suffix $o)),-with-cpp) 28*1debfc3dSmrg 29*1debfc3dSmrg$(base)$(objext): $o $(base).vis 30*1debfc3dSmrg $(gcc_compile) -c $(as_flags-$<) -include $*.vis $< 31*1debfc3dSmrg 32*1debfc3dSmrg$(base).vis: $(base)_s$(objext) 33*1debfc3dSmrg $(gen-hide-list) 34*1debfc3dSmrg 35*1debfc3dSmrg$(base)_s$(objext): $o 36*1debfc3dSmrg $(gcc_s_compile) -c $(as_flags-$<) $< 37*1debfc3dSmrg 38*1debfc3dSmrgendif 39