Firefox build instructions
-
- Posts: 268
- Joined: January 12th, 2003, 12:47 pm
As far as i can tell, files in the listed directories below are missing. These directories do exist, but they just don't have any files in them.
<code>/cygdrive/c/mozilla/mozilla/browser
/cygdrive/c/mozilla/mozilla/chrome
/cygdrive/c/mozilla/mozilla/toolkit</code>
By the way, times like this making Mozilla even greater, Using "find as you type" , I could easily find errors from the log.
Also i would like to ask, when i download the source from CVS, what exactly am i downloading ? Mozilla or firefox ? what version ? stable release or nightly? Where can I get these information ? where can i change these settings ?
Thanks.
<code>/cygdrive/c/mozilla/mozilla/browser
/cygdrive/c/mozilla/mozilla/chrome
/cygdrive/c/mozilla/mozilla/toolkit</code>
By the way, times like this making Mozilla even greater, Using "find as you type" , I could easily find errors from the log.
Also i would like to ask, when i download the source from CVS, what exactly am i downloading ? Mozilla or firefox ? what version ? stable release or nightly? Where can I get these information ? where can i change these settings ?
Thanks.
-
- Posts: 1988
- Joined: February 9th, 2003, 3:25 pm
You should definitely try <code>make -f client.mk checkout</code> again then. It's equivalent to pull_all, which is an old name from an old system.
What you are downloading depends on the Tag of the branch specified at the top of client.mk. Here are two examples, first the FIREFOX 0.8 version:
And then the trunk version:
Having a blank line after the = indicates that cvs should pull from the head of the source tree, aka the trunk where development is occuring. So you are getting nightly code rather than stable, and the current version of Firefox is 0.8.0+ and based on Mozilla 1.7a. The trunk is currently frozen to fix only major bugs (blockers) before releasing 1.7alpha, but the Firefox developers continue to make checkins to their parts of the source tree because we have just had 0.8 and 0.9 won't be here too soon. Firefox is basically Mozilla + mozilla/browser + mozilla/toolkit. Does that lot help ?
What you are downloading depends on the Tag of the branch specified at the top of client.mk. Here are two examples, first the FIREFOX 0.8 version:
Code: Select all
#######################################################################
# Checkout Tags
#
# For branches, uncomment the MOZ_CO_TAG line with the proper tag,
# and commit this file on that tag.
#MOZ_CO_TAG = <tag>
MOZ_CO_TAG = FIREFOX_0_8_RELEASE
NSPR_CO_TAG = FIREFOX_0_8_RELEASE
PSM_CO_TAG = FIREFOX_0_8_RELEASE
NSS_CO_TAG = FIREFOX_0_8_RELEASE
LDAPCSDK_CO_TAG = FIREFOX_0_8_RELEASE
ACCESSIBLE_CO_TAG = FIREFOX_0_8_RELEASE
IMGLIB2_CO_TAG = FIREFOX_0_8_RELEASE
IPC_CO_TAG = FIREFOX_0_8_RELEASE
TOOLKIT_CO_TAG = FIREFOX_0_8_RELEASE
BROWSER_CO_TAG = FIREFOX_0_8_RELEASE
MAIL_CO_TAG = FIREFOX_0_8_RELEASE
STANDALONE_COMPOSER_CO_TAG = FIREFOX_0_8_RELEASE
BUILD_MODULES = all
And then the trunk version:
Code: Select all
#######################################################################
# Checkout Tags
#
# For branches, uncomment the MOZ_CO_TAG line with the proper tag,
# and commit this file on that tag.
#MOZ_CO_TAG = <tag>
NSPR_CO_TAG = NSPRPUB_PRE_4_2_CLIENT_BRANCH
PSM_CO_TAG = #We will now build PSM from the tip instead of a branch.
NSS_CO_TAG = NSS_CLIENT_TAG
LDAPCSDK_CO_TAG = ldapcsdk_50_client_branch
ACCESSIBLE_CO_TAG =
IMGLIB2_CO_TAG =
IPC_CO_TAG =
TOOLKIT_CO_TAG =
BROWSER_CO_TAG =
MAIL_CO_TAG =
STANDALONE_COMPOSER_CO_TAG =
BUILD_MODULES = all
Having a blank line after the = indicates that cvs should pull from the head of the source tree, aka the trunk where development is occuring. So you are getting nightly code rather than stable, and the current version of Firefox is 0.8.0+ and based on Mozilla 1.7a. The trunk is currently frozen to fix only major bugs (blockers) before releasing 1.7alpha, but the Firefox developers continue to make checkins to their parts of the source tree because we have just had 0.8 and 0.9 won't be here too soon. Firefox is basically Mozilla + mozilla/browser + mozilla/toolkit. Does that lot help ?
-
- Posts: 268
- Joined: January 12th, 2003, 12:47 pm
Hi, I am running <code>make -f client.mk</code> now.
Do i have to delete any previous files or directories ? I hope the answer is "no", because i didn't.
I checked my client.mk file. It is for the trunk version.
Just wondering, if i change the tag to firefox, does it mean the download would be faster and so would the building process? Because i assume that firefox cvs contains much less number of files.
By the way, I really appreciate the help here. Although i haven't really built anything yet. But so far, i am having so much fun just looking at all those info flying off the DOS screen.
Do i have to delete any previous files or directories ? I hope the answer is "no", because i didn't.
I checked my client.mk file. It is for the trunk version.
Just wondering, if i change the tag to firefox, does it mean the download would be faster and so would the building process? Because i assume that firefox cvs contains much less number of files.
By the way, I really appreciate the help here. Although i haven't really built anything yet. But so far, i am having so much fun just looking at all those info flying off the DOS screen.
-
- Posts: 1988
- Joined: February 9th, 2003, 3:25 pm
mikecop wrote:Do i have to delete any previous files or directories ? I hope the answer is "no", because i didn't.
See how it goes without, and if you aren't pulling any files in the three directories you mentioned then zap them and try again. Perhaps CVS has gotten very confused.
mikecop wrote:I checked my client.mk file. It is for the trunk version.
Just wondering, if i change the tag to firefox, does it mean the download would be faster and so would the building process? Because i assume that firefox cvs contains much less number of files.
No, not at all - you really need all the Mozilla stuff. If you were to use the FIREFOX_0_8_RELEASE branch then you will get no bug fixes at all and it still contains all the stuff you are trying to avoid. If you want the stable release then you would probably be better off downloading the <a href="http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/0.8/firefox-source-0.8.tar.bz2">0.8 source tarball</a> than mucking around with CVS.
As far as I know, there is no way to get around the slowest part of a checkout - the module SeaMonkeyAll. This is core Mozilla stuff and therefore core Firefox stuff. It will also have no effect on build time - the dev's have already trimmed alot of the features they consider bloat.
One way to think about this is that Mozilla is a large family home, and Firefox is upstairs extensions you added to make it even cooler. Even the main building has problems and needs fixing up continually, and so you have to reconstruct the new parts every time to incorporate that. Perhaps that's not a very good analogy !
mikecop wrote:By the way, I really appreciate the help here. Although i haven't really built anything yet. But so far, i am having so much fun just looking at all those info flying off the DOS screen.
No worries. It's very rewarding when you finally get it going, and I enjoy helping people get there.
Last edited by nrthomas on February 18th, 2004, 2:04 pm, edited 1 time in total.
-
- Posts: 30
- Joined: April 6th, 2003, 5:48 am
- Location: Oslo, Norway
- Contact:
Christian Haugan wrote:I'm trying to build firefox using msvc .NET 2003. I've followed the instructions at http://iterator.besmirched.org/mozilla/mozbuild.html using the following .mozconfig:
MOZILLA_OFFICIAL=1
BUILD_OFFICIAL=1
export MOZ_PHOENIX=1
mk_add_options MOZ_PHOENIX=1
ac_add_options --disable-ldap
ac_add_options --disable-mailnews
ac_add_options --enable-extensions=cookie,xml-rpc,xmlextras,p3p,pref,
transformiix,universalchardet,typeaheadfind,webservices,inspector
ac_add_options --enable-crypto
ac_add_options --disable-composer
ac_add_options --disable-profilesharing
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-optimize="/O2"
ac_add_options --enable-static
ac_add_options --disable-shared
ac_add_options --disable-installer
But after quite a while of building, the process fails at:
/cygdrive/d/mozilla/mozilla/build/cygwin-wrapper d:/mozilla/moztools/bin/nsinsta
ll -m 644 uconv.lib ../../../dist/lib/components
+++ making chrome d:/mozilla/mozilla/intl/uconv/src => ../../../dist/bin/chrome
/en-US.jar
copy(d:/mozilla/mozilla/intl/uconv/src/charsetTitles.properties, ../../../dist/b
in/chrome/en-US/locale/en-US/global/charsetTitles.properties) failed: No such fi
le or directory at d:/mozilla/mozilla/config/make-jars.pl line 421, <STDIN> line
2.
make[5]: *** [libs] Error 2
make[5]: Leaving directory `/cygdrive/d/mozilla/mozilla/intl/uconv/src'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/cygdrive/d/mozilla/mozilla/intl/uconv'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/cygdrive/d/mozilla/mozilla/intl'
make[2]: *** [tier_9] Error 2
make[2]: Leaving directory `/cygdrive/d/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/mozilla/mozilla'
make: *** [build] Error 2
Any ideas of what I can do to fix this?
-
Christian Haugan
I finally solved this. In case anybody else has a similar problem, here is what I did:
First i tried a make -f client.mk clean, but that failed to. Error message was something like "file is being used by another program...". So I tried to do a rd /s d:\mozilla\mozilla, but that gave the same error message on several files. So instead of trying to figure out which process had locked my files, I booted up my Win2000 in safe-mode with cmd prompt. Did rd /s d:\mozilla\mozilla, now without any error messages. Then rebooted win2000 in the normal way. Checked out client.mk again, pulled the source again. And my next attempt to build was successful.
-
Christian Haugan
-
- Posts: 268
- Joined: January 12th, 2003, 12:47 pm
OK, the download has finished.
I tried <code>make -f client.mk build_all > c:\mozilla\build.log 2>&1</code> , and failed.
The build log look a bit different this time. It does not have all the <code>--disable-</code> and <code>#define</code> things.
This is the beginning and end of the build log:
Should I delete and old files before start building again ? For example, the c:\mozilla\mozilla\dist directory ?
Thanks again.
I tried <code>make -f client.mk build_all > c:\mozilla\build.log 2>&1</code> , and failed.
The build log look a bit different this time. It does not have all the <code>--disable-</code> and <code>#define</code> things.
This is the beginning and end of the build log:
Adding client.mk options from /cygdrive/c/mozilla/mozilla/.mozconfig:
MOZ_PHOENIX=1
make
make[1]: Entering directory `/cygdrive/c/mozilla/mozilla'
/usr/bin/make -C config export
make[2]: Entering directory `/cygdrive/c/mozilla/mozilla/config'
.....
.....
.....
make[5]: Entering directory `/cygdrive/c/mozilla/mozilla/browser/components/build'
rm -f brwsrcmp.dll
/cygdrive/c/mozilla/mozilla/build/cygwin-wrapper g++ -mno-cygwin -shared -o brwsrcmp.dll nsModule.o ./module.res -mwindows -Wl,--whole-archive ../../../dist/lib/libbookmarks_s.a ../../../dist/lib/libwinhooks_s.a -Wl,--no-whole-archive -L../../../dist/lib -lxpcom -L../../../dist/bin -L../../../dist/lib -lnspr4 -lplc4 -lplds4 -L../../../dist/lib -ljs3250 ../../../dist/lib/libunicharutil_s.a -L../../../dist/lib -lxpcom_compat -Wl,--version-script,/cygdrive/c/mozilla/mozilla/build/unix/gnu-ld-scripts/components-version-script -lm -lole32 -lshell32 -lversion
../../../dist/lib/libunicharutil_s.a(nsUnicharUtils.o.b)(.text+0x1a4):nsUnicharUtils.cpp: undefined reference to `_imp__NS_GetServiceManager'
make[5]: *** [brwsrcmp.dll] Error 1
make[5]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser/components/build'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser/components'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser'
make[2]: *** [tier_99] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make: *** [build] Error 2
Should I delete and old files before start building again ? For example, the c:\mozilla\mozilla\dist directory ?
Thanks again.
-
- Posts: 1988
- Joined: February 9th, 2003, 3:25 pm
So close ! The lack of configure stuff is normal if mozconfig is unchanged.
Better than deleting mozilla/dist/bin would be to go:
Did you try that already ? It'll completely wipe out any previous build attempts and everything should go smooth as silk afterwards. It'll just take a while to do a complete recompilation.
There is probably a clever way to figure it out but I have to sleep.
Better than deleting mozilla/dist/bin would be to go:
Code: Select all
make -f client.mk distclean
Did you try that already ? It'll completely wipe out any previous build attempts and everything should go smooth as silk afterwards. It'll just take a while to do a complete recompilation.
There is probably a clever way to figure it out but I have to sleep.
-
- Posts: 268
- Joined: January 12th, 2003, 12:47 pm
HI, me again.
This time it went much further, at least the build.log file is 5,805K, instead of the previous 1,000+K . :)
I don't see any error messages or "can't read" messages this time, except at the end of the log.
Any ideas what happened? and what should i do?
Thanks again. Sorry for all these trouble.
This time it went much further, at least the build.log file is 5,805K, instead of the previous 1,000+K . :)
I don't see any error messages or "can't read" messages this time, except at the end of the log.
/cygdrive/c/mozilla/mozilla/build/cygwin-wrapper g++ -mno-cygwin -shared -o brwsrcmp.dll nsModule.o ./module.res -mwindows -Wl,--whole-archive ../../../dist/lib/libbookmarks_s.a ../../../dist/lib/libwinhooks_s.a -Wl,--no-whole-archive -L../../../dist/lib -lxpcom -L../../../dist/bin -L../../../dist/lib -lnspr4 -lplc4 -lplds4 -L../../../dist/lib -ljs3250 ../../../dist/lib/libunicharutil_s.a -L../../../dist/lib -lxpcom_compat -Wl,--version-script,/cygdrive/c/mozilla/mozilla/build/unix/gnu-ld-scripts/components-version-script -lm -lole32 -lshell32 -lversion
../../../dist/lib/libunicharutil_s.a(nsUnicharUtils.o.b)(.text+0x1a4):nsUnicharUtils.cpp: undefined reference to `_imp__NS_GetServiceManager'
make[5]: *** [brwsrcmp.dll] Error 1
make[5]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser/components/build'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser/components'
make[3]: *** [libs] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/mozilla/browser'
make[2]: *** [tier_99] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make: *** [build] Error 2
Any ideas what happened? and what should i do?
Thanks again. Sorry for all these trouble.
-
- Posts: 1988
- Joined: February 9th, 2003, 3:25 pm
Thanks hypeiv, that's useful to know. What version of binutils are people having trouble using ? I remember seeing on this <a href="http://forums.mozillazine.org/viewtopic.php?t=49777&highlight=binutils">topic</a> that there was a problem with versions newer than 2.14.90 20030807-1.
Also, the win32api package just got updated to version 2.5. Are you guys using that ?
Also, the win32api package just got updated to version 2.5. Are you guys using that ?
-
- Posts: 7
- Joined: February 18th, 2004, 1:17 pm
i am using binutils-2.14.90-20030807-1 and win32api 2.4. I have talked to someone who is getting the same problem and is using the same enviornment as he was when he was able to compile before 2-15-04.
I don't think there have been any gcc builds posted on burning edge since the 14th or 15th so we are not alone.
I will give 2.5 a try for kicks and if it works I will post back here.
UPDATE - same exact error with 2.5
I don't think there have been any gcc builds posted on burning edge since the 14th or 15th so we are not alone.
I will give 2.5 a try for kicks and if it works I will post back here.
UPDATE - same exact error with 2.5
-
- Posts: 1988
- Joined: February 9th, 2003, 3:25 pm
Ok, I think I might have tracked this down. Ben made a checkin 02/14/2004 17:49 PST to mozilla/browser/components/build/Makefile.in, which changes the order libraries where listed for linking. You can see this at the bottom of this <a href="http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&root=/cvsroot&subdir=mozilla/browser/components/build&command=DIFF&root=/cvsroot&file=Makefile.in&rev1=1.13&rev2=1.14">bonsai query</a>.
Test scenario:
1, cd to mozilla/browser/components/build/
2, edit Makefile (not Makefile.in) to change the lines from:
3, issue the command "make libs"
4, see if the error persists
Test scenario:
1, cd to mozilla/browser/components/build/
2, edit Makefile (not Makefile.in) to change the lines from:
toEXTRA_DSO_LDOPTS += \
$(EXTRA_DSO_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_JS_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_XPCOM_OBSOLETE_LIBS) \
$(NULL)
EXTRA_DSO_LDOPTS += \
$(EXTRA_DSO_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_XPCOM_OBSOLETE_LIBS) \
$(MOZ_JS_LIBS) \
$(NULL)
3, issue the command "make libs"
4, see if the error persists
-
- Posts: 54
- Joined: September 10th, 2003, 6:01 pm
Build FireFox with .NET SDK?
hi,
i read somewhere here, that someone mention that the .NET SDK is free, so there is a compiler there right? so can i build Firefox with the SDK only?
anyone can give me hint? please thank you
i read somewhere here, that someone mention that the .NET SDK is free, so there is a compiler there right? so can i build Firefox with the SDK only?
anyone can give me hint? please thank you
-
- Posts: 70
- Joined: December 6th, 2002, 1:33 pm
- Location: Texas
CrazyFred wrote:Ok, I think I might have tracked this down. Ben made a checkin 02/14/2004 17:49 PST to mozilla/browser/components/build/Makefile.in, which changes the order libraries where listed for linking. You can see this at the bottom of this <a href="http://bonsai.mozilla.org/cvsview2.cgi?diff_mode=context&whitespace_mode=show&root=/cvsroot&subdir=mozilla/browser/components/build&command=DIFF&root=/cvsroot&file=Makefile.in&rev1=1.13&rev2=1.14">bonsai query</a>.
Test scenario:
1, cd to mozilla/browser/components/build/
2, edit Makefile (not Makefile.in) to change the lines from:toEXTRA_DSO_LDOPTS += \
$(EXTRA_DSO_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_JS_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_XPCOM_OBSOLETE_LIBS) \
$(NULL)EXTRA_DSO_LDOPTS += \
$(EXTRA_DSO_LIBS) \
$(MOZ_UNICHARUTIL_LIBS) \
$(MOZ_COMPONENT_LIBS) \
$(MOZ_XPCOM_OBSOLETE_LIBS) \
$(MOZ_JS_LIBS) \
$(NULL)
3, issue the command "make libs"
4, see if the error persists
It worked! I used to have the brwsrcmp.dll error almost at the end of my build process and I don't anymore!!
-
- Posts: 268
- Joined: January 12th, 2003, 12:47 pm
Hi,
I think a made a little mess.
I was looking through cygwin's site. And it says, it is better if cygwin was not installed in c:\ . But i already did so. Therefore i tried to rearrange all the directories from this:
<code>c:\cygwin
c:\mingw
c:\mozilla
c:\mozilla\moztools</code>
to this ( I created a linux directory , re-installed cygwin , and moved mingw and mozillla) :
<code>c:\linux\cygwin
c:\linux\mingw
c:\linux\mozilla
c:\linux\mozilla\moztools</code>
Now i tried both ,
but i get this error message in both commend:
<code>checking for trouble comparing to zero near std::operator!=()... (cached) no
checking for LC_MESSAGES... (cached) no
configure: error: Building crypto support requires a valid version of the standalone assembler, ml.exe.
*** Fix above errors and then restart with "make -f client.mk build"
make: *** [/cygdrive/c/linux/mozilla/mozilla/Makefile] Error 1</code>
What have I done !!
What should i do now?
I think a made a little mess.
I was looking through cygwin's site. And it says, it is better if cygwin was not installed in c:\ . But i already did so. Therefore i tried to rearrange all the directories from this:
<code>c:\cygwin
c:\mingw
c:\mozilla
c:\mozilla\moztools</code>
to this ( I created a linux directory , re-installed cygwin , and moved mingw and mozillla) :
<code>c:\linux\cygwin
c:\linux\mingw
c:\linux\mozilla
c:\linux\mozilla\moztools</code>
Now i tried both
Code: Select all
make -f client.mk distclean
Code: Select all
make -f client.mk build_all
but i get this error message in both commend:
<code>checking for trouble comparing to zero near std::operator!=()... (cached) no
checking for LC_MESSAGES... (cached) no
configure: error: Building crypto support requires a valid version of the standalone assembler, ml.exe.
*** Fix above errors and then restart with "make -f client.mk build"
make: *** [/cygdrive/c/linux/mozilla/mozilla/Makefile] Error 1</code>
What have I done !!
What should i do now?