xref: /netbsd-src/external/gpl3/gcc/dist/libgcc/static-object.mk (revision 4d5abbe83f525258eb479e5fca29f25cb943f379)
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