AI 148202: Applying changes to build_new_device.jd originally made by Reena in CL 148100. I made her edits by hand. The problem is that I moved all content files from docs to docs/guide and she edited the version in docs (which no longer exists).

Automated import of CL 148202
This commit is contained in:
David Warren
2009-05-01 14:22:07 -07:00
committed by The Android Open Source Project
parent 2b15cf1abf
commit 01a62eeda8

View File

@@ -13,15 +13,15 @@ pdk.version=1.0
<p>The directions below describe how to configure make files for new mobile devices and products.</p>
<ol>
<li>Create a company directory in <code>//device/partner</code>.<br/>
<li>Create a company directory in <code>//vendor/</code>.<br/>
<pre class="prettyprint">
mkdir device/partner/&lt;company_name&gt;</pre></li>
mkdir vendor/&lt;company_name&gt;</pre></li>
<li>Create a <code>products</code> directory beneath the company directory you created in step 1.<BR>
<pre class="prettyprint">
mkdir device/partner/&lt;company_name&gt;/products/</pre></li>
<li>Create a product-specific make file, called <code>device/partner/&lt;company_name&gt;/products/&lt;first_product_name&gt;.mk</code>, that includes the following code:<BR>
mkdir vendor/&lt;company_name&gt;/products/</pre></li>
<li>Create a product-specific make file, called <code>vendor/&lt;company_name&gt;/products/&lt;first_product_name&gt;.mk</code>, that includes the following code:<BR>
<pre class="prettyprint">
$(call inherit-product, target/product/generic.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
#
# Overrides
PRODUCT_NAME := &lt;first_product_name&gt;
@@ -43,8 +43,8 @@ pdk.version=1.0
$(LOCAL_DIR)/first_product_name.mk \</pre></li>
<li>Create a board-specific directory beneath your company directory that matches the <code>PRODUCT_DEVICE</code> variable <code>&lt;board_name&gt;</code> referenced in the product-specific make file above. This will include a make file that gets accessed by any product using this board.<BR>
<pre class="prettyprint">
mkdir device/partner/&lt;company_name&gt;/&lt;board_name&gt;</pre></li>
<li>Create a <code>product_config.mk</code> file in the directory created in the previous step (<code>device/partner/&lt;company_name&gt;/&lt;board_name&gt;</code>). If this directory does not include a <code>product_config.mk</code> file, the build will fail.<BR>
mkdir vendor/&lt;company_name&gt;/&lt;board_name&gt;</pre></li>
<li>Create a <code>product_config.mk</code> file in the directory created in the previous step (<code>vendor/&lt;company_name&gt;/&lt;board_name&gt;</code>). If this directory does not include a <code>product_config.mk</code> file, the build will fail.<BR>
<pre class="prettyprint">
# These definitions override the defaults in config/config.make for &lt;board_name&gt;
#
@@ -52,7 +52,7 @@ pdk.version=1.0
# TARGET_HARDWARE_3D := false
#
TARGET_USE_GENERIC_AUDIO := true</pre></li>
<li>If you wish to modify system properties, create a <code>system.prop</code> file in your <code>&lt;board_name&gt;</code> directory(<code>device/partner/&lt;company_name&gt;/&lt;board_name&gt;</code>).<BR>
<li>If you wish to modify system properties, create a <code>system.prop</code> file in your <code>&lt;board_name&gt;</code> directory(<code>vendor/&lt;company_name&gt;/&lt;board_name&gt;</code>).<BR>
<pre class="prettyprint">
# system.prop for <board_name>
# This overrides settings in the products/generic/system.prop file
@@ -64,7 +64,7 @@ pdk.version=1.0
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/first_product_name.mk \
$(LOCAL_DIR)/second_product_name.mk</pre></li>
<li><code>device/partner/&lt;company_name&gt;/&lt;board_name&gt;</code> must include an <code>Android.mk</code> file with at least the following code:<BR><BR>
<li><code>vendor/&lt;company_name&gt;/&lt;board_name&gt;</code> must include an <code>Android.mk</code> file with at least the following code:<BR><BR>
<pre class="prettyprint">
# make file for new hardware <board_name> from <company_name>
#
@@ -82,15 +82,15 @@ pdk.version=1.0
#
# no boot loader, so we don't need any of that stuff..
#
LOCAL_PATH := partner/&lt;company_name&gt;/&lt;board_name&gt;
LOCAL_PATH := vendor/&lt;company_name&gt;/&lt;board_name&gt;
#
include $(CLEAR_VARS)
#
# include more board specific stuff here? Such as Audio parameters.
#</pre></li>
<li>To create a second product for the same board, create a second product-specific make file called <code>device/partner/company_name/products/&lt;second_product_name&gt;.mk</code> that includes:<BR>
<li>To create a second product for the same board, create a second product-specific make file called <code>vendor/company_name/products/&lt;second_product_name&gt;.mk</code> that includes:<BR>
<pre class="prettyprint">
$(call inherit-product, partner/google/products/generic.mk)
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
#
# Overrides
PRODUCT_NAME := &lt;second_product_name&gt;
@@ -98,12 +98,10 @@ pdk.version=1.0
</ol>
<p>By now, you should have two new products, called <code>&lt;first_product_name&gt;</code> and <code>&lt;second_product_name&gt;</code> associated with <code>&lt;company_name&gt;</code>. To verify that a product is properly configured (<code>&lt;first_product_name&gt;</code>, for example), execute the following:<BR>
<pre class="prettyprint">
cd device
. ./envsetup.sh
partner_setup &lt;first_product_name&gt;
. build/envsetup.sh
make PRODUCT-&lt;first_product_name&gt;-user
</pre>
<p>You should find new build binaries located in <code>device/out/target/product/&lt;board_name&gt;</code>.
<p>You should find new build binaries located in <code>/out/target/product/&lt;board_name&gt;</code>.
<a name="androidBuildNewFileTree"></a><h2>New Product File Tree</h2>
@@ -127,4 +125,4 @@ pdk.version=1.0
</ul>
</ul>
</ul>
</p>
</p>