From 5dbb529de9f84e731e26b83525f3f599f1914aca Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Thu, 14 May 2009 16:00:09 +0200 Subject: [PATCH] Allow the build system to build Objective-C sources. This is needed to move our modified SDL sources under external/qemu/distrib. As per joeo's request, this change also enables target Objective-C compilation, letting it error at build time. --- core/binary.mk | 13 +++++++++++++ core/definitions.mk | 30 ++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/core/binary.mk b/core/binary.mk index b64bc81bd..ddcdc6f59 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -211,6 +211,19 @@ $(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(PR -include $(c_objects:%.o=%.P) endif +########################################################### +## ObjC: Compile .m files to .o +########################################################### + +objc_sources := $(filter %.m,$(LOCAL_SRC_FILES)) +objc_objects := $(addprefix $(intermediates)/,$(objc_sources:.m=.o)) + +ifneq ($(strip $(objc_objects)),) +$(objc_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.m $(yacc_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES) + $(transform-$(PRIVATE_HOST)m-to-o) +-include $(objc_objects:%.o=%.P) +endif + ########################################################### ## AS: Compile .S files to .o. ########################################################### diff --git a/core/definitions.mk b/core/definitions.mk index 5631fb99f..069855d8f 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -793,6 +793,22 @@ $(transform-s-to-o-no-deps) $(hide) $(transform-d-to-p) endef +########################################################### +## Commands for running gcc to compile an Objective-C file +## This should never happen for target builds but this +## will error at build time. +########################################################### + +define transform-m-to-o-no-deps +@echo "target ObjC: $(PRIVATE_MODULE) <= $<" +$(call transform-c-or-s-to-o-no-deps) +endef + +define transform-m-to-o +$(transform-m-to-o-no-deps) +$(hide) $(transform-d-to-p) +endef + ########################################################### ## Commands for running gcc to compile a host C++ file ########################################################### @@ -870,6 +886,20 @@ $(transform-host-s-to-o-no-deps) $(transform-d-to-p) endef +########################################################### +## Commands for running gcc to compile a host Objective-C file +########################################################### + +define transform-host-m-to-o-no-deps +@echo "host ObjC: $(PRIVATE_MODULE) <= $<" +$(call transform-host-c-or-s-to-o-no-deps) +endef + +define tranform-host-m-to-o +$(transform-host-m-to-o-no-deps) +$(transform-d-to-p) +endef + ########################################################### ## Commands for running ar ###########################################################