[DEV] add objective-C file compiling

This commit is contained in:
Edouard DUPIN 2013-04-04 00:49:16 +02:00
parent 7674fedbe9
commit 0a3b7ca530
2 changed files with 65 additions and 7 deletions

View File

@ -541,6 +541,48 @@ $(Q)$(CCACHE) $(TARGET_CXX) \
$(call path-from-top,$<)
endef
###############################################################################
## Commands for running gcc to compile a m++ file.
###############################################################################
define transform-mm-to-o
@mkdir -p $(dir $@)
@echo "$(DISPLAY_ARM_MODE)m++: $(PRIVATE_MODULE) <== $(call path-from-top,$<)"
$(call check-pwd-is-top-dir)
$(Q)$(CCACHE) $(TARGET_CXX) \
-o $@ \
$(TARGET_GLOBAL_C_INCLUDES) \
$(PRIVATE_C_INCLUDES) \
$(TARGET_GLOBAL_CFLAGS_$(PRIVATE_ARM_MODE)) \
$(TARGET_GLOBAL_CFLAGS) $(TARGET_GLOBAL_CPPFLAGS) $(CXX_FLAGS_WARNINGS) \
$(PRIVATE_CFLAGS) $(PRIVATE_CPPFLAGS) \
-D__EWOL_APPL_NAME__="$(PROJECT_NAME2)" \
-c -MMD -MP -g \
-fgnu-runtime \
$(call path-from-top,$<)
endef
###############################################################################
## Commands for running gcc to compile a m file.
###############################################################################
define transform-m-to-o
@mkdir -p $(dir $@)
@echo "$(DISPLAY_ARM_MODE)m++: $(PRIVATE_MODULE) <== $(call path-from-top,$<)"
$(call check-pwd-is-top-dir)
$(Q)$(CCACHE) $(TARGET_CC) \
-o $@ \
$(TARGET_GLOBAL_C_INCLUDES) \
$(PRIVATE_C_INCLUDES) \
$(TARGET_GLOBAL_CFLAGS_$(PRIVATE_ARM_MODE)) \
$(TARGET_GLOBAL_CFLAGS) $(TARGET_GLOBAL_CPPFLAGS) $(CXX_FLAGS_WARNINGS) \
$(PRIVATE_CFLAGS) $(PRIVATE_CPPFLAGS) \
-D__EWOL_APPL_NAME__="$(PROJECT_NAME2)" \
-c -MMD -MP -g \
-fgnu-runtime \
$(call path-from-top,$<)
endef
###############################################################################
## Commands for running gcc to compile a C++ file.
###############################################################################
@ -667,15 +709,9 @@ $(call check-pwd-is-top-dir)
$(Q)$(TARGET_CXX) \
-o $@ \
$(TARGET_GLOBAL_LDFLAGS) \
-Wl,-Map -Wl,$(basename $@).map \
-Wl,-rpath-link=$(TARGET_OUT_STAGING)/lib \
-Wl,-rpath-link=$(TARGET_OUT_STAGING)/usr/lib \
-Wl,-map -Wl,$(basename $@).map \
$(PRIVATE_LDFLAGS) \
$(PRIVATE_ALL_OBJECTS) \
-Wl,--whole-archive \
$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES) \
-Wl,--no-whole-archive \
-Wl,--as-needed \
$(PRIVATE_ALL_STATIC_LIBRARIES) \
$(PRIVATE_ALL_SHARED_LIBRARIES) \
$(PRIVATE_LDLIBS) \

View File

@ -57,6 +57,12 @@ endif
## List of sources, objects and libraries.
###############################################################################
mm_sources := $(filter %.mm,$(LOCAL_SRC_FILES))
mm_objects := $(addprefix $(build_dir)/,$(mm_sources:.mm=.o))
m_sources := $(filter %.m,$(LOCAL_SRC_FILES))
m_objects := $(addprefix $(build_dir)/,$(m_sources:.m=.o))
cpp_sources := $(filter %.cpp,$(LOCAL_SRC_FILES))
cpp_objects := $(addprefix $(build_dir)/,$(cpp_sources:.cpp=.o))
@ -73,6 +79,8 @@ S_sources := $(filter %.S,$(LOCAL_SRC_FILES))
S_objects := $(addprefix $(build_dir)/,$(S_sources:.S=.o))
all_objects := \
$(mm_objects) \
$(m_objects) \
$(cpp_objects) \
$(cxx_objects) \
$(c_objects) \
@ -173,6 +181,20 @@ LOCAL_CFLAGS += $(foreach __mod,$(all_depends), \
## Actual rules.
###############################################################################
# mm files
ifneq ("$(strip $(mm_objects))","")
$(mm_objects): $(build_dir)/%.o: $(LOCAL_PATH)/%.mm
$(transform-mm-to-o)
-include $(mm_objects:%.o=%.d)
endif
# m files
ifneq ("$(strip $(m_objects))","")
$(m_objects): $(build_dir)/%.o: $(LOCAL_PATH)/%.m
$(transform-m-to-o)
-include $(m_objects:%.o=%.d)
endif
# cpp files
ifneq ("$(strip $(cpp_objects))","")
$(cpp_objects): $(build_dir)/%.o: $(LOCAL_PATH)/%.cpp