diff options
author | Nowar Gu <nowar100@gmail.com> | 2011-07-06 01:20:25 +0800 |
---|---|---|
committer | Nowar Gu <nowar100@gmail.com> | 2011-07-06 01:20:25 +0800 |
commit | 07b01d98ed4d018d7105ecedf4033153db255c1f (patch) | |
tree | 647e2bab7d8d2a239590d2cdf08faf333edc40c3 | |
parent | 10d69bd12edff2f67b44d399e461bfdd960229b9 (diff) | |
download | gdk-07b01d98ed4d018d7105ecedf4033153db255c1f.tar.gz |
Fix compilation rules.
-rw-r--r-- | build/core/build-bitcode.mk | 2 | ||||
-rw-r--r-- | build/core/build-modules.mk | 39 | ||||
-rw-r--r-- | samples/hello-llvm/jni/Android.mk | 2 | ||||
-rw-r--r-- | toolchains/llvm/setup.mk | 21 |
4 files changed, 42 insertions, 22 deletions
diff --git a/build/core/build-bitcode.mk b/build/core/build-bitcode.mk index 9cf6f53..dda8e16 100644 --- a/build/core/build-bitcode.mk +++ b/build/core/build-bitcode.mk @@ -6,4 +6,4 @@ BITCODE_MODULE.$(LOCAL_MODULE).PATH := $(LOCAL_PATH) BITCODE_MODULE.$(LOCAL_MODULE).SRC_FILES := $(LOCAL_SRC_FILES) BITCODE_MODULE.$(LOCAL_MODULE).C_INCLUDES := $(LOCAL_C_INCLUDES) BITCODE_MODULE.$(LOCAL_MODULE).CFLAGS := $(LOCAL_CFLAGS) -BITCODE_MODULE.$(LOCAL_MODULE).CPPFLAGS := $(LOCAL_CPPFLAGS) +BITCODE_MODULE.$(LOCAL_MODULE).CPPFLAGS := $(LOCAL_CFLAGS) $(LOCAL_CPPFLAGS) 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))\ ) diff --git a/samples/hello-llvm/jni/Android.mk b/samples/hello-llvm/jni/Android.mk index 09c5ad1..fab8150 100644 --- a/samples/hello-llvm/jni/Android.mk +++ b/samples/hello-llvm/jni/Android.mk @@ -4,6 +4,6 @@ include $(CLEAR_VARS) LOCAL_MODULE := hellollvmDSO LOCAL_CFLAGS := -D NUM=7788 -LOCAL_SRC_FILES := hello_llvm.c test.c +LOCAL_SRC_FILES := hello_llvm.c test.cpp include $(BUILD_SHARED_LIBRARY) diff --git a/toolchains/llvm/setup.mk b/toolchains/llvm/setup.mk index e99c5b1..6b47802 100644 --- a/toolchains/llvm/setup.mk +++ b/toolchains/llvm/setup.mk @@ -1,14 +1,21 @@ GDK_TOOLCHAIN_PREFIX := $(GDK_TOOLCHAIN_ROOT)/llvm/prebuilt/ -# TODO(Nowar): In future, we use llvm-ndk-cc. -BITCODE_CC := $(GDK_TOOLCHAIN_PREFIX)clang -BITCODE_CFLAGS := -ccc-host-triple armv7-none-linux-gnueabi -emit-llvm +# FIXME(Nowar): In future, we use llvm-ndk-cc and llvm-ndk-link. +#BITCODE_CC := $(GDK_TOOLCHAIN_PREFIX)llvm-ndk-cc +#BITCODE_CFLAGS := +# +#BITCODE_CPP := $(GDK_TOOLCHAIN_PREFIX)llvm-ndk-cc +#BITCODE_CPPFLAGS := $(BITCODE_CFLAGS) -fno-exceptions -fno-rtti -D __cplusplus +# +#BITCODE_LD := $(GDK_TOOLCHAIN_PREFIX)llvm-ndk-link +#BITCODE_LDFLAGS := -BITCODE_CPP := $(GDK_TOOLCHAIN_PREFIX)clang++ +BITCODE_CC := clang +BITCODE_CFLAGS := -ccc-host-triple armv7-none-linux-gnueabi -emit-llvm +BITCODE_CPP := clang++ BITCODE_CPPFLAGS := $(BITCODE_CFLAGS) -fno-exceptions -fno-rtti -D __cplusplus - -BITCODE_LD := $(GDK_TOOLCHAIN_PREFIX)llvm-link -BITCODE_LDFLAGS := +BITCODE_LD := llvm-link +BITCODE_LDFLAGS := BITCODE_C_INCLUDES := \ $(GDK_PLATFORM_ROOT)/usr/include |