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:

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

  1. Change to the default phoneME Feature software build directory for the Linux/i386 target platform.
  2. $ cd $HOME/midp/build/linux_fb_gcc

  3. 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

  1. Change to the default phoneME Feature software build directory for the Linux/ARM target platform.
  2. $ cd $HOME/midp/build/linux_qte_gcc

  3. 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:

  1. 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

  2. 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

  1. Change to the default phoneME Feature build directory for the Win32/i386 target platform.
  2. $ cd %HOME%/midp/build/win32

  3. Set build-specific environment variables as shown here:

    $ set CLDC_DIST_DIR=%BUILD_OUTPUT_DIR%/cldc/win32_i386_vc/dist

  4. Mount the phoneME Feature software midp directory at the root level.
  5. 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

  6. 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

  1. Change to the default phoneME Feature build directory for the Javacall/i386 target platform.
  2. $ cd %HOME%/midp/build/javacall

  3. 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

  4. Mount the phoneME Feature software midp directory at the root level.
  5. 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

  6. 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.

  1. Change directory to the following directory.

    $ cd %BUILD_OUTPUT_DIR%/midp/bin/i386

  2. 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.

  1. Change to the default build directory for your target platform. For example, this could be the Linux/i386 target platform, as shown here.
  2. $ cd $HOME/midp/build/linux_i386

  3. Build Javadoc tool HTML documentation.
  4. $ 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