- Moved the build variants descriptions into build_system
- Added Makefile stub into sensors.jd as a starting point
- Small cleanup to build_new_device to reference the PRODUCT_* parameters
- Fixed URL in the README for app engine testing
diff --git a/pdk/README b/pdk/README
index 036912d..229db43 100644
--- a/pdk/README
+++ b/pdk/README
@@ -58,9 +58,9 @@
python <path_to_appengine_installation>/dev_appserver.py --address 0.0.0.0 \
<path_to_cupcake_code>/android/out/target/common/docs
-To verify it is working you can access it with a browser loacally on port 8080:
+To verify it is working you can access it with a browser locally on port 8080:
-http://localhost:8080/index.html
+http://localhost:8080/online-pdk/guide/index.html
NOTE: If you are trying to get to the appengine local testing instance remotely
you will have to ssh tunnel into your linux box as appengine only serves the web
diff --git a/pdk/docs/guide/build_new_device.jd b/pdk/docs/guide/build_new_device.jd
index 2e2b367..895ed3d 100755
--- a/pdk/docs/guide/build_new_device.jd
+++ b/pdk/docs/guide/build_new_device.jd
@@ -11,6 +11,7 @@
<ul>
<li><a href="#androidOHDPortingDeviceBuildingProcess">Detailed Instructions</a></li>
<li><a href="#androidBuildNewFileTree">New Product File Tree</a></li>
+<li><a href="#androidBuildSystemProductDefFiles">Product Definition Files</a></li>
</ul>
</div>
</div>
@@ -18,7 +19,7 @@
<a name="androidOHDPortingDeviceBuildingProcess"></a><h3>Detailed Instructions</h3>
-<p>The directions below describe how to configure make files for new mobile devices and products.</p>
+<p>The steps below describe how to configure makefiles for new mobile devices and products running Android.</p>
<ol>
<li>Create a company directory in <code>//vendor/</code>.<br/>
<pre class="prettyprint">
@@ -26,13 +27,15 @@
<li>Create a <code>products</code> directory beneath the company directory you created in step 1.<BR>
<pre class="prettyprint">
mkdir vendor/<company_name>/products/</pre></li>
- <li>Create a product-specific make file, called <code>vendor/<company_name>/products/<first_product_name>.mk</code>, that includes the following code:<BR>
+ <li>Create a product-specific makefile, called <code>vendor/<company_name>/products/<first_product_name>.mk</code>, that includes at least the following code:<BR>
<pre class="prettyprint">
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
#
# Overrides
PRODUCT_NAME := <first_product_name>
- PRODUCT_DEVICE := <board_name></pre></li>
+ PRODUCT_DEVICE := <board_name></pre>
+ Additional product-specific variables can be added to this <a href="#androidBuildSystemProductDefFiles">Product Definition</a> file.
+ </li>
<li>In the <code>products</code> directory, create an <code>AndroidProducts.mk</code> file that point to (and is responsible for finding) the individual product make files.<BR>
<pre class="prettypring">
#
@@ -51,7 +54,7 @@
<li>Create a board-specific directory beneath your company directory that matches the <code>PRODUCT_DEVICE</code> variable <code><board_name></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 vendor/<company_name>/<board_name></pre></li>
- <li>Create a <code>product_config.mk</code> file in the directory created in the previous step (<code>vendor/<company_name>/<board_name></code>). If this directory does not include a <code>product_config.mk</code> file, the build will fail.<BR>
+ <li>Create a <code>BoardConfig.mk</code> file in the directory created in the previous step (<code>vendor/<company_name>/<board_name></code>). <BR>
<pre class="prettyprint">
# These definitions override the defaults in config/config.make for <board_name>
#
@@ -71,7 +74,7 @@
PRODUCT_MAKEFILES := \
$(LOCAL_DIR)/first_product_name.mk \
$(LOCAL_DIR)/second_product_name.mk</pre></li>
- <li><code>vendor/<company_name>/<board_name></code> must include an <code>Android.mk</code> file with at least the following code:<BR><BR>
+ <li>An <code>Android.mk</code> file must be included in <code>vendor/<company_name>/<board_name></code> with at least the following code:<BR>
<pre class="prettyprint">
# make file for new hardware <board_name> from <company_name>
#
@@ -94,7 +97,10 @@
include $(CLEAR_VARS)
#
# include more board specific stuff here? Such as Audio parameters.
- #</pre></li>
+ #</pre>
+
+ Additional Android.mk parameters
+ </li>
<li>To create a second product for the same board, create a second product-specific make file called <code>vendor/company_name/products/<second_product_name>.mk</code> that includes:<BR>
<pre class="prettyprint">
$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
@@ -231,73 +237,4 @@
</pre>
-<a name="androidBuildVariants"></a><h3>Build Variants</h3>
-<p>
-When building for a particular product, it's often useful to have minor
-variations on what is ultimately the final release build. These are the
-currently-defined build variants:
-</p>
-
-<table border=1>
-<tr>
- <td>
- <code>eng<code>
- </td>
- <td>
- This is the default flavor. A plain "<code>make</code>" is the
- same as "<code>make eng</code>". <code>droid</code> is an alias
- for <code>eng</code>.
- <ul>
- <li>Installs modules tagged with: <code>eng</code>, <code>debug</code>,
- <code>user</code>, and/or <code>development</code>.
- <li>Installs non-APK modules that have no tags specified.
- <li>Installs APKs according to the product definition files, in
- addition to tagged APKs.
- <li><code>ro.secure=0</code>
- <li><code>ro.debuggable=1</code>
- <li><code>ro.kernel.android.checkjni=1</code>
- <li><code>adb</code> is enabled by default.
- </td>
-</tr>
-<tr>
- <td>
- <code>user<code>
- </td>
- <td>
- "<code>make user</code>"
- <p>
- This is the flavor intended to be the final release bits.
- <ul>
- <li>Installs modules tagged with <code>user</code>.
- <li>Installs non-APK modules that have no tags specified.
- <li>Installs APKs according to the product definition files; tags
- are ignored for APK modules.
- <li><code>ro.secure=1</code>
- <li><code>ro.debuggable=0</code>
- <li><code>adb</code> is disabled by default.
- </td>
-</tr>
-<tr>
- <td>
- <code>userdebug<code>
- </td>
- <td>
- "<code>make userdebug</code>"
- <p>
- The same as <code>user</code>, except:
- <ul>
- <li>Also installs modules tagged with <code>debug</code>.
- <li><code>ro.debuggable=1</code>
- <li><code>adb</code> is enabled by default.
- </td>
-</tr>
-</table>
-
-<p>
-If you build one flavor and then want to build another, you should run
-"<code>make installclean</code>" between the two makes to guarantee that
-you don't pick up files installed by the previous flavor. "<code>make
-clean</code>" will also suffice, but it takes a lot longer.
-</p>
-
\ No newline at end of file
diff --git a/pdk/docs/guide/build_system.jd b/pdk/docs/guide/build_system.jd
index 64216d8..4b29202 100755
--- a/pdk/docs/guide/build_system.jd
+++ b/pdk/docs/guide/build_system.jd
@@ -12,6 +12,7 @@
<li><a href="#androidBuildSystemLayers">Layers</a></li>
<li><a href="#androidSourceSetupBuildingCodeBase">Building the Android Platform</a></li>
<li><a href="#androidSourceSetupBuildingKernel">Building the Android Kernel</a></li>
+<li><a href="#androidBuildVariants">Build Variants</a></li>
</ul>
</div>
</div>
@@ -108,6 +109,8 @@
% make -j4 PRODUCT-generic-eng
</pre>
+<p>These <a href="#androidBuildVariants">Build Variants</a> differ in terms of debug options and packages installed.
+
<a name="androidBuildingCleaning"></a><h4>Cleaning Up</h4>
@@ -194,4 +197,73 @@
<p>To build the kernel, execute:</p>
<pre class="prettyprint">
% make -j4
-</pre>
\ No newline at end of file
+</pre>
+
+<a name="androidBuildVariants"></a><h3>Build Variants</h3>
+
+<p>
+When building for a particular product, it's often useful to have minor
+variations on what is ultimately the final release build. These are the
+currently-defined build variants:
+</p>
+
+<table border=1>
+<tr>
+ <td>
+ <code>eng<code>
+ </td>
+ <td>
+ This is the default flavor. A plain "<code>make</code>" is the
+ same as "<code>make eng</code>".
+ <ul>
+ <li>Installs modules tagged with: <code>eng</code>, <code>debug</code>,
+ <code>user</code>, and/or <code>development</code>.
+ <li>Installs non-APK modules that have no tags specified.
+ <li>Installs APKs according to the product definition files, in
+ addition to tagged APKs.
+ <li><code>ro.secure=0</code>
+ <li><code>ro.debuggable=1</code>
+ <li><code>ro.kernel.android.checkjni=1</code>
+ <li><code>adb</code> is enabled by default.
+ </td>
+</tr>
+<tr>
+ <td>
+ <code>user<code>
+ </td>
+ <td>
+ "<code>make user</code>"
+ <p>
+ This is the flavor intended to be the final release bits.
+ <ul>
+ <li>Installs modules tagged with <code>user</code>.</li>
+ <li>Installs non-APK modules that have no tags specified.</li>
+ <li>Installs APKs according to the product definition files; tags
+ are ignored for APK modules.</li>
+ <li><code>ro.secure=1</code> </li>
+ <li><code>ro.debuggable=0</code> </li>
+ <li><code>adb</code> is disabled by default.</li>
+ </td>
+</tr>
+<tr>
+ <td>
+ <code>userdebug<code>
+ </td>
+ <td>
+ "<code>make userdebug</code>"
+ <p>
+ The same as <code>user</code>, except:
+ <ul>
+ <li>Also installs modules tagged with <code>debug</code>.
+ <li><code>ro.debuggable=1</code>
+ <li><code>adb</code> is enabled by default.
+ </td>
+</tr>
+</table>
+
+<p>
+If you build one flavor and then want to build another, you should run
+"<code>make installclean</code>" between the two makes to guarantee that
+you don't pick up files installed by the previous flavor. "<code>make
+clean</code>" will also suffice, but it takes a lot longer.
+</p>
\ No newline at end of file
diff --git a/pdk/docs/guide/sensors.jd b/pdk/docs/guide/sensors.jd
index 79a2ad3..02f0c4e 100755
--- a/pdk/docs/guide/sensors.jd
+++ b/pdk/docs/guide/sensors.jd
@@ -32,13 +32,30 @@
<a name="androidSensorBuildingDriver"></a><h3>Building a Sensor Library</h3>
<p> To implement a Sensors driver, create a shared library that implements the interface defined in <code>sensors.h</code>. You must name your shared library
<code>libsensors.so</code> so that it will get loaded from <code>/system/lib</code> at runtime.
-</p
+</p>
+<p> The following stub <code>Android.mk</code> file ensures that <code>libsensors</code> compiles and links to the appropriate libraries:</p>
+<pre>
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := sensors
+
+LOCAL_PRELINK_MODULE := false
+
+LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
+
+LOCAL_SHARED_LIBRARIES := liblog
+# include any shared library dependencies
+
+LOCAL_SRC_FILES := sensors.c
+
+include $(BUILD_SHARED_LIBRARY)
+</pre>
<a name="androidSensorsInterface"></a><h3>Interface</h3>
-
<p><span class="lh3"><a name="androidDoxygenNote"></a></span>
<p class="note"><strong>Note</strong>: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, <a href="sensors.html">click here</a>.</p>