问题
I am following this wiki http://wiki.cyanogenmod.org/w/Build_for_bacon to build cyanogenmod 12 for oneplus one. Build fails with the following error.
brunch bacon
including vendor/cm/vendorsetup.sh
Looking for dependencies
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.0.2
CM_VERSION=12-20150505-UNOFFICIAL-bacon
TARGET_PRODUCT=cm_bacon
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.19.0-15-generic-x86_64-with-Ubuntu-15.04-vivid
HOST_BUILD_TYPE=release
BUILD_ID=LRX22G
OUT_DIR=/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out
Error:
build/core/copy_headers.mk:15: warning: overriding recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/obj/include/qcom/display/copybit.h'
build/core/copy_headers.mk:15: warning: ignoring old recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/obj/include/qcom/display/copybit.h'
build/core/copy_headers.mk:15: warning: overriding recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/obj/include/qcom/display/copybit_priv.h'
build/core/copy_headers.mk:15: warning: ignoring old recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/obj/include/qcom/display/copybit_priv.h'
device/oppo/msm8974-common/mkbootimg.mk:21: warning: overriding recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/dt.img'
build/core/generate_extra_images.mk:109: warning: ignoring old recipe for target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/dt.img'
make: *** No rule to make target '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/host/linux-x86/bin/dtbToolCM', needed by '/media/habisravi/04D2DE9BD2DE8FF2/cxx/android/system/out/target/product/bacon/dt.img'. Stop.
make: *** Waiting for unfinished jobs....
回答1:
I faced the same problem, Its due to cyanogenmod not keeping their dependencies updated.
Here is the solution:
1.) Go to your base directory where you have all the code (croot) and run the following commands:
$ mkdir .repo/local_manifests
$ nano .repo/local_manifests/local_manifests.xml (You can name it anything you like)
2.) Paste the following lines into local_manifests.xml:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.1" />
<project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-12.1" />
</manifest>
3.) Follow rest of the guide. You can now also exclude "Extract proprietary blobs" section as all the files extracted from device (heMuppets/proprietary_vendor_oneplus) are already listed in local_manifests.xml
I hope this helps.
回答2:
I found that if I take device/qcom/comon/dbtool
and place it in (in my case) msm8916-common
this fixed the problem. I am not sure why, maybe it only associates qcom
common with the msm
devices, listed next to common idk but this works as a fix, hope it helps :)
来源:https://stackoverflow.com/questions/30057146/cm12-build-failed-for-oneplus-one