pymake

  • Revision slug: pymake
  • Revision title: pymake
  • Revision id: 10773
  • Created:
  • Creator: Roc
  • Is current revision? No
  • Comment 64 words added

Revision Content

make.py (and the pymake modules that support it) are an implementation of the make tool which are mostly compatible with makefiles written for GNU make. http://benjamin.smedbergs.us/pymake/

Prerequisites

You need to have have MozillaBuild installed.  Additionally, you need to ensure your mingw shell is instructed to |export SHELL| (exactly that) before you try to run pymake.

Usage

Follow the build instructions, except for the "Build and install" section, then:

  • Switch to the root of the source directory, then run autoconf-2.13.
  • Change to js/src and run autoconf-2.13 again.
  • Change to nsprpub/ and run autoconf-2.13 again.
  • Create your objdir.
  • Finally, change to your objdir and run path_to_srcdir/configure.

Running python -O path_to_srcdir/build/pymake/make.py starts the build. Add -j2 to the command line to do a parallel build (MOZ_MAKE_FLAGS in your mozconfig is not used by pymake). Using a -j value equal to the number of CPU cores visible to the OS is recommended. Warning: on Windows, path_to_srcdir must be a relative path, or pymake (and/or the configure step above, depending on the format of your paths and whether you used --srcdir with configure) will fail. In particular, using pymake with the object files on a different drive to the source files is currently not supported.

After updating your source, it's a good idea to redo the autoconf-2.13 and configure steps before building, whether it be an incremental or full build.

Note that you should run configure from your objdir using a relative path (eg "../configure") or using a full DOS-style path (eg "e:/builds/mozilla-central/configure"). The latter will fail in NSPR until bug 524785 is fixed. In the meantime, if you want to have your srcdir and objdir on different drives, you might be able to use a NTFS symlink or junction to glue things together so that you can invoke configure with a relative path. See also, bug 524785.

Revision Source

<p>make.py (and the pymake modules that support it) are an implementation of the make tool which are mostly compatible with makefiles written for GNU make. <a class=" external" href="http://benjamin.smedbergs.us/pymake/" title="http://benjamin.smedbergs.us/pymake/">http://benjamin.smedbergs.us/pymake/</a></p>
<h3>Prerequisites</h3>
<p>You need to have have MozillaBuild installed.  Additionally, you need to ensure your mingw shell is instructed to |export SHELL| (exactly that) before you try to run pymake.</p>
<h3>Usage</h3>
<p>Follow the <a href="/En/Developer_Guide/Build_Instructions" title="En/Developer Guide/Build Instructions">build instructions</a>, except for the "Build and install" section, then:</p>
<ul> <li>Switch to the root of the source directory, then run <strong>autoconf-2.13</strong>.</li> <li>Change to <strong>js/src</strong> and run <strong>autoconf-2.13</strong> again.</li> <li>Change to <strong>nsprpub/</strong> and run <strong>autoconf-2.13</strong> again.</li> <li>Create your objdir.</li> <li>Finally, change to your <strong>objdir</strong> and run <strong>path_to_srcdir/configure</strong>.</li>
</ul>
<p>Running <strong>python -O path_to_srcdir/buil</strong><strong>d/pymake/make.py</strong> starts the build. Add <strong>-j2</strong> to the command line to do a parallel build (MOZ_MAKE_FLAGS in your mozconfig is not used by pymake). Using a <strong>-j</strong> value equal to the number of CPU cores visible to the OS is recommended. <strong>Warning</strong>: on Windows, <strong>path_to_srcdir</strong> must be a relative path, or pymake (and/or the configure step above, depending on the format of your paths and whether you used --srcdir with configure) will fail. In particular, using pymake with the object files on a different drive to the source files is currently not supported.</p>
<p>After <a href="/En/Developer_Guide/Build_Instructions#Get_the_source" title="En/Developer Guide/Build Instructions#Get the source">updating your source</a>, it's a good idea to redo the <strong>autoconf-2.13</strong> and <strong>configur</strong><strong>e</strong> steps before building, whether it be an <a href="/en/Incremental_Build" title="en/Incremental Build">incremental</a> or full build.</p>
<p>Note that you should run configure from your objdir using a relative path (eg "../configure") or using a full DOS-style path (eg "e:/builds/mozilla-central/configure"). The latter will fail in NSPR until bug 524785 is fixed. In the meantime, if you want to have your srcdir and objdir on different drives, you might be able to use a NTFS symlink or junction to glue things together so that you can invoke configure with a relative path. See also, bug 524785.</p>
Revert to this revision