-
Notifications
You must be signed in to change notification settings - Fork 28
DeveloperTips
dmitris edited this page Feb 18, 2013
·
7 revisions
Navigating the vast amount of Mozilla documentation can be daunting at times. Here, we've tried to collect the most relevant bits of information to get you started as fast as possible.
Build Instructions - Linux
On Ubuntu12LTS:
- install git - sudo apt-get install git
- check out the repository - git clone git://github.com/wisec/DOMinator.git dominator && cd dominator
- install prerequisites following the instructions on https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Linux_Prerequisites#Ubuntu
- additionally, install: sudo apt-get install libnotify-dev libidl-dev
- Firefox uses .mozconfig files to specify the type of build. You can find more instructions here: https://developer.mozilla.org/en-US/docs/Configuring_Build_Options. For our purposes, you can move/rename one of the .mzoconfig* files in the top directory to the default .mozconfig file and build:
- make -f client.mk build. More info can be found here: https://developer.mozilla.org/en-US/docs/Build_and_Install
- ccache is highly recommended to speed up the build instructions. More information can be found here: https://developer.mozilla.org/en-US/docs/ccache
- Consider also using parallel builds and the objDir approach(also highly recommended) :https://developer.mozilla.org/en-US/docs/Configuring_Build_Options#Building_with_an_Objdir
On Fedora 17:
- follow instructions above to clone the code
- follow instruction on https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Linux_Prerequisites for All Distributions (bootstrap script)
- sudo yum install libIDL-devel
- make -f client.mk
On Windows:
(the following describes an option of building DOMinator with MozillaBuild)
- install Git for Windows http://windows.github.com/
- open Git Shell
- make sure to set config.autcrlf=false and core.eol=lf (to prevent fetching Windows end-of-lines)
- check out the repository
- follow https://developer.mozilla.org/en-US/docs/Developer_Guide/Build_Instructions/Windows_Prerequisites - use MozillaBuild package
- copy .mozconfigOPT_Win to .mozconfig
- use pymake (NOT make): python -OO build/pymake/make.py -f client.mk
Here are some tips on setting up your development environment: https://github.com/wisec/DOMinator/wiki/Environment-Setup
Below is a list of files modified or added in the project compared to the starting point - the vanilla FF 8.0 source code (created by checking out the 3fb031fb4d and running: git diff --name-only master..HEAD):
- .mozconfig
- .mozconfigDBG_ok
- .mozconfigOPT
- .mozconfigOPT_Win
- .mozconfig_Vanilla
- README.txt
- browser/app/profile/firefox.js
- browser/branding/aurora/branding.nsi
- browser/installer/windows/nsis/installer.nsi
- browser/installer/windows/nsis/shared.nsh
- browser/installer/windows/nsis/uninstaller.nsi
- build/autoconf/mozconfig-find
- build/autoconf/mozconfig2client-mk
- build/autoconf/mozconfig2configure
- configure
- content/base/src/nsAttrValue.cpp
- content/base/src/nsAttrValue.h
- content/base/src/nsGenericElement.cpp
- content/html/content/src/nsGenericHTMLElement.cpp
- content/html/content/src/nsHTMLInputElement.cpp
- content/html/content/src/nsHTMLInputElement.h
- dom/base/nsDOMClassInfo.cpp
- dom/base/nsJSUtils.h
- js/src/Makefile.in
- js/src/jsapi.cpp
- js/src/jsapi.h
- js/src/jsarray.cpp
- js/src/jsatom.cpp
- js/src/jsatom.h
- js/src/jscntxt.cpp
- js/src/jscntxt.h
- js/src/jsemit.cpp
- js/src/jsfun.cpp
- js/src/jsinterp.cpp
- js/src/jsinterp.h
- js/src/jsobj.cpp
- js/src/json.cpp
- js/src/jsopcode.cpp
- js/src/jsregexp.cpp
- js/src/jsregexpinlines.h
- js/src/jsscope.cpp
- js/src/jsscope.h
- js/src/jsstr.cpp
- js/src/jsstr.h
- js/src/taint.cpp
- js/src/taint.h
- js/src/vm/String-inl.h
- js/src/vm/String.cpp
- js/src/vm/String.h
- js/src/xpconnect/src/xpccomponents.cpp
- js/src/xpconnect/src/xpcconvert.cpp
- js/src/xpconnect/src/xpcjsruntime.cpp
- js/src/xpconnect/src/xpcquickstubs.cpp
- js/src/xpconnect/src/xpcquickstubs.h
- tainttests/UnitTest.js
- tainttests/unit_tests.js
- xpcom/string/public/nsString.h
- xpcom/string/public/nsTDependentString.h
- xpcom/string/public/nsTString.h
- xpcom/string/public/nsTSubstring.h
- xpcom/string/public/nsXPCOMStrings.h
- xpcom/string/src/nsReadableUtils.cpp
- xpcom/string/src/nsTSubstring.cpp