[Tutorial] Compile ICS on Ubuntu

Search This thread

djsubtronic

Senior Member
Jun 16, 2010
2,512
586
After trying to rebulid from scratch, getting the device repos, I get this error on "lunch"

Code:
Which would you like? [full-eng] 7
build/core/config.mk:145: *** No config file found for TARGET_DEVICE device_ville. Stop.

** Don't have a product spec for: 'device_ville'
** Do you have the right repo manifest?

Any ideas?
 

paxChristos

Retired Forum Moderator
Aug 27, 2011
2,032
1,779
37
West Bend
After trying to rebulid from scratch, getting the device repos, I get this error on "lunch"

Code:
Which would you like? [full-eng] 7
build/core/config.mk:145: *** No config file found for TARGET_DEVICE device_ville. Stop.

** Don't have a product spec for: 'device_ville'
** Do you have the right repo manifest?

Any ideas?

Check your cm.mk file in your device tree, it's not matching the call in lunch

Sent from my R800x using Tapatalk 2
 

djsubtronic

Senior Member
Jun 16, 2010
2,512
586
Check your cm.mk file in your device tree, it's not matching the call in lunch

Sent from my R800x using Tapatalk 2

I changed .../ville/cm.mk as so:

Code:
# Device naming
PRODUCT_DEVICE := ville
PRODUCT_NAME := device_ville
PRODUCT_BRAND := htc
PRODUCT_MODEL := HTC One S
PRODUCT_MANUFACTURER := HTC

But still get the same error...

EDIT: silly typing errors.... solved it now!

Thank you

---------- Post added at 05:15 AM ---------- Previous post was at 05:03 AM ----------

My errors just keep getting more and more colourful

Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.1.1
TARGET_PRODUCT=device_ville
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-2.6.32-38-generic-x86_64-with-Ubuntu-10.04-lucid
HOST_BUILD_TYPE=release
BUILD_ID=JRO03C
OUT_DIR=out
============================================
frameworks/base/Android.mk:331: frameworks/base/../../system/media/mca/Docs.mk: No such file or directory
build/core/base_rules.mk:79: *** Module name: keystore
build/core/base_rules.mk:80: *** Makefile location: frameworks/base/cmds/keystore
build/core/base_rules.mk:81: * 
build/core/base_rules.mk:82: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:83: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:84: * 
build/core/base_rules.mk:85: *     optional, debug, eng, tests, samples
build/core/base_rules.mk:86: * 
build/core/base_rules.mk:87: * If the module is expected to be in all builds
build/core/base_rules.mk:88: * of a product, then it should use the
build/core/base_rules.mk:89: * "optional" tag: 
build/core/base_rules.mk:90: * 
build/core/base_rules.mk:91: *    Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:92: *    Android.mk for the affected module, and add
build/core/base_rules.mk:93: *    the LOCAL_MODULE value for that component
build/core/base_rules.mk:94: *    into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:95: *    makefile(s) where it's necessary, if
build/core/base_rules.mk:96: *    appropriate.
build/core/base_rules.mk:97: * 
build/core/base_rules.mk:98: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:99: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:100: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:101: * build/target/product/core.mk
build/core/base_rules.mk:102: * 
build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.

Any ideas?
 
Last edited:

dastin1015

Inactive Recognized Developer
I changed .../ville/cm.mk as so:

Code:
# Device naming
PRODUCT_DEVICE := ville
PRODUCT_NAME := device_ville
PRODUCT_BRAND := htc
PRODUCT_MODEL := HTC One S
PRODUCT_MANUFACTURER := HTC

But still get the same error...

EDIT: silly typing errors.... solved it now!

Thank you

---------- Post added at 05:15 AM ---------- Previous post was at 05:03 AM ----------

My errors just keep getting more and more colourful

Code:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.1.1
TARGET_PRODUCT=device_ville
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-2.6.32-38-generic-x86_64-with-Ubuntu-10.04-lucid
HOST_BUILD_TYPE=release
BUILD_ID=JRO03C
OUT_DIR=out
============================================
frameworks/base/Android.mk:331: frameworks/base/../../system/media/mca/Docs.mk: No such file or directory
build/core/base_rules.mk:79: *** Module name: keystore
build/core/base_rules.mk:80: *** Makefile location: frameworks/base/cmds/keystore
build/core/base_rules.mk:81: * 
build/core/base_rules.mk:82: * Each module must use a LOCAL_MODULE_TAGS in its
build/core/base_rules.mk:83: * Android.mk. Possible tags declared by a module:
build/core/base_rules.mk:84: * 
build/core/base_rules.mk:85: *     optional, debug, eng, tests, samples
build/core/base_rules.mk:86: * 
build/core/base_rules.mk:87: * If the module is expected to be in all builds
build/core/base_rules.mk:88: * of a product, then it should use the
build/core/base_rules.mk:89: * "optional" tag: 
build/core/base_rules.mk:90: * 
build/core/base_rules.mk:91: *    Add "LOCAL_MODULE_TAGS := optional" in the
build/core/base_rules.mk:92: *    Android.mk for the affected module, and add
build/core/base_rules.mk:93: *    the LOCAL_MODULE value for that component
build/core/base_rules.mk:94: *    into the PRODUCT_PACKAGES section of product
build/core/base_rules.mk:95: *    makefile(s) where it's necessary, if
build/core/base_rules.mk:96: *    appropriate.
build/core/base_rules.mk:97: * 
build/core/base_rules.mk:98: * If the component should be in EVERY build of ALL
build/core/base_rules.mk:99: * products, then add its LOCAL_MODULE value to the
build/core/base_rules.mk:100: * PRODUCT_PACKAGES section of
build/core/base_rules.mk:101: * build/target/product/core.mk
build/core/base_rules.mk:102: * 
build/core/base_rules.mk:103: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.

Any ideas?

Add this line:
Code:
LOCAL_MODULE_TAGS := optional
to the Android.mk in this directory frameworks/base/cmds/keystore
 

paxChristos

Retired Forum Moderator
Aug 27, 2011
2,032
1,779
37
West Bend
Try putting this in your Android.mk:
Code:
#
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := keystore.cpp
LOCAL_C_INCLUDES := external/openssl/include
LOCAL_SHARED_LIBRARIES := libcutils libcrypto
LOCAL_MODULE:= keystore
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := keystore_cli.cpp
LOCAL_C_INCLUDES := external/openssl/include
LOCAL_SHARED_LIBRARIES := libcutils libcrypto
LOCAL_MODULE:= keystore_cli
LOCAL_MODULE_TAGS := debug
include $(BUILD_EXECUTABLE)

If you were missing that file (i just copy/pasted outta mine) you probably need to re-sync & make clobber before you rebuild.

Pax
 
Last edited:
  • Like
Reactions: djsubtronic
L

LastStandingDroid

Guest
Dear Dustin sorry to interupt your thread im going to write some fixes ^^

Code:
make: *** No rule to make target `out/target/product/galaxys2/obj/SHARED_LIBRARIES/libmediayamahaservice_intermediates/export_includes', needed by `out/target/product/galaxys2/obj/EXECUTABLES/mediaserver_intermediates

This can be fixed by

Code:
mkdir -p out/target/product/galaxys2/obj/SHARED_LIBRARIES/libmediayamahaservice_intermediates/

touch out/target/product/galaxys2/obj/SHARED_LIBRARIES/libmediayamahaservice_intermediates/export_includes

i also had the problem when

Code:
[B]make: *** No rule to make target `out/target/product/galaxys2/obj/SHARED_LIBRARIES/libTvOut_intermediates/export_includes', needed by `out/target/product/galaxys2/obj/EXECUTABLES/mediaserver_intermediates[/B]

and it was fixed by

Code:
mkdir -p out/target/product/galaxys2/obj/SHARED_LIBRARIES/libLibTvOut_intermediates/

touch out/target/product/galaxys2/obj/SHARED_LIBRARIES/libTvOut_intermediates/export_includes

Cheers
 

jmullan

Member
Feb 23, 2011
12
3
java jdk6 installation fix

[/quote]
Also my Java is openJDK (1.6.0.24) as i cannot install the jdk6 from command promt+
[/quote>]

Okay Solved it. Some dependencies were not installed i think.

How do I test the build with the emulater (sdk) ?[/QUOTE]

I run into the java jdk6 problem also following to the letter the initializing a build enviornment on the dev site but here is how i get it to install from apt without a problem... follow the instructions as per the guide:

Java 6: for Gingerbread and newer

$ sudo add-apt-repository < LINK GOES HERE >
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

Now if you get the error there is no package : Next:

go back and add the repository link for building earlier builds and issue the first and second commands from this section:

Java 5: for Froyo and older

(1) $ sudo add-apt-repository <LINK GOES HERE>

(2) $ sudo apt-get update

Now try again installing JDK 6

$ sudo apt-get install sun-java6-jdk

This works for me on both UBUNTU 10.4 and 12.04 and on Kubuntu 12.10

sorry, i cant post links (Nuts) so remove/do the obvious for this to work

Hava a nice day :)

Alphacode " A life ???? where do i download one ?? "
 
  • Like
Reactions: ZaySk

rycus86

Senior Member
Aug 20, 2010
83
26
Hi!

I'm trying to modify the sources of the frameworks/base project in CM10.
I modified the Notification.Builder class (added a new method) and then I'd like to use it in some packages/apps/xx projects.
I'm using Eclipse to modify the sources and it compiles these changes without errors.
If I run the build from console (. build/envsetup.sh && brunch galaxysmtd) it fails saying that a class in the packages/apps/Email project has 'cannot find symbol' java error, e.g. it doesn't see the modification. In the packages/apps/Calendar project I used the very same method and it builds fine.

Tried make update-api, make sdk but these didn't help.
Can anyone help me? I don't know what I'm missing...

Thanks!
 

fireman928

Senior Member
Jul 19, 2012
74
4
im having a hard time with finding the device tree for motorola razr xt912 i did all the instructions no problem up the the add a device part. from there down im stuck been searching and trying to find stuff but cant really find anything or maybe im just looking at or for the wrong stuff. help me out or lead in the right direction. thanks
 

rycus86

Senior Member
Aug 20, 2010
83
26
Hi!

I'm trying to modify the sources of the frameworks/base project in CM10.
I modified the Notification.Builder class (added a new method) and then I'd like to use it in some packages/apps/xx projects.
I'm using Eclipse to modify the sources and it compiles these changes without errors.
If I run the build from console (. build/envsetup.sh && brunch galaxysmtd) it fails saying that a class in the packages/apps/Email project has 'cannot find symbol' java error, e.g. it doesn't see the modification. In the packages/apps/Calendar project I used the very same method and it builds fine.

Tried make update-api, make sdk but these didn't help.
Can anyone help me? I don't know what I'm missing...

Thanks!

I'd just like to share the result of this investigation (if anyone interested).
After trying like a hundred combinations I finally found what caused the problem.
The Email package was using an 'older' framework, the #16 to be exact (yep, that's jellybean) but the current/most recent version to compile is 'current'.
So changing this line in Email/Android.mk did the trick:
LOCAL_SDK_VERSION := current # was 16 before

Hope this helps others who would want to change the framework in the future. :)
 
  • Like
Reactions: justlovejoy

ZaySk

Senior Member
Dec 26, 2011
381
414
30
Whitehorse, Yukon.
Sorry for bringing up an old thread, but it's an ICS question and I didn't think it warranted it's own thread.

I'm going to try building CM9 from source next month once my data cap resets, and I'm currently preparing my Ubuntu 10.04 enviroment on a VM. My system details are -

Intel core i3 2.4GHz Dual/HD3000 graphics
6GB RAM
500GB HDD.

The core i3 supports hyper threading, allowing a total of 4 virtualized cores (if I understand hyperthreading correctly) and I allocated 2 to the VM along with 2 1/2 GB of RAM and 100GB of HDD space. I've been using the kitchen to update my Sense ROM and everything seems to run smooth and fine. But can I compile CM9 source with my hardware specs and allocated specs to the VM?

I saw this on source.android.com

Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.

Do I really need 16GB of RAM to build CM9 from source?

Should I just repartition the HDD and install Ubuntu natively? Problem is, it's my mom's laptop, mine died. I'd prefer to keep using the VM if possible.
 
Last edited:

lithid-cm

Inactive Recognized Developer
Jul 1, 2010
3,189
2,956
Cleveland
Sorry for bringing up an old thread, but it's an ICS question and I didn't think it warranted it's own thread.

I'm going to try building CM9 from source next month once my data cap resets, and I'm currently preparing my Ubuntu 10.04 enviroment on a VM. My system details are -

Intel core i3 2.4GHz Dual/HD3000 graphics
6GB RAM
500GB HDD.

The core i3 supports hyper threading, allowing a total of 4 virtualized cores (if I understand hyperthreading correctly) and I allocated 2 to the VM along with 2 1/2 GB of RAM and 100GB of HDD space. I've been using the kitchen to update my Sense ROM and everything seems to run smooth and fine. But can I compile CM9 source with my hardware specs and allocated specs to the VM?

I saw this on source.android.com

Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.

Do I really need 16GB of RAM to build CM9 from source?

Should I just repartition the HDD and install Ubuntu natively? Problem is, it's my mom's laptop, mine died. I'd prefer to keep using the VM if possible.
This isn't really ICS specific. Quick answer no you don't. I use a VM with 6 gigs dedicated. I have not tried any less. I am pretty sure 4 would be fine as well. Anything less, you might have trouble.
 
  • Like
Reactions: ZaySk

ZaySk

Senior Member
Dec 26, 2011
381
414
30
Whitehorse, Yukon.
This isn't really ICS specific. Quick answer no you don't. I use a VM with 6 gigs dedicated. I have not tried any less. I am pretty sure 4 would be fine as well. Anything less, you might have trouble.

Yea, you're right, it was more about getting the proper specs set up I guess. Hmm I'll try with 3, since I read your not supposed to give the VM more than half your total RAM. If that has errors then I'll install Ubuntu natively. Thanks for the answer.

Edit: Hmm, with just Chrome open, Windows 7 only uses a little over a gig of RAM. If I put windows into a more conservative mode(no aero etc) and close all programs, maybe I can get away with giving the VM 4GB's. Would that cause any problems, like making the computer crash if windows doesn't have access to enough RAM? Could that be mitigated by simply not using windows for any tasks, and just used Ubuntu?
 
Last edited:

lithid-cm

Inactive Recognized Developer
Jul 1, 2010
3,189
2,956
Cleveland
Yea, you're right, it was more about getting the proper specs set up I guess. Hmm I'll try with 3, since I read your not supposed to give the VM more than half your total RAM. If that has errors then I'll install Ubuntu natively. Thanks for the answer.

Edit: Hmm, with just Chrome open, Windows 7 only uses a little over a gig of RAM. If I put windows into a more conservative mode(no aero etc) and close all programs, maybe I can get away with giving the VM 4GB's. Would that cause any problems, like making the computer crash if windows doesn't have access to enough RAM? Could that be mitigated by simply not using windows for any tasks, and just used Ubuntu?
I have 8 gigs of ram, I run multiple other windows programs as well as chrome. I dedicate 6 gigs of my 8 to the VM I compile everything just fine without issue. I don't have memory issues with giving windows 2 gigs. Windows 8 recommends at least 2 gigs for 64bit. I have yet to see a problem with only using 2 gigs for the os and 6 to the vm.
 
  • Like
Reactions: ZaySk

ZaySk

Senior Member
Dec 26, 2011
381
414
30
Whitehorse, Yukon.
I have 8 gigs of ram, I run multiple other windows programs as well as chrome. I dedicate 6 gigs of my 8 to the VM I compile everything just fine without issue. I don't have memory issues with giving windows 2 gigs. Windows 8 recommends at least 2 gigs for 64bit. I have yet to see a problem with only using 2 gigs for the os and 6 to the vm.

Very useful information, thanks man. Comparing our data means that I should be able to get away with giving the VM 4GBs no problem. I've bitten the bullet though, and did a full proper dual boot with Windows 7 and Linux Mint 13, which should solve all my problems. Thanks for your help, I really appreciate it. :highfive:
 

Top Liked Posts

  • There are no posts matching your filters.
  • 43
    To compile Ice Cream Sandwich on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.

    This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.

    Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

    1) You need the following:
    -JDK 6 if you wish to build Ice Cream Sandwich. You can download it from java.sun.com. Or:
    Code:
    $ sudo apt-get install sun-java6-jdk

    -Python 2.4 -- 2.7, which you can download from python.org. Or:
    Code:
    $ sudo apt-get install python

    -Git 1.7 or newer. You can find it at git-scm.com. Or:
    Code:
    $ sudo apt-get install git-core

    2) Install required packages. 64-bit (recommended)
    Code:
    $ sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
      x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
      libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
      libxml2-utils

    On newer versions of Ubuntu such as 11.10 you may need to do the following:
    Code:
    $ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

    3) Configure your USB.
    Code:
    $ gksudo gedit /etc/udev/rules.d/51-android.rules

    Inside of this blank text file insert:
    Code:
    #Acer
    SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
    
    #ASUS
    SUBSYSTEM=="usb", ATTR{idVendor}=="0b05", MODE="0666"
    
    #Dell
    SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"
    
    #Foxconn
    SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"
    
    #Garmin-Asus
    SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"
    
    #Google
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
    
    #HTC
    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
    
    #Huawei
    SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"
    
    #K-Touch
    SUBSYSTEM=="usb", ATTR{idVendor}=="24e3", MODE="0666"
    
    #KT Tech
    SUBSYSTEM=="usb", ATTR{idVendor}=="2116", MODE="0666"
    
    #Kyocera
    SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"
    
    #Lenevo
    SUBSYSTEM=="usb", ATTR{idVendor}=="17EF", MODE="0666"
    
    #LG
    SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
    
    #Motorola
    SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
    
    #NEC
    SUBSYSTEM=="usb", ATTR{idVendor}=="0409", MODE="0666"
    
    #Nook
    SUBSYSTEM=="usb", ATTR{idVendor}=="2080", MODE="0666"
    
    #Nvidia
    SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"
    
    #OTGV
    SUBSYSTEM=="usb", ATTR{idVendor}=="2257", MODE="0666"
    
    #Pantech
    SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"
    
    #Philips
    SUBSYSTEM=="usb", ATTR{idVendor}=="0471", MODE="0666"
    
    #PMC-Sierra
    SUBSYSTEM=="usb", ATTR{idVendor}=="04da", MODE="0666"
    
    #Qualcomm
    SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666"
    
    #SK Telesys
    SUBSYSTEM=="usb", ATTR{idVendor}=="1f53", MODE="0666"
    
    #Samsung
    SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"
    
    #Sharp
    SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"
    
    #Sony Ericsson
    SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"
    
    #Toshiba
    SUBSYSTEM=="usb", ATTR{idVendor}=="0930", MODE="0666"
    
    #ZTE
    SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"

    4) Save the file and close it and then issue this command:
    Code:
    $ sudo chmod a+r /etc/udev/rules.d/51-android.rules

    5) Install the repo:
    Code:
    $ mkdir ~/bin
    $ PATH=~/bin:$PATH
    $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo

    6) Initialize the repo:
    Code:
    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

    7) When prompted, enter your real name and email address.

    8) Gather the files:
    Code:
    $ repo sync

    9) Compiling:
    Code:
    $ source build/envsetup.sh

    Or:
    Code:
    $ . build/envsetup.sh

    10) Issue:
    Code:
    $ lunch

    11) Pick your poison.

    12) Now issue:
    Code:
    $ make -j1


    ~How To Add A Device To The List~

    1) Find the github for your device you wish to add. (For me it is the HTC Hero CDMA)

    2) Now navigate to the location you are going clone the device tree to:
    Code:
    $ cd WORKING_DIRECTORY/device
    $ mkdir htc

    3) Clone the github device tree from remote to local: (The heroc would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [passion], Nexus S [crespo], Motorola Droid [sholes], HTC Incredible [inc], etc.)
    Code:
    $ git clone git://github.com/TeamICS/android_device_htc_heroc.git heroc

    4) Now navigate into the folder:
    Code:
    $ cd heroc

    5) Connect phone to computer and make sure USB debugging is enabled and you have adb set up.

    6) Extract Device Proprietary Files:
    Code:
    $ ./extract-files.sh

    7) Navigate back to your home directory for building:
    Code:
    $ cd ~/WORKING_DIRECTORY

    8) Prepare To Compile:
    Code:
    $ source build/envsetup.sh

    Or:
    Code:
    $ . build/envsetup.sh

    9) Get your list of devices:
    Code:
    $ lunch

    10) Pick your poison.

    11) Now compile:
    Code:
    $ make -j1

    Or for a flashable zip:
    Code:
    $ make -j1 otapackage

    ~NOTE~
    If you are running into issues such as:

    Code:
    Which would you like? [full-eng] 5
    build/core/product_config.mk:209: *** No matches for product "full_shooter".  Stop.
    Device shooter not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
    Repository for shooter not found in the CyanogenMod Github repository list. If this is in error, you may need to manually add it to your local_manifest.xml.
    build/core/product_config.mk:209: *** No matches for product "full_shooter".  Stop.
    
    ** Don't have a product spec for: 'full_shooter'
    ** Do you have the right repo manifest?

    What you need to do is to edit your blob to match the PRODUCT_NAME to the file name. For example with mine I have full_shooter.mk therefore in this file I need to have PRODUCT_NAME to match it. Whatever error it is looking for you just need to change the PRODUCT_NAME line to match what the error shows.
    5
    I'm really sorry for the stupid question, but I can't seem to find the answer for this.

    I'm using Ubuntu 11.10 64bit and I'm trying to get all the dependencies together so I can start playing. I already have all the repos in the default /etc/apt/sources.list enabled and get this feedback when I run
    Code:
     apt-get install lib32readline5-dev

    Code:
    Package lib32readline5-dev is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
      lib32readline-gplv2-dev
    
    E: Package 'lib32readline5-dev' has no installation candidate

    My question is do I have to get the package "lib32readline5-dev" or can I use the replacement package that apt recommends "lib32readline-gplv2-dev".

    This post seems to suggest that it will work but I just wanted to make sure before I cause a huge problem for myself. :)
    http://xdaforums.com/showpost.php?p=18631398&postcount=401

    Also here is the package information from Ubuntu

    http://packages.ubuntu.com/natty/lib32readline5-dev

    http://packages.ubuntu.com/oneiric/lib32readline-gplv2-dev

    they look like they do the same thing from the description.


    Thanks for having patience and understanding with a N00b, and for all the work that you already put into this post, the information on this site is great.
    --Sorrell

    You'd be fine using this:
    Code:
    $ sudo apt-get install lib32readline-gplv2-dev

    I've been compiling without it and I've been fine, but I'm adding now.
    3
    To compile Ice Cream Sandwich on Ubuntu I'm going to first give you steps to set up your computer to get this thing rolling.

    This will NOT make a fully functional ROM, but will give you a place to start. Also I CANNOT fix every error you run into.

    Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.

    1) You need the following:
    -JDK 6 if you wish to build Ice Cream Sandwich. You can download it from java.sun.com. Or:
    Code:
    $ sudo apt-get install sun-java6-jdk

    -Python 2.4 -- 2.7, which you can download from python.org. Or:
    Code:
    $ sudo apt-get install python

    -Git 1.7 or newer. You can find it at git-scm.com. Or:
    Code:
    $ sudo apt-get install git-core

    2) Install required packages. 64-bit (recommended)
    Code:
    $ sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
      x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
      libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
      libxml2-utils

    On newer versions of Ubuntu such as 11.10 you may need to do the following:
    Code:
    $ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so

    3) Configure your USB.
    Code:
    $ gksudo gedit /etc/udev/rules.d/51-android.rules

    Inside of this blank text file insert:
    For all HTC Models:
    Code:
    #Acer
    SUBSYSTEM==usb, SYSFS{idVendor}==0502, MODE=0666
    
    #ASUS
    SUBSYSTEM==usb, SYSFS{idVendor}==0b05, MODE=0666
    
    #Dell
    SUBSYSTEM==usb, SYSFS{idVendor}==413c, MODE=0666
    
    #Foxconn
    SUBSYSTEM==usb, SYSFS{idVendor}==0489, MODE=0666
    
    #Garmin-Asus
    SUBSYSTEM==usb, SYSFS{idVendor}==091E, MODE=0666
    
    #Google
    SUBSYSTEM==usb, SYSFS{idVendor}==18d1, MODE=0666
    
    #HTC
    SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
    
    #Huawei
    SUBSYSTEM==usb, SYSFS{idVendor}==12d1, MODE=0666
    
    #K-Touch
    SUBSYSTEM==usb, SYSFS{idVendor}==24e3, MODE=0666
    
    #KT Tech
    SUBSYSTEM==usb, SYSFS{idVendor}==2116, MODE=0666
    
    #Kyocera
    SUBSYSTEM==usb, SYSFS{idVendor}==0482, MODE=0666
    
    #Lenevo
    SUBSYSTEM==usb, SYSFS{idVendor}==17EF, MODE=0666
    
    #LG
    SUBSYSTEM==usb, SYSFS{idVendor}==1004, MODE=0666
    
    #Motorola
    SUBSYSTEM==usb, SYSFS{idVendor}==22b8, MODE=0666
    
    #NEC
    SUBSYSTEM==usb, SYSFS{idVendor}==0409, MODE=0666
    
    #Nook
    SUBSYSTEM==usb, SYSFS{idVendor}==2080, MODE=0666
    
    #Nvidia
    SUBSYSTEM==usb, SYSFS{idVendor}==0955, MODE=0666
    
    #OTGV
    SUBSYSTEM==usb, SYSFS{idVendor}==2257, MODE=0666
    
    #Pantech
    SUBSYSTEM==usb, SYSFS{idVendor}==10A9, MODE=0666
    
    #Philips
    SUBSYSTEM==usb, SYSFS{idVendor}==0471, MODE=0666
    
    #PMC-Sierra
    SUBSYSTEM==usb, SYSFS{idVendor}==04da, MODE=0666
    
    #Qualcomm
    SUBSYSTEM==usb, SYSFS{idVendor}==05c6, MODE=0666
    
    #SK Telesys
    SUBSYSTEM==usb, SYSFS{idVendor}==1f53, MODE=0666
    
    #Samsung
    SUBSYSTEM==usb, SYSFS{idVendor}==04e8, MODE=0666
    
    #Sharp
    SUBSYSTEM==usb, SYSFS{idVendor}==04dd, MODE=0666
    
    #Sony Ericsson
    SUBSYSTEM==usb, SYSFS{idVendor}==0fce, MODE=0666
    
    #Toshiba
    SUBSYSTEM==usb, SYSFS{idVendor}==0930, MODE=0666
    
    #ZTE
    SUBSYSTEM==usb, SYSFS{idVendor}==19D2, MODE=0666

    4) Save the file and close it and then issue this command:
    Code:
    $ sudo chmod a+r /etc/udev/rules.d/51-android.rules

    5) Install the repo:
    Code:
    $ mkdir ~/bin
    $ PATH=~/bin:$PATH
    $ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
    $ chmod a+x ~/bin/repo

    6) Initialize the repo:
    Code:
    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1

    7) When prompted, please configure Repo with your real name and email address. To use the Gerrit code-review tool, you will need an email address that is connected with a registered Google account. Make sure this is a live address at which you can receive messages. The name that you provide here will show up in attributions for your code submissions.

    8) Gather the files:
    Code:
    $ repo sync

    9) Compiling:
    Code:
    $ source build/envsetup.sh

    Or:
    Code:
    $ . build/envsetup.sh

    10) Issue:
    Code:
    $ lunch

    11) Pick your poison.

    12) Now issue:
    Code:
    $ make

    Please note that you have already selected your build target with lunch, and it is unlikely at best to run on a different target than it was built for.


    ~How To Add A Device To The List~

    1) Find the github for your device you wish to add. (For me it is the HTC Hero CDMA)

    2) Now navigate to the location you are going clone the device tree to:
    Code:
    $ cd WORKING_DIRECTORY/device
    $ mkdir htc

    3) Clone the github device tree from remote to local: (The heroc would be whatever you want that folder to be named so make sure it is whatever standard name would be for your device, example: Nexus One [Passion], Nexus S [Crespo], Motorola Droid [Sholes], HTC Incredible [Inc], etc.)
    Code:
    $ git clone git://github.com/TeamICS/android_device_htc_heroc.git heroc

    4) Now navigate into the folder:
    Code:
    $ cd heroc

    5) Connect phone to computer and make sure USB debugging is enabled and you have adb set up.

    6) Extract Device Proprietary Files:
    Code:
    $ ./extract-files.sh

    7) Navigate back to your home directory for building:
    Code:
    $ cd ~/WORKING_DIRECTORY

    8) Prepare To Compile:
    Code:
    $ source build/envsetup.sh

    Or:
    Code:
    $ . build/envsetup.sh

    9) Get your list of devices:
    Code:
    $ lunch

    10) Pick your poison.

    11) Now compile:
    Code:
    $ make -j1

    Or for a flashable zip:
    Code:
    $ make -j1 otapackage

    First, thanks for gathering just about everything I needed in one place, I had gotten pretty far in the process on windows before I decided doing it in windows was a stupid idea..

    When I ran this-- 2) Install required packages. 64-bit (recommended)
    Code:
    $ sudo apt-get install git-core gnupg flex bison gperf build-essential \
      zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
      x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
      libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
      libxml2-utils
    I got back some errors, but I think these things were already loaded, or it was because I hadn't approved the sources..? Not sure, but I'm downloading the source now so it couldn't be THAT important(yet). I'm using ubuntu 11.10 if that helps at all.

    At this point: 9) Compiling:
    Code:
    $ source build/envsetup.sh

    Or:
    Code:
    $ . build/envsetup.sh
    could I have done
    Code:
    $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r
    and just be downloading ICS source? Because at the moment, it looks like it is downloading the source for all of the previous android source too.. isn't a bad thing, but I only made my partition 100gb in size because i was going to just work with ICS.
    I'll probably go through this thread a little more throughly and do some other research while this download is going on-- thanks again for putting this thread together!
    2
    Hello,

    No matter what lunch combo I pick I now get this error about desirec? I would prefer to build full heroc eng but at this point would be happy with anything... I eve resorted to reviewing Dastin's post on building for Heroc since I keep second guessing myself. I do appreciate everyone's kind help trying to teach a 40 year old a new trick!

    Lunch menu... pick a combo:
    1. full-eng
    2. full_x86-eng
    3. vbox_x86-eng
    4. full_heroc-userdebug
    5. full_heroc-eng
    6. full_heroc-user
    7. full_maguro-userdebug
    8. full_tuna-userdebug
    9. full_panda-eng
    10. TeamICS_desirec-eng
    11. TeamICS_heroc-eng

    Which would you like? [full-eng] 11
    build/core/product_config.mk:193: *** _nic.PRODUCTS.[[vendor/TeamICS/products/TeamICS_desirec.mk]]: "device/htc/desirec/full_desirec.mk" does not exist. Stop.

    ** Don't have a product spec for: 'TeamICS_heroc'
    ** Do you have the right repo manifest?


    Cheers

    We (Team ICS) use our own source for building. I'll send you a PM later on how to set it up

    私のEVO 3Dから送信される。
    2
    Well the Vigor (Rezound) was just released, so it is not yet on the CM source. Do I need the kernel source to get what I need?

    You need more than the kernel. You need vendor files as well. Vendor files tell what your phones hardware is and how to build, etc. You usually get this from CM when they support your phone.

    私のエボ3Dから送信される。