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. The following configuration documentation applies to gingerbread and later branches.
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...
# Configure for an XDAndroid user-debugging target. TARGET_PRODUCT := full_msm TARGET_BUILD_VARIANT := userdebug TARGET_BUILD_TYPE := release TARGET_USERIMAGES_USE_EXT2 := true BUILD_LIB_HTC_ACOUSTIC_WINCE := true
The final line in the above example, which enables TARGET_USERIMAGES_USE_EXT2, will have the Android build system generate ext2 filesystems. On the live device, these filesystems are mounted writable. The XDAndroid boot process supports an ext2-based system partition image, named system.ext2 on the SD card. This is highly recommended.
After completing the build configuration and saving the buildspec.mk file, you can proceed with Building and Packaging the system.