1# file      : build/c/gnu/c-o.make
2# copyright : Copyright (c) 2004-2012 Code Synthesis Tools CC
3# license   : GNU GPL v2; see accompanying LICENSE file
4
5$(call include-once,$(bld_root)/c/cpp-options.make,$(out_base))
6$(call include,$(bld_root)/c/gnu/configuration.make)
7
8$(out_base)/%.o: c := $(c_gnu)
9$(out_base)/%.o: c_options := $(c_gnu_optimization_options) $(c_gnu_debugging_options)
10
11#@@ wrong prefix
12#
13$(out_base)/%.o: expand-cpp-options-impl = \
14$(if $1,$(shell sed -e 's%include: \(.*\)%\1%' -e t -e d $1))
15
16$(out_base)/%.o: expand-cpp-options = \
17$(call expand-cpp-options-impl,$(filter %.cpp-options,$1))
18
19ifeq ($(out_base),$(src_base))
20$(out_base)/%.o: $(src_base)/%.$(c_s_suffix)
21else
22$(out_base)/%.o: $(src_base)/%.$(c_s_suffix) | $$(dir $$@).
23endif
24	$(call message,c $<,$(c) \
25$(cpp_options) $(call expand-cpp-options,$^) $(c_pp_extra_options) $(c_options) \
26$(c_pic_options) $(subst y,-fexceptions,$(filter y,$(c_exceptions))) $(c_extra_options) -o $@ -c $<)
27
28
29ifneq ($(out_base),$(src_base))
30
31$(out_base)/%.o: $(out_base)/%.$(c_s_suffix) | $$(dir $$@).
32	$(call message,c $<,$(c) \
33$(cpp_options) $(call expand-cpp-options,$^) $(c_pp_extra_options) $(c_options) \
34$(c_pic_options) $(subst y,-fexceptions,$(filter y,$(c_exceptions))) $(c_extra_options) -o $@ -c $<)
35
36endif
37
38.PHONY: $(out_base)/%.o.$(c_s_suffix).clean
39
40$(out_base)/%.o.$(c_s_suffix).clean:
41	$(call message,rm $$1,rm -f $$1,$(basename $(basename $@)))
42