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