Getting Started with phoneME Feature Software (MR2)

# Building a phoneME Feature Software Reference Port first | prev The phoneME Feature software is an Open Source version of Sun Microsystems' commercial implementation, the Sun Java Wireless Client software, version 2.0. The commercial version is based upon, and incorporates code from, the Open Source MR2 version of phoneME Feature software. The phoneME Feature software is built on top of CLDC, an Open Source version of Sun Microsystems' Connected limited Device Configuration, HotSpot Implementation, version 2.0. This document has the following sections: Building phoneME Feature Software on a Linux/i386 Build Platform Building phoneME Feature Software on a Win32/i386 Build Platform Building phoneME Feature Software Documentation For proper building and performance, your system must meet the requirements provided in Before You Begin Note: This document is part of the MR2 development release version of phoneME Feature software. The instructions have not been verified or tested. The contents will continue to change as development moves forward. ### Building phoneME Feature Software on a Linux/i386 Build Platform This section provides basic instructions for building a default configuration of the phoneME Feature software for Linux/i386 and Linux/ARM target platforms. Setting Variables for a Linux/i386 Build Platform To build phoneME Feature software on a Linux/i386 build platform, you must set the environment variables shown in TABLE 5-1.
TABLE 5-1 Linux Platform Environment Variables
Name | Description
--- | ---
`MIDP_DIR` | The top-level MIDP directory. For example, `MIDP_DIR=$HOME/midp`.
`MIDP_OUTPUT_DIR``` | Location where output from building phoneME Feature is stored. For example, `MIDP_OUTPUT_DIR=$BUILD_OUTPUT_DIR/midp`.
`CLDC_DIST_DIR` | Required for building phoneME Feature software. Must point to the location of CLDC software build output. For example: `CLDC_DIST_DIR=$BUILD_OUTPUT_DIR/cldc/linux_i386/dist.`
`TARGET_CPU` | Must be set for the platform you are building on. For example, `TARGET_CPU=i386.`
`USE_MULTIPLE_ISOLATES``` | Required for phoneME Feature to support multitasking. Must be set to `true`.
`USE_PCSL``` | Required for phoneME Feature to pick up PCSL libraries. Must be set to `true`.
Setting Environment Variables for Both Linux/i386 and Linux/ARM Target Platforms The following variables should be set as system variables, to build both Linux/i386 and Linux/ARM target platforms: `$ export MIDP_DIR=$HOME/midp` `$ export MIDP_OUTPUT_DIR=$BUILD_0UTPUT_DIR/midp` Building for a Linux/i386 Target Platform Change to the default phoneME Feature software build directory for the Linux/i386 target platform. `$ cd $HOME/midp/build/linux_fb_gcc` Use `make` to build phoneME Feature software, by specifying the `i386` target CPU, picking up PCSL libraries, enabling multitasking capabilities, and pointing to the CLDC output directory for the Linux/i386 target platform. `$ make TARGET_CPU=i386 USE_PCSL=true USE_MULTIPLE_ISOLATES=true CLDC_DIST_DIR=$BUILD_OUTPUT_DIR/cldc/linux_i386/dist` The generated output for the Linux/i386 target platform is found in the following location: `$BUILD_OUTPUT_DIR/midp/bin/i386` Building for a Linux/ARM Target Platform Change to the default phoneME Feature software build directory for the Linux/ARM target platform. `$ cd $HOME/midp/build/linux_qte_gcc` Use `make` to build phoneME Feature software, by specifying the `arm` target CPU, picking up PCSL libraries, enabling multitasking capabilities, pointing to the CLDC output directory for the Linux/ARM target platform, and using MontaVista development tools. `$ make TARGET_CPU=arm USE_PCSL=true USE_MULTIPLE_ISOLATES=true CLDC_DIST_DIR=$BUILD_OUTPUT_DIR/cldc/linux_arm/dist GNU_TOOLS_DIR=$MONTAVISTA` Note: In the above command line, the variable `$MONTAVISTA` is a shortcut for a much longer command string, as described here. The generated output for the Linux/i386 target platform is found in the following location: `$BUILD_OUTPUT_DIR/midp/bin/arm` Running usertest on a Linux/i386 Target Platform Once you have built an implementation of phoneME Feature software, you can quickly run a MIDlet using the frame buffer (`fb`) graphics provided by the QT Toolkit: Change directory to the following location: For a Linux/i386 target platform: `$ cd $BUILD_OUTPUT_DIR/midp/bin/i386` For a Linux/ARM target platform: `$ cd $BUILD_OUTPUT_DIR/midp/bin/arm` Type `./usertest` This launches the frame buffer graphics window. ### Building phoneME Feature Software on a Win32/i386 Build Platform This section provides basicn instructions for building a default phoneME Feature software configuration of Win32/i386 and Javacall/i386 target platforms. Setting Variables for a Win32/i386 Build Platform To properly build the phoneME Feature software on a Windows platform, you must set the environment variables shown in TABLE 5-2.
TABLE 5-2 Win32/i386 Platform Environment Variables
Name | Description
--- | ---
`MIDP_DIR` | The top-level MIDP directory. For example, `MIDP_DIR=%HOME%/midp`.
`MIDP_OUTPUT_DIR` | Location where the output from building phoneME Feature is stored. For example, `MIDP_OUTPUT_DIR=%BUILD_OUTPUT_DIR%/midp`.
`CLDC_DIST_DIR` | Required for building phoneME Feature software. Must point to the location of CLDC software build output. For example: `CLDC_DIST_DIR=%BUILD_OUTPUT_DIR%/cldc/javacall_i386/dist`
`TARGET_CPU` | Must be set for the platform you are building on. For example, `TARGET_CPU=i386`. (If you are building the JavaCall porting layer, this variable is also set to `i386`.)
`USE_MULTIPLE_ISOLATES``` | Required for phoneME Feature to support multitasking. Must be set to `true`.
`USE_PCSL``` | Required for phoneME Feature to pick up PCSL libraries. Must be set to `true`.
`JAVACALL_PLATFORM` | If you have previously built the JavaCall porting layer, use this variable to define it as your platform. For example, `JAVACALL_PLATFORM=javacall_i386_vc`. Note: If you have not built an implementation of JavaCall, do not set this variable.
`JAVACALL_OUTPUT_DIR` | Indicates the location where JavaCall output is stored. For example, `JAVACALL_OUTPUT_DIR=%BUILD_OUTPUT_DIR%/javacall`. Note: If you have previously built the JavaCall porting layer, this variable should already be set. If you have not built a JavaCall implementation, do not set this variable.
Setting Environment Variables for Both Win32/i386 and Javacall/i386 Target Platforms If you are building phoneME Feature software for either the Win32/i386 or Javacall/i386 target platforms, set the following variables as shown here: `$ set MIDP_DIR=%HOME%/midp` `$ set MIDP_OUTPUT_DIR=%BUILD_0UTPUT_DIR%/midp` Building for a Win32/i386 Target Platform Change to the default phoneME Feature build directory for the Win32/i386 target platform. `$ cd %HOME%/midp/build/win32` Set build-specific environment variables as shown here: `$ set CLDC_DIST_DIR=%BUILD_OUTPUT_DIR%/cldc/win32_i386_vc/dist` Mount the phoneME Feature software `midp` directory at the root level. For example, if you installed the phoneME Feature software in `C:\jwc1.1.3`, use the following command: `mount C:\jwc1.1.3\midp /jwc1.1.3/midp` Use `make` to build a reference port of the phoneME Feature software, by specifying the `i386` target CPU, picking up PCSL libraries, and enabling multitasking capabilities, as shown here. `$ make TARGET_CPU=i386 USE_PCSL USE_MULTIPLE_ISOLATES=true` The generated output for the Win32/i386 target platform is found in the following location: `%BUILD_OUTPUT_DIR%/midp/bin/i386` Building for a Javacall/i386 Target Platform Change to the default phoneME Feature build directory for the Javacall/i386 target platform. `$ cd %HOME%/midp/build/javacall` Set build-specific environment variables as shown here: `$ set CLDC_DIST_DIR=%BUILD_OUTPUT_DIR%/cldc/javacall_i386_vc/dist` Note: If you have previously built the Javacall porting layer for PCSL and CLDC, the `JAVACALL_PLATFORM` and `JAVACALL_OUTPUT_DIR` environment variables should already be set. If not, set them as shown here: `$ set JAVACALL_PLATFORM=javacall_i386_vc` `$ set JAVACALL_OUTPUT_DIR=%BUILD-OUTPUT_DIR%/javacall` Mount the phoneME Feature software `midp` directory at the root level. For example, if you installed the phoneME Feature software in `C:\jwc1.1.3`, use the following command: `mount C:\jwc1.1.3\midp /jwc1.1.3/midp` Use `make` to build a reference port of the phoneME Feature software, by specifying the `i386` target CPU, picking up PCSL libraries, and enabling multitasking capabilities, as shown here. `$ make TARGET_CPU=i386 USE_PCSL USE_MULTIPLE_ISOLATES=true` The generated output for the Javacall/i386 target platform is found in the following location: `%BUILD_OUTPUT_DIR%/midp/bin/javacall` Running usertest on a Win32/i386 Platform Once you have built an implementation of phoneME Feature software, you can quickly run a MIDlet using the Win32/i386 emulator. Change directory to the following directory. $ `cd %BUILD_OUTPUT_DIR%/midp/bin/i386` Type `usertest` This displays the phoneME Feature emulation device. ### Building phoneME Feature Software Documentation You can create HTML API documents for phoneME Feature software from porting interfaces. To do this for the phoneME Feature software, use the `make docs_html` build target. Generating Javadoc Tool Documentation Building Javadoc tool documentation is the same for both Linux/i386 and Win32/i386 platforms. Change to the default build directory for your target platform. For example, this could be the Linux/i386 target platform, as shown here. `$ cd $HOME/midp/build/linux_i386` Build Javadoc tool HTML documentation. `$ make docs_html` The generated HTML documents are put in the following directory: `$MIDP_OUTPUT_DIR/doc/javadoc/html` Viewing phoneME Feature Software Documents Use any browser to display the Javadoc output file at the following URL: `file://$MIDP_OUTPUT_DIR/doc/javadoc/html/index.html`
first | prev