MozillaBuild RC1
I have a version of MozillaBuild ready for widespread testing, packaged as an installer. I’m calling this RC1 because I don’t know of any bugs and unless we find some it is fine to put into production. It works with MSVC6, 7, 8, and MSVC 8 Express with an SDK. It builds the trunk, 1.8, and 1.8.0 branches.
Download MozillaBuildSetup.exe now
The installer was built using the patch in bug 366823, which hasn’t been reviewed or landed yet.
Please download and test this package (and start using it as your Windows development environment). If you have issues, please file bugs in Core->Build Config.
Changes From the Previous Release
- Reset CYGWIN and PATH environment variables so as not to pick up any VC paths from the environment.
- Support MSVC8 Express Edition.
- Use the atlthunk_compat code to support the ATL headers provided with the platform SDK.
- Set CVS_RSH=ssh automatically.
- Add an installer.
In addition, I added a script which converts a cygwin source tree with CRLF line endings to an MSYS tree using LF line endings, and a client.mk check to warn users of problems with line endings.
January 13th, 2007 at 10:47 am
Benjamin,
thanks for this. Even for people like me, who have setup their build environment a few times already, this is very useful and very welcome. I was wondering if there are any installation instructions that I should be aware of, e.g. should MozillaBuild be installed before I install MSVC 8 Express and the SDK or after I’ve installed them? Thanks again.
January 15th, 2007 at 1:25 am
One notable: The default $HOME when using MSYS is often the same as the %USERPROFILE% directory on Windows, which is frequently a directory with spaces (c:\Documents and Settings\username). If your $HOME directory contains spaces, mozconfig-find will silently fail to track down your .mozconfig file.
It’s probably not irrational to make the MozillaBuild batch scripts set a default location for the mozconfig script, e.g. install a blank template file in the mozilla-build directory, and set MOZCONFIG=/c/mozilla-build/mozconfig.
January 16th, 2007 at 11:24 am
I would prefer to fix mozconfig-find to handle spaces correctly, rather than making everyone share a HOME (which includes .ssh private keys and such).
January 17th, 2007 at 6:28 am
Still bundling XEmacs… even though I am using Emacs myself, I still think it is odd.
January 24th, 2007 at 9:26 pm
I am building right now, seems to work fine. This time it really worked almost instantaneously with MSVC8 Express. “Almost” because I still had to create the registry key the guessing script is looking for.
Oh, and bundling with Emacs is still weird, right. I have better use for 50 MB of my disk space, not to mention the download size.
January 25th, 2007 at 4:25 pm
What is the registry key we need to set for this to work with msvc8 express?
I get this:
[c:\mozilla-build]start-msvc8.bat
“Mozilla tools directory: ”
4NT: C:\MOZILLA-BUILD\START-MSVC8.BAT [12] Unknown command “\guess-msvc.bat”
“Microsoft Visual C++ version 8 was not found. Exiting.”
January 26th, 2007 at 4:12 pm
Thanks for the tool. I am using VS 7.1 and I checked out branch 1.8.0.4 (1.5.0.4 in FF). My builds end with the following error message.
LINK : fatal error LNK1104: cannot open file ‘c:/mozilla-build/moztools/lib/libidl-0.6.lib’
When I look in that directory I see a file called libidl-0.6_s.lib. Is there a file missing here? Should I report this as a bug? Any help is appreciated. Thanks.
January 26th, 2007 at 5:52 pm
“rather than makeing everyone share a HOME”
I wasn’t suggesting that everyone should share a HOME, but that we should set the MOZCONFIG environment variable; if that variable is set, mozconfig-find will prefer it (instead of using HOME). With that said, I’ll try to hack up mozconfig-find to see if I can fix it and perhaps submit a patch for it.
January 26th, 2007 at 6:04 pm
Dan, I already fixed it: see bug 367127.
February 9th, 2007 at 11:03 am
Thank you so much for creating a 1-click package!
Man, that is sweet!
February 9th, 2007 at 11:25 am
Can I use this to compile the FireFox 2.0.0.1 source package ?
With a simple .mozconfig file:
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-@CONFIG_GUESS@
. $topsrcdir/browser/config/mozconfig
configure ; make gives me a windows error message
xpt_link.exe – Unable to Locate Component
This application has failed to start because MSVCR80.dll was not found. Re-installing the application may fix the problem.
I’m guessing it’s looking for:
C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll
Any idea why it didn’t find it? guess-msvc.bat found the MSVC8 directories just fine.
February 16th, 2007 at 6:31 pm
Works a treat but spotted a minor bug with start-msvc8.bat (raised).
My first ever build of Mozilla went smoothly so thanks.
2 comments
1) I agree, why include emacs?
2) Why not use mingw as well as msys? I note the main build docs say mingw is not recommend. Why is that? Would save big download of MSVC8 Express, SP1 and them and PSDK. Plus I really want to use FOSS tools if possible.
February 19th, 2007 at 3:23 am
The Zone Alarm firewall (free 7.0.302) has a memory leak that makes it impossible to build from scratch without many reboots. Basically the Total Commit Charge and Kernel Memory just keep going up until you get spurious ‘Access denied’ or other strange errors and system lock-up, even with 1GB.
It’s almost worth raising a ‘bug’ to save other’s the pain I’ve just been through.
February 23rd, 2007 at 11:26 am
If if start the build the configure stopps with the following error:
configure: error: Building crypto support requires a valid version of the standalone assembler (ml.exe for MSVC).
*** Fix above errors and then restart with “make -f client.mk build”
make: *** [configure] Error 1
Please, could you include masm from http://www.codingcrew.de/masm32/index.php
June 4th, 2007 at 4:09 pm
I’ve been trying to build mozilla as a spare time/”lunch” project. After reading many forum entries and creating a frankenstein’ed (hacked up/mingw/msys/cygwin/masm32/vc8) environment I am consistently getting the MSVCR80.dll error message from xpt_link. I have installed your latetst RC1 and get the same error.
I have also tried the suggestions from the MSDN that recommend creating a ‘redist’ dir below the executable(MyApp, xpt_link) with an appropriate manifest. That yeilds the related R6034 C library load problem.
I am guessing that there are deeper issues, that, from other forum entries and bug reports imply that many mozbuild tools need to be re-built/linked with VC8(Visual Studio 8 Express Edition). BTW I am attempting to build Thunderbird 2.0.
FWIW, I am NOT a Windows developer non do I play one on TV.
Thanks for your mozilla-build efforts. I’d be interested in any solution that permits me to successfully build!
June 11th, 2007 at 11:43 am
bmann, as documented, the 1.8.1 codebase does not build correctly with VC8 and there are no plans to make it do so. Please use VC6, or build the trunk codebase.
June 17th, 2007 at 8:14 am
Benjamin,
Thanks for this.
I use your mozillaBuildSetup1.exe to set up the eviroment, and got an error when build trunk code.
my configuration:
windows xp sp2, vc8, Trunk code (checked out just now).
Could you give me any suggestion or tips ?
Thanks in advance.
lib -NOLOGO -OUT:”nspr4_s.lib” ./prvrsion.obj io/./prfdcach.obj io/./prmwait.obj io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlog.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prstdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking/./prlink.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./prshma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./prolock.obj misc/./prrng.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.obj misc/./prtime.obj malloc/./prmalloc.obj io/./prdir.obj io/./prfile.obj io/./prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./prdump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj threads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./prustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./ntsec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj md/windows/./w95thred.obj md/windows/./w95io.obj md/windows/./w95cv.obj md/windows/./w95sock.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/windows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj md/windows/./w95dllmain.obj
LIB : fatal error LNK1181: can’t open input file“io/./prfdcach.objâ€
make[5]: *** [nspr4_s.lib] Error 157
make[5]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub/pr/src’
make[4]: *** [export] Error 2
make[4]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub/pr’
make[3]: *** [export] Error 2
make[3]: Leaving directory `/e/mozilla2/mozilla/obj-firefox/nsprpub’
make[2]: *** [tier_nspr] Error 2
make[2]: Leaving directory `/e/mozilla2/mozilla/obj-firefox’
make[1]: *** [default] Error 2
make[1]: Leaving directory `/e/mozilla2/mozilla/obj-firefox’
make: *** [build] Error 2
July 19th, 2007 at 4:35 am
Why can’t I set the MOZCONFIG variable from a script running in the MINGW32-console (MSVC8, WinXPSP2)? If I do
“export MOZCONFIG=foo/bar”
from the prompt, I can see the change with “set”. But if I put it in a script and try to run the script, it executes without errors but doesn’t change the variable.
In any case, I would like a way to feed strings to the console so I don’t have to type all that shit every time I’m going to build something (paste from Windows clipboard to the console window doesn’t work, tried Ctrl+V and right click).