shared-object.mk 820 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # This file is included several times in a row, once for each element of
  2. # $(iter-items). On each inclusion, we advance $o to the next element.
  3. o := $(firstword $(iter-items))
  4. iter-items := $(filter-out $o,$(iter-items))
  5. base := $(basename $(notdir $o))
  6. c_flags-$o := $(c_flags)
  7. ifeq ($(suffix $o),.c)
  8. $(base)$(objext): $o
  9. $(gcc_compile) $(c_flags-$<) -c $< $(vis_hide)
  10. $(base)_s$(objext): $o
  11. $(gcc_s_compile) $(c_flags-$<) -c $<
  12. else
  13. ifneq ($(suffix $o),.S)
  14. ifneq ($(suffix $o),.asm)
  15. $(error Unsupported file type: $o)
  16. endif
  17. endif
  18. as_flags-$o := -xassembler$(if $(filter .S,$(suffix $o)),-with-cpp)
  19. $(base)$(objext): $o $(base).vis
  20. $(gcc_compile) -c $(as_flags-$<) -include $*.vis $<
  21. $(base).vis: $(base)_s$(objext)
  22. $(gen-hide-list)
  23. $(base)_s$(objext): $o
  24. $(gcc_s_compile) -c $(as_flags-$<) $<
  25. endif