forked from KolibriOS/kolibrios
39 lines
914 B
Makefile
39 lines
914 B
Makefile
|
# This file is included several times in a row, once for each element of
|
||
|
# $(iter-items). On each inclusion, we advance $o to the next element.
|
||
|
|
||
|
o := $(firstword $(iter-items))
|
||
|
iter-items := $(filter-out $o,$(iter-items))
|
||
|
|
||
|
base := $(basename $(notdir $o))
|
||
|
|
||
|
# Copy c_flags to a rule-specific copy and use the copy, to avoid the
|
||
|
# following rules being affected by later changes to c_flags in the
|
||
|
# including file.
|
||
|
c_flags-$o := $(c_flags)
|
||
|
|
||
|
ifeq ($(suffix $o),.c)
|
||
|
|
||
|
$(base)$(objext): $o
|
||
|
$(gcc_compile) $(c_flags-$<) -c $< $(vis_hide)
|
||
|
|
||
|
else
|
||
|
|
||
|
ifneq ($(suffix $o),.S)
|
||
|
ifneq ($(suffix $o),.asm)
|
||
|
$(error Unsupported file type: $o)
|
||
|
endif
|
||
|
endif
|
||
|
|
||
|
as_flags-$o := -xassembler$(if $(filter .S,$(suffix $o)),-with-cpp)
|
||
|
|
||
|
$(base)$(objext): $o $(base).vis
|
||
|
$(gcc_compile) -c $(as_flags-$<) -include $*.vis $<
|
||
|
|
||
|
$(base).vis: $(base)_s$(objext)
|
||
|
$(gen-hide-list)
|
||
|
|
||
|
$(base)_s$(objext): $o
|
||
|
$(gcc_s_compile) -c $(as_flags-$<) $<
|
||
|
|
||
|
endif
|