diff options
Diffstat (limited to 'build/core/build-modules.mk')
-rw-r--r-- | build/core/build-modules.mk | 39 |
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))\ ) |