Eclair Build Configuration

From The XDAndroid Project

With the XDAndroid source checked out, the build system must be configured to build an XDAndroid product for one of the supported targets. Build system configuration is done via a single file in the root of the XDAndroid source tree whose name is buildspec.mk.

NOTE For build configuration options for the froyo branch, please see Froyo Build Configuration.
NOTE For build configuration options for the gingerbread branch, please see Build Configuration.

The Android build system will use buildspec.mk to pass a variety of variables to the make program which parses all of the Makefile recipes that comprise the build system. Most of the variables supported by buildspec.mk are self-explanatory, especially after becoming familiar with the basics of an Android system.

Build System Configuration

Simply create a blank plain-text file in the root of your XDAndroid source tree. Name the file buildspec.mk and edit it with your preferred text editor.

Variables are each defined on their own single line. Similar to other configuration files, anything which proceeds a pound sign (#) is ignored as a comment.

To instruct the build system to generate an XDAndroid system image, the following variables must be defined in buildspec.mk...

<syntaxhighlight lang="make"># Configure for an XDAndroid release engineering target. TARGET_PRODUCT := xdandroid_msm_us TARGET_BUILD_VARIANT := eng TARGET_BUILD_TYPE := release</syntaxhighlight>

The following table outlines some optional buildspec.mk flags which are used often.

Variable Effect
USE_GOOGLE_APPS := true Add extracted, proprietary Google apps to the system image.
KITCHEN_BUILD := true Add absolutely no proprietary bits to the system image. Used for kitchen base images.
WITH_JIT := true Enable the Just-in-Time compiler for the Dalvik VM.
TARGET_USERIMAGES_USE_EXT2 := true Build an ext2 system image (currently needed along with KITCHEN_BUILD for kitchen base images).

After completing the build configuration and saving the buildspec.mk file, you can proceed with Building and Packaging the system.