Skip to content
Snippets Groups Projects
  • Mike Hommey's avatar
    54f61412
    Bug 1671424 - Move configure execution from client.mk to `mach configure`.... · 54f61412
    Mike Hommey authored
    Bug 1671424 - Move configure execution from client.mk to `mach configure`. r=firefox-build-system-reviewers,rstewart
    
    `mach configure` currently runs the equivalent to `make -f client.mk`.
    This is history, and essentially does the following:
    - Create `configure` and `js/src/configure` from `configure.in` and
    `js/src/configure.in` respectively.
    - Create the objdir.
    - Run `configure` from the objdir.
    
    The `configure` script is, nowadays, only really used as a means to set
    OLD_CONFIGURE (and also for people who want to run `configure`,
    literally, as in the `configure; make` workflow). `mach configure`
    actually doesn't need it. Neither does recursing into `js/src` require
    `js/src/configure`, since bug 1520340 (and now as of bug 1669633, we
    don't even recurse).
    
    Because configure.py can actually derive OLD_CONFIGURE on its own
    (except for `js/src/configure`, but `mach configure` doesn't run that),
    we don't really need `configure` for `mach configure`.
    
    So all in all, we're at a point in history where it's straightforward to
    just initiate configure.py from mach configure, so we just do that.
    
    And in the hypothetical case where the `mach configure` code is somehow
    running in python2, we get the mach virtualenv python3 and use it to
    execute `configure.py`.
    
    Differential Revision: https://phabricator.services.mozilla.com/D93741
    54f61412
    History
    Bug 1671424 - Move configure execution from client.mk to `mach configure`....
    Mike Hommey authored
    Bug 1671424 - Move configure execution from client.mk to `mach configure`. r=firefox-build-system-reviewers,rstewart
    
    `mach configure` currently runs the equivalent to `make -f client.mk`.
    This is history, and essentially does the following:
    - Create `configure` and `js/src/configure` from `configure.in` and
    `js/src/configure.in` respectively.
    - Create the objdir.
    - Run `configure` from the objdir.
    
    The `configure` script is, nowadays, only really used as a means to set
    OLD_CONFIGURE (and also for people who want to run `configure`,
    literally, as in the `configure; make` workflow). `mach configure`
    actually doesn't need it. Neither does recursing into `js/src` require
    `js/src/configure`, since bug 1520340 (and now as of bug 1669633, we
    don't even recurse).
    
    Because configure.py can actually derive OLD_CONFIGURE on its own
    (except for `js/src/configure`, but `mach configure` doesn't run that),
    we don't really need `configure` for `mach configure`.
    
    So all in all, we're at a point in history where it's straightforward to
    just initiate configure.py from mach configure, so we just do that.
    
    And in the hypothetical case where the `mach configure` code is somehow
    running in python2, we get the mach virtualenv python3 and use it to
    execute `configure.py`.
    
    Differential Revision: https://phabricator.services.mozilla.com/D93741