endif
 
 GREYBUS_MODULE_OUT_PATH := $(PRODUCT_OUT)/root/lib/modules
+GREYBUS_CC_PREFIX := $(shell cd `dirname $(TARGET_TOOLS_PREFIX)` && pwd)/$(shell basename $(TARGET_TOOLS_PREFIX))
 
 include $(CLEAR_VARS)
 GREYBUS_SRC_PATH := $(ANDROID_BUILD_TOP)/external/greybus/
 include $(BUILD_PREBUILT)
 
 KDIRARG := KERNELDIR="${ANDROID_PRODUCT_OUT}/obj/kernel"
-ifneq ($(ANDROID_64),)
-  ARCHARG := ARCH=arm64
-  FLAGARG := EXTRA_CFLAGS+=-fno-pic
-else
-  ARCHARG := ARCH=arm
-  FLAGARG := EXTRA_CFLAGS+=-fno-pic
-endif
+ARCHARG := ARCH=$(TARGET_ARCH)
+FLAGARG := EXTRA_CFLAGS+=-fno-pic
 ARGS := $(KDIRARG) $(ARCHARG) $(FLAGARG)
 
-build-greybus: android_kernel
+build-greybus: $(INSTALLED_KERNEL_TARGET)
        make clean -C $(GREYBUS_SRC_PATH)
        cd $(GREYBUS_SRC_PATH) &&\
-       $(MAKE) -j$(MAKE_JOBS) CROSS_COMPILE=$(KERNEL_TOOLS_PREFIX) $(ARGS)
+       $(MAKE) -j$(MAKE_JOBS) CROSS_COMPILE=$(GREYBUS_CC_PREFIX) $(ARGS)
        mkdir -p $(GREYBUS_MODULE_OUT_PATH)
        ko=`find $(GREYBUS_SRC_PATH) -type f -name "*.ko"`;\
        for i in $$ko; do $(KERNEL_TOOLCHAIN_PATH)strip --strip-unneeded $$i;\