14fee23f9Smrg# This file is included several times in a row, once for each element of 24fee23f9Smrg# $(iter-items). On each inclusion, we advance $o to the next element. 34fee23f9Smrg 44fee23f9Smrgo := $(firstword $(iter-items)) 54fee23f9Smrgiter-items := $(filter-out $o,$(iter-items)) 64fee23f9Smrg 74fee23f9Smrgbase := $(basename $(notdir $o)) 84fee23f9Smrg 948fb7bfaSmrg# Copy c_flags to a rule-specific copy and use the copy, to avoid the 1048fb7bfaSmrg# following rules being affected by later changes to c_flags in the 1148fb7bfaSmrg# including file. 1248fb7bfaSmrgc_flags-$o := $(c_flags) 1348fb7bfaSmrg 144fee23f9Smrgifeq ($(suffix $o),.c) 154fee23f9Smrg 164fee23f9Smrg$(base)$(objext): $o 1748fb7bfaSmrg $(gcc_compile) $(c_flags-$<) -c $< $(vis_hide) 184fee23f9Smrg 194fee23f9Smrgelse 204fee23f9Smrg 214fee23f9Smrgifneq ($(suffix $o),.S) 224fee23f9Smrgifneq ($(suffix $o),.asm) 234fee23f9Smrg$(error Unsupported file type: $o) 244fee23f9Smrgendif 254fee23f9Smrgendif 264fee23f9Smrg 27*4d5abbe8Smrgas_flags-$o := -xassembler$(if $(filter .S,$(suffix $o)),-with-cpp) 28*4d5abbe8Smrg 2948fb7bfaSmrg$(base)$(objext): $o $(base).vis 30*4d5abbe8Smrg $(gcc_compile) -c $(as_flags-$<) -include $*.vis $< 3148fb7bfaSmrg 3248fb7bfaSmrg$(base).vis: $(base)_s$(objext) 3348fb7bfaSmrg $(gen-hide-list) 3448fb7bfaSmrg 3548fb7bfaSmrg$(base)_s$(objext): $o 36*4d5abbe8Smrg $(gcc_s_compile) -c $(as_flags-$<) $< 374fee23f9Smrg 384fee23f9Smrgendif 39