Gmake vs. Pymake

Mozilla supports building with two different (but mostly compatible) build tools: gmake and pymake.

Path issues on Windows

On Windows, you must take special care to be able to switch back and forth between gmake and pymake on the same object dir. Gmake uses MSYS paths ("/c/dev/foo"), while pymake uses native Windows paths ("C:\dev\foo"). If you try to switch from gmake to pymake or pymake to gmake the build will fail unless you did a relative configure. A relative configure produces paths that look like "../../foo" which can be understood by gmake and pymake. To configure relatively, invoke configure or client.mk from your objdir.

For example, if using the default objdir, you might type in the root of your source tree: mkdir obj-i686-pc-mingw32; cd obj-i686-pc-mingw32; python ../build/pymake/make.py -f ../client.mk.

Note that typing "python build/pymake/make.py -f client.mk" does NOT trigger a relative configure. The working directory must be your objdir when you invoke configure to get paths that will work in gmake and pymake.

You should also make sure that the object directory path specified in your mozconfig matches the directory in which you're invoking pymake.