A good resource on building CyanogenMod is available at http://wiki.cyanogenmod.org/w/Build_for_bacon, they don't have a guide for CM12, but still has some useful information.
Make sure you use the same operating system as I am using which is Ubuntu. I tried using Debian earlier, but had issues which may have been resulted to me not having enought memory on disk or me interupting the download of source code.
Preparing System for Build
Install the following items via apt-get.
sudo apt-get install bison build-essential curl flex git gnupg gperf libesd0-dev libncurses5-dev libsdl1.2-dev libwxgtk2.8-dev libxml2 libxml2-utils lzop openjdk-6-jdk openjdk-6-jre pngcrush schedtool squashfs-tools xsltproc zip zlib1g-dev g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
Install the latest version of Java's development kit using the following.
sudo apt-get install openjdk-7-jdk
sudo apt-get install android androidsdk-uiautomatorviewer android-copyright android-src-vendor android-emulator android-tools-adb android-headers android-tools-adbd androidsdk-ddms android-tools-fastboot androidsdk-hierarchyviewer android-tools-fsutils androidsdk-traceview
mkdir -p ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo
Now we can get onto grabbing the source code of CM12.
Run the following in terminal.
mkdir ~/cm cd ~/cm repo init -u git://github.com/CyanogenMod/android.git -b cm-12.0 mkdir .repo/local_manifests nano .repo/local_manifests/local_manifests.xml
<?xml version="1.0" encoding="UTF-8"?> <manifest> <project name="CyanogenMod/android_device_oneplus_bacon" path="device/oneplus/bacon" remote="github" /> <project name="CyanogenMod/android_device_qcom_common" path="device/qcom/common" remote="github" /> <project name="CyanogenMod/android_device_oppo_msm8974-common" path="device/oppo/msm8974-common" remote="github" /> <project name="CyanogenMod/android_device_oppo_common" path="device/oppo/common" remote="github" revision="cm-12.0" /> <project name="CyanogenMod/android_kernel_oneplus_msm8974" path="kernel/oneplus/msm8974" remote="github" /> <project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" /> <project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" /> <project name="CyanogenMod/android_frameworks_opt_connectivity" path="frameworks/opt/connectivity" remote="github" revision="cm-11.0" /> </manifest>
repo sync cd vendor/cm ./get-prebuilts cd ../..
Run the following commands to build CyanogenMod.
. build/envsetup.sh breakfast bacon brunch bacon
You can install folllowing: http://forum.xda-developers.com/onep...s-one-t2940091
Re-building to update.
To re-build, you should just be able to run the following (Not yet tested myself, but makes logical sense).
make clobber repo sync cd vendor/cm ./get-prebuilts cd ../.. . build/envsetup.sh brunch bacon
Q: Recieve error: fatal: duplicate path device/qcom/sepolicy in ~/cm/.repo/manifest.xml
A: edit .repo/local_manifests/local_manifests.xml to remove the item which matches the item located in bold.
Q: How big is the repo?
A: 20GB just source code and 40GB when built. Therefore you should aim to have about 60GB free on your system.