With all the things that still depend on all the variables derived from
--host and --target in both old-configure and moz.build, we still need
to keep variables such as OS_ARCH, OS_TARGET, CPU_ARCH, OS_TEST, etc.
Eventually, we'd settle on the output of split_triplet.
This /tries/ to preserve the current values for all these variables,
while also trying to make things a little more consistent. It also
effectively rejects OSes such as HPUX or AIX, because it is unclear
the decades old accumulated scripts related to them still do anything
useful, and we might as well have them start again from scratch, which,
in the coming weeks, will be even easier.
Because --enable-application is the current way to do things, transpose
it to configure.py, but since --enable-application=js doesn't make
sense, make it an alias of a new --enable-project option.
This only partially moves --enable-application out of old-configure.in
because there are a lot of other things intertwined with it.
This moves all the reading mozconfig, finding autoconf, refreshing the
old configure, and running the old configure into sandboxed
moz.configure. This effectively bootstraps the sandboxed python configure.
The nice side effect is that now we can have actual dicts for defines
and substs from the start, which simplifies so things, although it
requires adjustments to some unit tests.
Non-Mozilla distributors may wish to run their own autopush endpoint,
using a sender ID and corresponding Google API key that they control.
This simplifies that just a little bit, and gets Mozilla's release
engineering out of the business of managing non-sensitive secrets.
In the future, this sender ID will be baked into the Android APK's
string resources, in accordance with newer Google Play Services
library requirements.
MozReview-Commit-ID: AAxreEP73B0
--HG--
extra : rebase_source : 0a35d18a83558e4d27ac6a47b3833f1d69fed264
By default llvm (and rustc) generate sse2 instructions on x84, but
we have users on old cpus without this extension, causing crashes
in the rust code. Pass a flag when building for win32 to prevent this.
Export and AC_SUBST RUSTFLAGS so it's available in the build.
This apparently wasn't hooked up before.
At the same time, remove the (useless and wrong) check for AUTOCONF in
old-configure.in (wrong because it very likely is picking autoconf > 2.5).
--HG--
extra : rebase_source : 4a17c9d92c9561ef221b1a300e0e6d48ca56862f
-Wno-psabi has not been necessary since we updated the build machines to Android NDK r8c three years ago in bug 826133.
-Wsometimes-initialized is not necessary because it is implicitly enabled by clang's -Wuninitialized, which is enable by -Wall.
-Wcast-align is very noisy and we apparently only enable it for gcc on 32-bit x86 builds?
-Wno-unused-local-typedef is no longer necessary. This is the clang flag; gcc's flag is -Wno-unused-local-typedefs, with an 's'. Suppressing gcc's warning was recently deemed unnecessary and WONTFIX'd in bug 1243604. Unsurprisingly, we no longer need it on clang either.
-Wrange-loop-analysis is no longer necessary because it is implicitly enabled by -Wloop-analysis, which is enabled by the previous commit.