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

From MozillaWiki
< Mobile‎ | Build
Jump to navigation Jump to search
 
(66 intermediate revisions by 8 users not shown)
Line 5: Line 5:


==Overview==
==Overview==
This page describes the commands for building the latest version of the Windows Mobile XULRunner application using Visual Studio 2005, Mercurial HG, and MingW32.
This page covers building the latest version of the Windows Mobile XULRunner and Fennec applications using either Visual Studio 2005 or Visual Studio 2008 and the MozillaBuild environment.


'''These instructions are changing frequently.'''


==Setup==
The Windows Mobile build of XULRunner and Mobile Fennec is undergoing major improvements and bug fixes.  Do not be surprised if your attempt to build and/or run do not immediately work.


You will only have to do this setup once.
People focused on the Windows Mobile build are currently using the [irc://irc.mozilla.org/#wince #wince channel] to communicate about Windows Mobile build-specific issues.


Follow the instructions [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites#MozillaBuild here] to setup a window development environment. 
'''Did we mention that things are changing frequently?'''


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


You must [http://hgbook.red-bean.com/hgbookch12.html#x16-26700012 turn on the mercurial queues extension].  hg.exe needs to be in your path.
==Big Picture==
These instructions are broken down into four parts:  


Then you need to [http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390B&displaylang=en install] the Windows Mobile 6 Professional SDK.  You might need to install some extra software to resolve dependencies.
'''(1) [[Mobile/Build/Windows_Mobile_PrepForBuild | Preparing To Build XULRunner and Fennec]]''', or what to do before pulling down a single bit of code<br>


==Downloading and Building==
'''(2) [[Mobile/Build/Windows_Mobile_BuildingIt | Actual Building of XULRunner and Fennec]]''', or how to pull down, prepare, and compile the XULRunner and Fennec code<br>


These directions assume you have a '''c:\mozilla-build''' directory:
'''(3) [[Mobile/Build/Windows_Mobile_DebuggingIt | Debugging XULRunner and Fennec]]''', also known as 'Now that I have it built, what next?'<br>


Run the batch file '''C:\mozilla-build\start-msvc8.bat''' (or '''C:\mozilla-build\start-msvc9.bat''')
'''(4) [[Mobile/Build/Windows_Mobile_DevSpecificInfo | Device Specific Testing Information]]''', which is information about specific devices that people have tested and their issues
    NOTE: This will setup and open a MingW32 command prompt.
          All further commands are to be run inside MingW32.
$ '''cd /c/mozilla'''
$ '''hg clone http://hg.mozilla.org/mozilla-central'''
$ '''cd 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'''
$ '''make -f client.mk build'''
 
 
'''NOTE:''' You will have to copy the MOZ_SHUNT.DLL executable file into the ''OBJDIR''\dist\bin\ directory.  You can use the following command from the ''OBJDIR'' directory:
 
$ '''cp ../build/wince/shunt/build/vs8/mozce_shunt.dll dist/bin'''
 
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.
 
==Setting Up MyBrowser==
 
A simple XULRunner application, MyBrowser, is used to test the XULRunner code.
 
[http://benjamin.smedbergs.us/xulrunner/mybrowser-0.2.2.xulapp 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 [http://developer.mozilla.org/en/docs/Getting_started_with_XULRunner 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==
==Other Tips==
Line 144: Line 41:




'''2. MingW32 Handling Spaces In Full Filename'''
'''2. Further Setting Up MingW32 Path'''
 
MingW32 profile-sshagent.sh does not handle "C:\Documents and Settings" as a base for my $HOME directory (WinXP's default). 
 
I fixed that trouble by changing c:\mozilla-build\msys\etc\profile.d\profile-sshagent.sh to read this:
 
export SSH_ENV="$HOME/.ssh/environment"
export SSH_ENV_1=`echo $SSH_ENV | sed 's/ /\\\\ /g'`
function start_agent {
  ssh-agent | sed 's/^echo/#echo/' > "$SSH_ENV"
  chmod 600 "$SSH_ENV"
  . "$SSH_ENV" > /dev/null
  ssh-add;
}
if [ -f "${SSH_ENV_1}" ]; then
  . ${SSH_ENV} > /dev/null
  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
    start_agent;
  }
else
  start_agent;
fi
 
I am certain there is a more elegant way of accomplishing this hack - I just know that these lines work for me.
 
 
'''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.   
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.   
Line 184: Line 50:
   
   
  export PATH="$PATH:/c/progra~1/Mercurial"
  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)
This sets up my HG.EXE path to a self-installed latest version of Mercurial.
 
All shell files in c:\mozilla-build\msys\etc\profile.d are executed upon bash shell startup.

Latest revision as of 02:50, 20 February 2009

Windows Mobile Build Instructions

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

Overview

This page covers building the latest version of the Windows Mobile XULRunner and Fennec applications using either Visual Studio 2005 or Visual Studio 2008 and the MozillaBuild environment.

These instructions are changing frequently.

The Windows Mobile build of XULRunner and Mobile Fennec is undergoing major improvements and bug fixes. Do not be surprised if your attempt to build and/or run do not immediately work.

People focused on the Windows Mobile build are currently using the #wince channel to communicate about Windows Mobile build-specific issues.

Did we mention that things are changing frequently?


Big Picture

These instructions are broken down into four parts:

(1) Preparing To Build XULRunner and Fennec, or what to do before pulling down a single bit of code

(2) Actual Building of XULRunner and Fennec, or how to pull down, prepare, and compile the XULRunner and Fennec code

(3) Debugging XULRunner and Fennec, also known as 'Now that I have it built, what next?'

(4) Device Specific Testing Information, which is information about specific devices that people have tested and their issues


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.


2. 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 sets up my HG.EXE path to a self-installed latest version of Mercurial.

All shell files in c:\mozilla-build\msys\etc\profile.d are executed upon bash shell startup.