summaryrefslogtreecommitdiff
path: root/build/core/build-modules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'build/core/build-modules.mk')
-rw-r--r--build/core/build-modules.mk39
1 files changed, 26 insertions, 13 deletions
diff --git a/build/core/build-modules.mk b/build/core/build-modules.mk
index d3e3ae7..cac190c 100644
--- a/build/core/build-modules.mk
+++ b/build/core/build-modules.mk
@@ -1,32 +1,44 @@
-# TODO(Nowar): Make codes below work.
+# TODO(Nowar): Make below rules work.
#
# $1: c source file name
-# $2: bc file name
-# $3: LOCAL_MODULE
+# $2: LOCAL_MODULE
#
define compile-c-to-bc
-$(info $(BITCODE_CC) $(BITCODE_MODULE.$(3).PATH)/$(1) $(BITCODE_MODULE.$(3).CFLAGS) -o $(GDK_PROJECT_OBJ)/$(2))
+$(info $(BITCODE_CC) $(BITCODE_MODULE.$(2).PATH)/$(1)\
+ $(BITCODE_MODULE.$(2).CFLAGS) $(BITCODE_CFLAGS)\
+ -I$(BITCODE_MODULE.$(2).PATH)\
+ -c -o $(GDK_PROJECT_OBJ)/$(2)/$(1:%.c=%.bc))
endef
#
# $1: c++ source file name
-# $2: bc file name
-# $3: LOCAL_MODULE
+# $2: LOCAL_MODULE
#
define compile-cpp-to-bc
-$(info $(BITCODE_CPP) $(BITCODE_MODULE,$(3).PATH)/$(1) $(BITCODE_MODULE.$(3).CPPFLAGS) -o $(GDK_PROJECT_OBJ)/$(2))
+$(info $(BITCODE_CPP) $(BITCODE_MODULE.$(2).PATH)/$(1)\
+ $(BITCODE_MODULE.$(2).CPPFLAGS) $(BITCODE_CPPFLAGS)\
+ -I$(BITCODE_MODULE.$(2).PATH)\
+ -c -o $(GDK_PROJECT_OBJ)/$(2)/$(1:%.cpp=%.bc))
+endef
+
+#
+# $1: source file names
+# $2: LOCAL_MODULE
+#
+define cmd-build-c-source
+$(foreach gdk_source, $(1),\
+ $(call compile-c-to-bc,$(gdk_source),$(2))\
+)
endef
#
# $1: source file names
# $2: LOCAL_MODULE
#
-# TODO(Nowar): How could we separate C++ from C source?
-# FIXME(Nowar): Handle C++ case
-define cmd-build-source
+define cmd-build-cpp-source
$(foreach gdk_source, $(1),\
- $(call compile-c-to-bc,$(gdk_source),$(gdk_source:%.c=%.bc),$(2))\
+ $(call compile-cpp-to-bc,$(gdk_source),$(2))\
)
endef
@@ -35,10 +47,11 @@ endef
# $2: LOCAL_MODULE
#
define cmd-link-bc
-$(info $(BITCODE_LD) $(patsubst %.c,$(GDK_PROJECT_OBJ)/%.bc,$(1)) -o $(GDK_PROJECT_OUT)/lib$(2).bc)
+$(info $(BITCODE_LD) $(GDK_PROJECT_OBJ)/$(2)/*.bc -o $(GDK_PROJECT_OUT)/lib$(2).bc)
endef
$(foreach gdk_module, $(ALL_BITCODE_MODULES),\
- $(call cmd-build-source,$(BITCODE_MODULE.$(gdk_module).SRC_FILES),$(gdk_module))\
+ $(call cmd-build-c-source,$(filter %.c,$(BITCODE_MODULE.$(gdk_module).SRC_FILES)),$(gdk_module))\
+ $(call cmd-build-cpp-source,$(filter %.cpp,$(BITCODE_MODULE.$(gdk_module).SRC_FILES)),$(gdk_module))\
$(call cmd-link-bc,$(BITCODE_MODULE.$(gdk_module).SRC_FILES),$(gdk_module))\
)