Commit Graph

113 Commits

Author SHA1 Message Date
Mike Hommey
9982192790 Bug 1322025 - Provide variants of host and target that depend on --help. r=chmanchester
We want to avoid giving --help dependencies to host and target, so that
they we don't spawn config.guess and config.sub when running configure
--help, and don't need to reach out to the which module to find a
suitable shell to execute them.

So, when --help is given, we return a fake host/target namespace, and
avoid the config.guess/config.sub-invoking code being executed.

Then, by giving the --help option to the linter, it can properly find
that the config.guess/config.sub-invoking code doesn't need the
dependency on --help.

This effectively unbreaks configure --help after bug 1313306.

--HG--
extra : rebase_source : 9ed4cbe5a81121b139d0d86aff6af542c2dff53b
2017-01-25 17:54:16 +09:00
John Paul Adrian Glaubitz
5a74d13630 Bug 1329194 - mozbuild: Add SH4 as target architecture. r=glandium 2017-01-20 09:11:54 +09:00
Sylvestre Ledru
b68ae46ad6 No bug - Add a space in the configure script. We are currently showing 'Mozillaautomation' r=trivial
MozReview-Commit-ID: KDn1ob7Pt6q
2017-01-09 10:12:45 +01:00
Mike Hommey
6b392d8d0c Bug 1324998 - Error out when a in-tree mozconfig is included. r=gps
Many people have been shooting themselves in the foot for too long by
including in-tree mozconfigs.

This change adds a guard that makes it an error when this happens on
builds not running on automation.

Analysis of the in-tree mozconfigs indicate that
build/mozconfig.automation is properly included by the in-tree
mozconfig that matter, directly or indirectly.

The only ones that don't include it are:
  b2g/config/mozconfigs/common.override
  b2g/graphene/config/mozconfigs/common.override
  browser/config/mozconfigs/linux64/source
  browser/config/mozconfigs/win64/common-win64
  build/mozconfig.cache
  build/mozconfig.clang-cl
  build/mozconfig.common.override
  build/mozconfig.rust
  build/mozconfig.vs-common
  build/mozconfig.win-common
  build/unix/mozconfig.gtk
  build/unix/mozconfig.stdcxx
  build/win32/mozconfig.vs-latest
  build/win32/mozconfig.vs2015-win64
  build/win64/mozconfig.vs-latest
  build/win64/mozconfig.vs2015
  mobile/android/config/mozconfigs/common.override

which are either empty for use in try builds (override files), or would
already cause great pain if they were directly included, so there's
little chance they would be.

--HG--
extra : rebase_source : 0e6accf241759f8d44868f253874f6546dbadb52
2016-12-21 16:58:38 +09:00
Mike Hommey
84aa5c4927 Bug 1319959 - Set _topsrcdir, _objdir, MOZ_BUILD_ROOT and DIST from python configure. r=gps
In some cases, on OSX, python's `os.path.realpath` and shell's `pwd -P`
don't agree on the case of paths on case-insensitive filesystems.

So make everyone agree by using the value from python configure.

--HG--
extra : rebase_source : 4d26bf30f3f125c4f75d42f79d8a80a4a0bf11ec
2016-11-24 09:47:15 +09:00
Ted Mielczarek
26ebd20ebf bug 1295937 - Improvements to gyp_reader to handle NSS gyp files. r=glandium
This patch contains a number of changes to the gyp_reader code:
* Add three new flags to GYP_DIRS:
** no_chromium, to skip forcing the includes/etc needed for chromium gyp files
** no_unified, to force building all sources without unification
** action_overrides, to pass scripts used when mapping gyp actions to moz.build GENERATED_FILES
* Handle the flags mentioned above in read_from_gyp
* Handle actions in gyp targets by mapping them to GENERATED_FILES, using scripts specified in the action_overrides flag. We don't try to handle the generic action case, we require special-casing for each action.
* Handle a subset of copies in gyp targets by mapping them to EXPORTS, just enough to handle the use of them for NSS exports.
* Handle shared_library and executable gyp targets
* Handle gyp target dependencies/libraries as USE_LIBS/OS_LIBS
* Handle generated source files
* Handle .def files in sources by mapping them to SYMBOLS_FILE
* Special-case some include_dirs:
** Map `<(PRODUCT_DIR)/dist/` to $DIST/include (to handle include paths for NSS exports)
** Map include_dirs starting with topobjdir to objdir-relative paths, to handle passing the NSPR include path to NSS
* split /build/gyp.mozbuild into two parts, with gyp_base.mozbuild containing generic bits, and gyp.mozbuild containing chromium-specific bits


MozReview-Commit-ID: FbDmlqDjRp4

--HG--
extra : rebase_source : d3fb470c589f92d8c956b9ecd550fb8df79ff5bc
2016-11-15 12:37:09 -05:00
Mike Hommey
5fd2ce5f30 Bug 1317359 - Move add_old_configure_* functions to util.configure. r=chmanchester
--HG--
extra : rebase_source : 240fd42920ed4a17592c368ab764672cac01ca31
2016-11-15 14:35:22 +09:00
Mike Hommey
6fa3828b4e Bug 1316844 - Remove unused dependencies. r=chmanchester
--HG--
extra : rebase_source : f9c4f39b198fbb83aa02b2eee65863695e7b75ca
2016-11-11 12:52:37 +09:00
Mike Hommey
17153e5c27 Bug 1314894 - Avoid path changes from b6be0e9e3e1e. r=chmanchester
Importing 'os' in python configure functions, on Windows, changes the
separate the various os.path functions use, and that can have
unexpected, badly handled, consequences. While on the long term, it is
desirable to make @imports('os') modify os.path to use the same base
functions as if there were no @imports, let's go with the simpler
workaround of restoring the non-{isfile,isdir,exists} os.path functions
from b6be0e9e3e1e.

--HG--
extra : rebase_source : a1857b5dce2aa818c72a77d0d9727ac6ce16cb8f
2016-11-04 06:50:43 +09:00
Mike Hommey
be15eb6990 Bug 1313306 - Remove --help dependencies from @dependable and delayed_getattr. r=chmanchester
This sadly requires to replace a few @dependendable to pass the lint
check.

--HG--
extra : rebase_source : e0fd1c6f104076ea9f2c3474aadb7bebdf9a7fd8
2016-10-27 15:00:51 +09:00
Mike Hommey
b89b671cc8 Bug 1313306 - Don't expose os.path.{exists,isdir,isfile} to python configure without an @imports. r=chmanchester
We want functions without an @imports to not have any side effects, and
to not use external resources. So remove the few functions we expose from
os.path without @imports('os') that do.

--HG--
extra : rebase_source : a9485ec269d4de5785d66d7772eda4fae5a84b4a
2016-10-26 11:49:58 +09:00
Chris Manchester
b09b78a7c5 Bug 1298740 - Populate Python environment with variables from mozconfig. r=glandium
MozReview-Commit-ID: KDCoxxh37Um
2016-10-14 11:06:30 -07:00
Mike Hommey
513e313d64 Bug 1311761 - Fixup after bug 1311069. r=chmanchester
--HG--
extra : rebase_source : 3ec168fd8d6cd67583718d3c2c7849e053428f08
2016-10-21 06:15:38 +09:00
Sebastian Hengst
cdcc9e20da Bug 1304829 - rename RELEASE_BUILD to RELEASE_OR_BETA: main part. r=ted,Mossop
MozReview-Commit-ID: 1lCt0xTMV5O
2016-10-08 11:14:49 +02:00
Mike Hommey
09e520c674 Bug 1307355 - Add an implicit dependency on --enable-compile-environment to pkg_check_modules. r=chmanchester
--HG--
extra : rebase_source : bd16320895f54d42c8207722a4a4c366d1332170
2016-10-04 15:33:37 +09:00
Mike Hommey
bdf0719848 Bug 1306138 - Include project-specific moz.configure at a later time. r=chmanchester
It is unfortunately not possible to include it last (or close to last,
before old.configure), but at least putting it after toolchain related
includes will be helpful.

--HG--
extra : rebase_source : bd027a87bc350c60dc1ba3308e2cc3b10782b506
2016-09-28 15:26:23 +09:00
Mike Hommey
202b56d2fe Bug 1293840 - Determine HAVE_64BIT_BUILD from --target. r=chmanchester
Until now, HAVE_64BIT_BUILD was entirely determined by a compiler check.
But we didn't run the check on e.g. artifact builds, while relying on
its result for some non-compilation related things, leading to subtle
discrepancies.

This changes the configure check to derive HAVE_64BIT_BUILD from bitness
determined by the target CPU, and double checked with a compiler check.

--HG--
extra : rebase_source : 5dc0cf2369ed4457bdd9a15736a70265a771d919
2016-08-10 11:39:16 +09:00
Mike Hommey
4eba7db364 Bug 1293579 - Use the new dependable function in a few places. r=chmanchester
--HG--
extra : rebase_source : 7062361fdb8e61b43a4044a3a7b1bf04f6ef3143
2016-08-09 15:55:10 +09:00
Mike Hommey
74733c57c1 Bug 1292463 - Add MOZ_AUTOMATION to python configure. r=chmanchester 2016-08-10 10:49:52 +09:00
Mike Hommey
cb0e41dd08 Bug 1288313 - Ensure the host and target compilers build for the right endianness. r=chmanchester
--HG--
extra : rebase_source : d47263faac601a0d1b5a89ac6e9d3d373f0b15a1
2016-07-21 08:24:45 +09:00
Mike Hommey
2578400d7b Bug 1288313 - Explicitly reject unknown CPU types. r=chmanchester
Since bug 1264482, unknown CPU types end up triggering a ValueError
exception because of the CPU EnumString. Even if somehow the CPU is
valid, the endianness is not and would trigger a ValueError exception
as well.

So, instead of letting the exceptions happen, use a nicer failure mode
with an explicit die().

--HG--
extra : rebase_source : 68432496712075c677de4bf71ea5d420fc70c35c
2016-04-26 16:27:46 +09:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Mike Hommey
9607db6e29 Bug 1283052 - Remove some of the magic around mozconfig detection. r=gps
The mozconfig detection logic has bitten us on many occasions in the
past. The following changes are made to tentatively improve the
situation:

- The API is modified such that autodetection of the mozconfig has
  to be a conscious decision made by the caller, and not triggered
  any time there is no mozconfig given, which could be a conscious
  decision of the opposite.

- mozinfo.json now stores the actual mozconfig (or lack thereof) used
  during configure.

--HG--
extra : rebase_source : c7a632afd414f25daf7bbe7e1a66c3736c26e039
2016-07-08 08:43:17 +09:00
Thomas Zimmermann
5d152949dc Bug 1276927: Build B2G with Android build scripts where possible, r=glandium
This patch adds support for configuring Gonk/B2G with Android-specific
build scripts. This removes duplicated code and simplifies maintenance
of B2G.

The B2G builds will now use libc++ for Gecko; instead of the obsolete
STLport. A side-effect of this patch is the removal of any compile-time
dependency on B2G's bionic library.

MozReview-Commit-ID: 7V6BmC7jlrs
2016-06-16 08:43:51 +01:00
Sebastian Hengst
d41fba2a76 Backed out changeset f6f4144c4dbc (bug 1276927) 2016-06-15 12:23:48 +02:00
Thomas Zimmermann
c63293b2ca Bug 1276927: Build B2G with Android build scripts where possible, r=glandium
This patch adds support for configuring Gonk/B2G with Android-specific
build scripts. This removes duplicated code and simplifies maintenance
of B2G.

The B2G builds will now use libc++ for Gecko; instead of the obsolete
STLport. A side-effect of this patch is the removal of any compile-time
dependency on B2G's bionic library.

MozReview-Commit-ID: 7V6BmC7jlrs
2016-06-15 10:59:49 +01:00
Chris Manchester
0676d58107 Bug 1272535 - Move MOZ_UPDATE_CHANNEL to Python configure. r=glandium
MozReview-Commit-ID: 2NuZZX1hoEP
2016-05-17 14:40:03 -07:00
Chris Manchester
3eb90d9dd1 Bug 1269513 - Implement PKG_CHECK_MODULES equivalent in Python configure. r=glandium
MozReview-Commit-ID: mhFMEG0UXz
2016-05-17 14:40:03 -07:00
Chris Manchester
4f42fe999c Bug 1257326 - Replace the env_flag configure template with a template that does not permit setting values directly from the environment or a mozconfig. r=glandium
For most cases, this replaces a value that was set in a way that would ignore
an environment variable, so this restores behavior for values that were
set in confvars.sh.

MozReview-Commit-ID: E31hm8uKq4D
2016-05-12 11:55:58 -07:00
Chris Manchester
ef201688a8 Bug 1257958 - Add a template to construct an environment-set option that sets the corresponding variable. r=glandium
MozReview-Commit-ID: 2ufoFdwCdDk
2016-04-22 13:01:21 -07:00
Mike Hommey
11b8ab106b Bug 1266343 - Add CONFIG_SHELL to allow to set a POSIX shell that is not sh. r=chmanchester
This allows unit tests to override the shell check, and is compatible with what
autoconf actually does.
2016-04-22 09:03:33 +09:00
Mike Hommey
3b7f3b9e75 Bug 1265627 - Prettify the MSVC version. r=ted 2016-04-20 07:51:55 +09:00
Mike Hommey
66ab5aca5c Bug 1264482 - Use the EnumString type for the different values we get out of split_triplet. r=ted 2016-04-19 15:09:37 +09:00
Mike Hommey
f3054520af Bug 1260327 - Expose a MOZ_CONFIGURE_OPTIONS variable containing configure options. r=chmanchester 2016-04-15 08:14:05 +09:00
Mike Hommey
f9f9e3be56 Bug 1264527 - Remove wanted_mozconfig_variables. r=nalexander
While forgetting about it was warned about, having to add every new
environment option to wanted_mozconfig_variables is cumbersome. It turns
out there is a hackish way to make things work without that list, which,
all things considered, is not worse than the hacks around the
wanted_mozconfig_variables function, and are certainly an improvement as
it doesn't require an ever growing list of environment options.
2016-04-15 08:14:05 +09:00
Mike Hommey
341ebd8679 Bug 1259382 - Move CC/CXX/HOST_CC/HOST_CXX to moz.configure. r=ted
At the same time, we improve things slightly by deriving HOST_CC from CC
in a smarter way, as well as CXX from CC, which we weren't doing
previously.

Many related things are not moved at the same time to keep the patch
somehow "small".
2016-04-14 13:21:29 +09:00
Mike Hommey
3098248f0e Bug 1256571 - Change the execution model of python configure. r=chmanchester
So far, everything was essentially executed at "declaration". This
made the sandbox code simpler, but to improve on the tooling around
python configure (for tests and introspection), we need to have more
flexibility, which executing everything at declaration doesn't give.

With this change, only @depends functions depending on --help, as
well as templates, are executed at the moment the moz.configure
files are included in the sandbox. The remainder is executed at the
end.
2016-04-14 07:29:42 +09:00
Mike Hommey
441c1e30d4 Bug 1259382 - Make add_old_configure_assignment work like set_config, accepting both @depends functions and literal values for both arguments it takes. r=ted 2016-04-13 17:11:36 +09:00
Mike Hommey
6684d3c1ee Bug 1259382 - Make mozbuild.shellutil.quote more useful for e.g. creating printable command lines. r=ted 2016-04-13 17:11:36 +09:00
Mike Hommey
2c621f97c8 Bug 1264129 - Add verbosity for the shell and autoconf checks in moz.configure. r=gps
Also get an absolute path for the shell.
2016-04-13 10:06:52 +09:00
Mike Hommey
1d9ff89e0e Bug 1262019 - Make --with-gonk imply --enable-default-toolkit=cairo-gonk. r=chmanchester
This removes the need for a dummy `gonkdir` function for the
build_project != 'b2g' case.
2016-04-06 07:25:06 +09:00
Mike Hommey
c12b02c70d Bug 1260647 - Unify cross-compilation setup, while moving some of it to moz.configure. r=ted
Gonk, Android, and the generic cross-compilation setup all were using a
different yet similar way to prefix the toolchain. The latter was even
wrong, since the target and target alias usually don't match actual
toolchain prefixes (which don't include the machine part of the target).
2016-04-01 09:43:26 +09:00
Mike Hommey
74de434e68 Bug 1260636 - Add endianness to host and target information. r=ted
While in the vicinity, add support for sparc64.
2016-04-01 09:43:26 +09:00
Mike Hommey
1f729885a7 Bug 1260624 - Move CROSS_COMPILE to moz.configure. r=ted
Note that this removes force-setting cross_compiling to yes in
old-configure, which wasn't working because every AC_TRY_COMPILE
resets it with $ac_cv_prog_cc_cross or $ac_cv_prog_cxx_cross.
2016-04-01 09:43:26 +09:00
Mike Hommey
f1ed025e8b Bug 1260066 - Don't allow to use sandbox primitives from anywhere but global scope and templates. r=nalexander
The initial goal of templates was to provide a way to write shorter
constructs for some generic tasks during configure. But the limitations
of the sandbox and the properties of templates made them used for more
general functions.

Consequently, this led to templates having to be available from
anywhere, which, in turn, led to difficult to introspect constructs.
With bug 1257823, we've made almost everything use set_config and
similar functions from the global scope, but we don't enforce that
those primitives are only used at the global scope.

This change does that: it enforces that primitives are only used at
the global scope. Or in templates.

Now, since templates were used for other purposes than generic uses
of other primitives, we now allow non-template functions to be declared.
Those can be used everywhere, but don't have access to the sandbox
primitives.
2016-03-30 07:08:00 +09:00
Mike Hommey
a2652b3b0b Bug 1260066 - Move add_old_configure_arg to the global scope. r=nalexander
We've done this for set_config, set_define, imply_option, and
add_old_configure_assignment. Do it for add_old_configure_arg as well.
2016-03-30 07:07:57 +09:00
Mike Hommey
9bf72e6993 Bug 1256573 - Switch moz.configure to use @imports instead of @advanced. r=nalexander 2016-03-30 07:07:53 +09:00
Mike Hommey
edcd74a9d7 Bug 1259381 - Move --with-ccache and --with-compiler-wrapper to moz.configure. r=chmanchester 2016-03-30 07:07:45 +09:00
Mike Hommey
29c3394b1b Bug 1259960 - s/DummyFunction/DependsFunction/. r=chmanchester
While DummyFunction is descriptive of what the instances are (and they
can't even be called), the various uses of isintance(obj, DummyFunction)
are kind of confusing, especially when they are in moz.configure land
(and this bug is about to add another one).
2016-03-30 07:07:37 +09:00
Mike Hommey
e8721f0397 Bug 1257516 - Use the logger for virtualenv manager output. r=ted 2016-03-30 07:00:17 +09:00