Mobile/Build/Windows Mobile Build Instructions: Difference between revisions

From MozillaWiki
< Mobile‎ | Build
Jump to navigation Jump to search
No edit summary
Line 92: Line 92:




==Note After building==
==Notes After Building==
===Copy MOZCE_SHUNT.DLL===
To debug fennec in VS8/9, you will have to copy
To debug fennec in VS8/9, you will have to copy
  $topsrcdir/build/wince/shunt/build/vs[89]/mozce_shunt.dll
  $topsrcdir/build/wince/shunt/build/vs[89]/mozce_shunt.dll
Line 104: Line 105:


Both of these rather cryptic messages try to tell you that an executable file (EXE or DLL) depends upon a DLL, and that DLL could not be found.
Both of these rather cryptic messages try to tell you that an executable file (EXE or DLL) depends upon a DLL, and that DLL could not be found.
===Debugging Fennec===
There is a bug in
===Visual Studio 2005 / Visual Studio 8===
Visual Studio 2005 (VS8) has the following issues when debugging
===Visual Studio 2008 / Visual Studio 9===
Visual Studio 2008 (VS9) has the following issues when debugging


==Setting Up MyBrowser==
==Setting Up MyBrowser==

Revision as of 17:00, 17 November 2008

Windows Mobile Build Instructions

work in progress - things are changing as we speak, er.. as you read this

Overview

This page describes the commands for building the latest version of the Windows Mobile XULRunner application using Visual Studio 2005 and MozillaBuild.


Setup

You will only have to do this setup once.

Follow the instructions here to setup a windows development environment.

Only Visual Studio 8 and 9 (also known as Visual Studio 2005 and 2008) are currently supported.

You must turn on the mercurial queues extension.

Then you need to install the Windows Mobile 6 Professional SDK. You might need to install some extra software to resolve dependencies.

IMPORTANT

(by wolfe in #wince) you NEED to install the WM6.1 Emulator Images, because Microsoft fixed something in between 6.0 and 6.1 - so now the specification of memory size via the Emulator Options dialog box works.

then you need to increase the amount of memory available in your chosen 6.1 Emulator (BEFORE you run the chosen 6.1 Emulator for the first time). Otherwise you'll receive "(e)", or "not enough storage is available to complete this operation".

You can increase the amount of memory in your emulator by using the VS8 tools menu, options dialog box

find the device tools | devices section, select your desired emulator, click on the properties... button, then press the Emulator Options... button

Once you are looking at the Emulator Options dialog box, check the Specify RAM Size check box - and enter in 256 (range from 1 to 256)

BUT - BUT - BUT - The Emulator built into Visual Studio 2005 / VS8 does not work for mapping a local directory on your PC into the Emulator's \Storage Card (or \Storage Card2)

SO - If you want to debug via Emulator, you need VS9 / Visual Studio 2008. And you probably need a minimum of the Visual Studio 2008 Professional version, because the Express version does not allow the WinMobile 6 SDKs to be installed

Bottom Line - you need to either test on-device, or use VS9 Pro (or better)

Downloading and Building

These directions assume you have a c:\mozilla-build directory, created by downloading the [Windows Mozilla Build Setup version 1.3]:

Run the batch file C:\mozilla-build\start-msvc8.bat (or C:\mozilla-build\start-msvc9.bat)
   NOTE: This will setup and open a MingW32 command prompt.
          All further commands are to be run inside MingW32.

$ cd /c/mozilla # assuming you've created /c/mozilla/ for your mozilla source tree

$ hg clone http://hg.mozilla.org/mozilla-central

$ cd mozilla-central

$ export topsrcdir=`pwd` # $topsrcdir becomes the path to mozilla-central/

$ hg clone http://hg.mozilla.org/mobile-browser mobile

$ wget http://people.mozilla.org/~blassey/mozconfig_wm6_full

$ mv mozconfig_wm6_full mozconfig

$ cd .hg

$ hg clone http://hg.mozilla.org/users/blassey_mozilla.com/wince-patches patches

$ cd ..

$ hg qpush -a

$ export PATH="$PATH:$topsrcdir/build/wince/tools/bin"

Include the following in your $PATH so that arm-wince-gcc.exe can be found.

$ export PATH="$PATH:$topsrcdir/build/wince/tools/vs8ppc2003arm" # for VS8
$ export PATH="$PATH:$topsrcdir/build/wince/tools/vs9ppc2003arm" # for VS9


Make sure you have the following options in your mozconfig

    ac_add_options --disable-printing
    ac_add_options --disable-auto-deps
    ac_add_options --disable-oji

Adjust this for VS8. If you have VS9, just do this

    ac_add_options --with-wince-sdk="c:/Program Files/Windows Mobile 6 SDK/PocketPC/Include/Armv4i"

Now you should be able to build xulrunner and the mobile fennec code.

$ make -f client.mk build


Notes After Building

Copy MOZCE_SHUNT.DLL

To debug fennec in VS8/9, you will have to copy

$topsrcdir/build/wince/shunt/build/vs[89]/mozce_shunt.dll

into

$OBJDIR\mobile\dist\bin\xulrunner

so that the .dll file is in the same directory as where xulrunner.exe is in.

Otherwise, you will receive a Could not find 'XULRunner' (or one of its components). Make sure that the path and filename are correct and that all the required libraries are available. error dialog if you try to run XULRunner.exe from a File Explorer.

Or the VS8 IDE will say that it is Unable to start program '\Storage Card\bin\xulrunner.exe'. An error occurred that usually indicates a corrupt installation (code 0x8007007e). If the problem persists, repair your Visual Studio installation via 'Add or Remove Programs' in Control Panel.

Both of these rather cryptic messages try to tell you that an executable file (EXE or DLL) depends upon a DLL, and that DLL could not be found.

Debugging Fennec

There is a bug in

Visual Studio 2005 / Visual Studio 8

Visual Studio 2005 (VS8) has the following issues when debugging

Visual Studio 2008 / Visual Studio 9

Visual Studio 2008 (VS9) has the following issues when debugging

Setting Up MyBrowser

A simple XULRunner application, MyBrowser, is used to test the XULRunner code.

Download the MyBrowser Application using this link.

The XULApp file is a ZIP file with a number of files and directories. Further explanation of XULRunner and the XULApp format can be found here.

rename mybrowser-0.2.2.xulapp mybrowser-0.2.2.xulapp.zip

Unzip mybrowser-0.2.2.xulapp.zip into its own subdirectory, 
  while preserving it's ZIP file directory structure.  

rename mybrowser-0.2.2.xulapp mybrowser

Edit mybrowser\application.ini file, replacing:
  MaxVersion=1.8.0.*
with:
  MaxVersion=1.9.*.*

copy -r mybrowser c:\mozilla\unicode\objdir-wm6-debug\dist\bin

Setting Up For Debugging MyBrowser

You can debug the MyBrowser XULapp from within Visual Studio by using the WinCE shunt Visual Studio Project, and adjusting the deployment device and executable to be run.

1. Open Visual Studio 2005 (Visual Studio 8) Integrated Development Environment (IDE)

2. Open the solution c:\mozilla\unicode\build\wince\shunt\build\vs8\mozce_shunt_static.sln

3. In the Solution Explorer, right mouse click on the mozce_shunt_static project

4. Select the Properties pop-up menu item

5. Under the configuration properties, highlight the Deployment section

6. Make the selected Deployment Device be "Windows Mobile 6 Standard Emulator"

7. Press the Apply button if necessary to save your new selection

8. Under the configuration properties, highlight the Debugging section

9. For Remote Executable, enter \Storage Card\bin\xulrunner.exe

10. For Command Arguments, enter -app mybrowser\application.ini

11. Press the Apply button if necessary to save your new selection

12. Close the Project Properties dialog box

Debugging MyBrowser

You are now ready to begin debugging your XULRunner build.

1. From the Visual Studio 2005 Build menu, select the Deploy Solution menu item

2. Wait for the Windows Mobile 6 Standard Emulator has start

3. In the Emulator's File menu, select the Configure... menu item

4. Press the ... button for the Shared Folder edit box

5. Select the c:\mozilla\unicode\objdir-wm6-debug\dist directory

6. Close the Emulator Properties dialog box by pressing the OK key

7. In the Visual Studio 2005's Debug menu, select the Start Debugging menu item

You should now see the Visual Studio begin a debugging session of XULRunner loading the MyBrowser XULApp.

Other Tips

1. Color scheme for MingW32 Command Line Prompt

I hated the default color scheme for the command prompt under MingW32 - so I changed it. Find the file c:\mozilla-build\msys\etc\profile, and edit the lines (toward the bottom) which export PS1, and make them say:

export PS1='\[\033]0;$MSYSTEM:\w\007
\033[34m\]\u@\h \[\033[31m\w\033[0m\]
$ '

This changed the directory color to something I could actually see against a white background.


3. Further Setting Up MingW32 Path

I get annoyed with continually adding the path to the Mercurial HG.EXE, as well as continually adding the path to the build's wince tools directory.

So I created a c:\mozilla-build\msys\etc\profile.d\profile-setup-hg.sh file, containing:

#!/bin/sh

export PATH="$PATH:/c/progra~1/Mercurial"

# This is an addition to get the shim cross-compile build tools into
# our path. - jvw  24-Apr-08
export PATH="$PATH:/c/mozilla/unicode/build/wince/tools/vs8ppc2003arm"

This sets up my HG.EXE path, as well as the path to my WinCE build tools (arm-wince-as.exe, arm-wince-gcc.exe, arm-wince-lib.exe, and arm-wince-link.exe)