Commit Graph

1322 Commits

Author SHA1 Message Date
Phil Ringnalda
53ccf8158e Backed out 5 changesets (bug 1318370) for mozilla-central Windows static-analysis bustage
Backed out changeset 196f9ddbf7aa (bug 1318370)
Backed out changeset 72f6eace33a1 (bug 1318370)
Backed out changeset c0c0e10ed613 (bug 1318370)
Backed out changeset a8032ae9cb2a (bug 1318370)
Backed out changeset 0848b3201c40 (bug 1318370)
2017-02-21 21:22:01 -08:00
Ted Mielczarek
5d759be63f bug 1318370 - stop using -Z7 for MSVC compilation with sccache. r=glandium
We've been using -Z7 to make MSVC emit CodeView debug info directly in
the object files instead of in PDB files because sccache can't cache
PDB files if the same one is written to by multiple compiles, which
was previously happening in our build system, and was hard to override
in the NSS build. Now that those are fixed this should work fine.

This adds a bit to the compile rule to remove the PDB file before
compilation, since sccache won't cache a compilation if the PDB file
it is supposed to generate already exists (for the aforementioned reason).

MozReview-Commit-ID: rFlX0XfTGw

--HG--
extra : rebase_source : 8f991ce72115537466f5720c20dc53083f3b2b35
2016-12-14 14:58:26 -05:00
Ralph Giles
1021cfbd7f Bug 1340672 - Don't clobber CARGOFLAGS in non-debug builds. r=froydnj
Previously, we overrode the CARGOFLAGS when we set --release
for non-debug builds. This was an oversight from bug 1310939.

MozReview-Commit-ID: LOBkCmxwDzc

--HG--
extra : rebase_source : 0325d1705cb28d6c82369abffc6fac3ca5ee6f0a
2017-02-17 12:50:29 -08:00
Ralph Giles
d3fb57abec Bug 1340587 - Remove MOZ_CARGO_SUPPORTS_FROZEN. r=froydnj
We now require cargo by version, and the minimum (0.16)
supports --frozen, so we don't need to check for this.

MozReview-Commit-ID: GPoadLkhRO5

--HG--
extra : rebase_source : e191e5dd2533e28c1bca0812f2776196cc3559cf
2017-02-17 12:16:45 -08:00
Mike Shal
e86326d270 Bug 1338559 - Use the tier system to recurse for 'make check'; r=glandium
This helps us avoid recursing over every directory when we only need to
run 'make check' in a select few.

MozReview-Commit-ID: BJ3hJBOneIz

--HG--
extra : rebase_source : 2493f924b9ccba3c779e512d7a8b7a2c26f43797
2017-02-03 16:47:28 -05:00
Ted Mielczarek
778b18b977 bug 1322703 - use -Fd to specify unique PDB filename per-object-file for MSVC. r=glandium
MozReview-Commit-ID: CxpLruksaHg

--HG--
extra : rebase_source : 16087aba96fb7e0d7f764b4ca21d27a78a19df4d
2016-12-14 14:40:59 -05:00
Kartikaya Gupta
7ed8a4e41a Bug 1337895 - Make the pkg-config rust crate happy when cross-compiling. r=froydnj
MozReview-Commit-ID: 1430wwCYbj4

--HG--
extra : rebase_source : a66e085219992f0cb75857afebeb1003df95bbdd
2017-02-08 14:13:50 -05:00
Gregory Szorc
19ffcf1738 Bug 1322769 - Declare servo rust feature properly; r=manishearth
268fa5f3bc25 grafted an old patch to define --features=servo in
rules.mk. That patch was written before RUST_LIBRARY_FEATURES
existed. This commit fixes it up.

MozReview-Commit-ID: L5atm5CsP8d

--HG--
extra : amend_source : 9362db15a696ebd5871df94afb429d6f828de184
2017-02-02 16:32:54 -08:00
Gregory Szorc
aaae03d7a8 Bug 1322769 - Add a "servo" feature; r=manishearth
MozReview-Commit-ID: A9dNTxNkl39

--HG--
extra : rebase_source : b9d115025beb00d596d34ca8d414a69b8ea2ba07
extra : source : f142ed52978bfab6407c252b7c56c53d0c3fcecd
2017-02-02 15:30:16 -08:00
Wes Kocher
f5eab47fb9 Merge m-c to autoland, a=merge
MozReview-Commit-ID: HVH8TbXbw7N
2017-02-01 16:30:50 -08:00
Michael Layzell
0dadca05f7 Bug 1335203 - Synchronize rust debug-assertions with C++ DEBUG, r=froydnj
MozReview-Commit-ID: JPD9eNFg89S
2017-02-01 13:54:22 -05:00
Chris Manchester
d668d760b9 Bug 1333135 - Do not attempt to install SIMPLE_PROGRAMS during MOZ_PROFILE_GENERATE. r=mshal
MozReview-Commit-ID: BNvX0dFAIUf

--HG--
extra : rebase_source : ef5ccc377253b27012c7501197c232a18097a4f5
2017-02-01 10:59:41 -08:00
Benjamin Smedberg
ca77995f5d Bug 1333826 - Remove SDK_FILES, SDK_LIBRARY, and related is_sdk support in the build goop, r=mshal
MozReview-Commit-ID: 52vPyDXdFte

--HG--
extra : rebase_source : c3217730bb70eb7319152dd07536b12f49d6a597
2017-01-30 11:24:10 -05:00
Nathan Froyd
960aa50e1b Bug 1324296 - only enable verbose cargo output if BUILD_VERBOSE_LOG; r=ted.mielczarek
This mirrors what we do elsewhere for C/C++/etc.
2017-01-26 20:38:27 -05:00
Chris Manchester
26adeacc8a Bug 1312916 - Add support for host rust libraries in moz.build. r=froydnj
MozReview-Commit-ID: It8VH5Obnx5

--HG--
extra : rebase_source : bc4dabb18ff51c45ac8df5a409881d0d4a7279fa
2017-01-19 14:58:10 -08:00
nfroyd@mozilla.com
8b92f8beb8 Bug 1302028 - part 6 - pass LIBCLANG_PATH and CLANG_PATH environment variables to cargo build; r=gps 2017-01-20 16:33:04 +00:00
Xidorn Quan
a2cddc7eb7 Bug 1323127 - Pass absolute path of DIST to cargo. r=froydnj
MozReview-Commit-ID: GOK2MSA6imC

--HG--
extra : rebase_source : 4abe1a93ff488a4612f4f6f4ca3961c9db3456e7
2016-12-13 15:38:37 +11:00
Nathan Froyd
1c12d3858c Bug 1319156 - part 2 - handle Rust library features in the recursivemake backend; r=chmanchester 2016-12-02 11:39:15 -05:00
Nathan Froyd
8783deedb3 Bug 1318981 - part 2 - pass MOZ_DIST as an environment variable to cargo build; r=chmanchester
rust-bindgen, at least, will need to know where Gecko's headers are to
parse them.
2016-12-02 11:38:45 -05:00
Nathan Froyd
b3f52ed877 Bug 1318981 - part 1 - factor out a CARGO_BUILD makefile variable; r=chmanchester
This change makes the individual cargo rules easier to understand, and
provides a single place to change e.g. environment variables passed to
cargo.
2016-12-02 11:38:45 -05:00
Mike Hommey
07083a8dfb Bug 1317504 - Make MSVC builds use the LINK variable instead of LD. r=chmanchester
At the same time, remove HOST_LD. It was only used for MSVC builds,
which don't support cross-compile anyways, so we can, at least for now,
use LINK for both host and target.

--HG--
extra : rebase_source : 9ee9e7e1bd3edefc043fa63d5c03f2a242f76982
2016-11-24 15:45:16 +09:00
Nathan Froyd
36fb414815 Bug 1293253 - part 6 - add build and installation rules for {HOST_,}RUST_PROGRAMS; r=chmanchester
The only complicating factor here is having to split out the --target
flag from cargo_build_flags, so we can pass the appropriate one
depending on our build target.
2016-11-28 11:20:39 -05:00
Nathan Froyd
3d6a6a666a Bug 1293253 - part 5 - move cargo_build_flags determination out of RUST_LIBRARY_FILE block; r=chmanchester
We need cargo_build_flags not just for Rust libraries now, but for Rust
programs as well.
2016-11-28 11:20:39 -05:00
Nathan Froyd
cd91c3196d Bug 1293253 - part 1 - modify existing Rust library build rules to be explicitly about libraries; r=chmanchester
In preparation for a world where we have cargo building binaries too,
the existing rules should be renamed to reflect their library
associations.  The lone Cargo invocation should be updated to explicitly
build libraries only, so libraries and binaries in the same directory
will work correctly.

Fixup a leftover comment from a previous set of changes while we're here.
2016-11-28 11:20:39 -05:00
Nathan Froyd
55243ce768 Bug 1300835 - enable --disable-optimize --enable-debug to DTRT for Rust code; r=ted.mielczarek 2016-11-21 17:39:39 -05:00
Gregory Szorc
389dbcf95f Bug 1315785 - Invoke cargo with --color=always when original stdout is a TTY; r=glandium
Combined with the previous patch that sets MACH_STDOUT_ISATTY, the
practical effect of this patch is that cargo is invoked with
`--color=always` when mach was attached to a TTY and colorized output
is sent to the terminal.

Note: this doesn't work with Rust/Cargo 1.10 for reasons unknown to me.
It appears there was a bug with Rust/Cargo because `--color=never` still
sent colorized output on that version! Cargo/Rust 1.12.1 works fine.

MozReview-Commit-ID: 6uXS3t3413i

--HG--
extra : rebase_source : 72df6e8248cb14c96850964f694576c7fd2f5fbb
2016-11-07 13:46:15 -08:00
Aaron Klotz
a426b005cc Bug 1310841: Modify build rules to allow specification of a manifest for Windows DLLs; r=gps
MozReview-Commit-ID: EdY8Kx8irYW

--HG--
extra : histedit_source : 2c62d93279b54c30840910fb3fe54f9276a80f01
2016-10-17 16:03:11 -06:00
Cameron McCormack
4378d41370 Bug 1310939 - Pass $(CARGOFLAGS) to cargo invocations so cargo flags can be passed from a .mozconfig file. r=froydnj
MozReview-Commit-ID: A5GNTzS0BTM

--HG--
extra : amend_source : 01749f41a239949510bbc1e90a3324c934cfe86a
2016-10-18 16:04:57 +08:00
Ted Mielczarek
e9130abab5 bug 1305731 - Revert workaround from bug 1301751 now that we have updated to Rust 1.12. r=froydnj
MozReview-Commit-ID: 3akbELExfKT

--HG--
extra : rebase_source : 0308214bae6eb683df65991fc91d41679acd3530
2016-10-17 10:47:30 -04:00
Nathan Froyd
e818915fae Bug 1304815 - rearrange Rust crate structure for newer Rust releases; r=ted.mielczarek
In our current Rust world, we have the following dependency structure:

  xul.so --------------------------+
                                   |
  xul-gtest.so -+--> xul.a --------+-> gkrust
                |
                +--> gkrust-gtest

This structure results in link errors with multiply-defined symbols
between gkrust-gtest and gkrust with newer Rust releases when linking
xul-gtest.so.  So we have to do something different.

Our new structure is:

  xul.so --------------------------+
                                   |
  xul-gtest.so -+--> xul.a --------+-> gkrust --+-> gkrust-shared
                |                               |
                +--> gkrust-gtest --------------+

and we enforce that a given shared library can only have at most one
Rust library that it depends on.  Said Rust library is assumed to
include all significant Rust dependencies of the dependent static
libraries as well.  (In the above structure, gkrust is simply a wrapper
around gkrust-shared, so gkrust-gtest doesn't have to include gkrust as
a dependency.)
2016-10-15 18:16:13 -04:00
Andrew Halberstadt
6b48ddc0b0 Bug 1304593 - Use |mach python-test| to run python unittests from make check, r=ted
Currently make check loops over all directories and runs each test file in PYTHON_UNIT_TESTS
individually. This patch instead creates a single top-level check target that runs
|mach python-tests|. This should make automation more similar to running locally, be a bit
quicker and make it easier to pull python tests out of make check completely at a future date.

MozReview-Commit-ID: 4Hg4zdFyc61

--HG--
extra : rebase_source : 31d0c38a76c11b75d3bf569f2bf22a0666161726
2016-09-26 15:29:02 -04:00
Ted Mielczarek
abdba70d60 bug 1301751 - work around llvm-dsymutil crash by building rust with debuginfo=1 instead of -g. r=froydnj
MozReview-Commit-ID: 5pK8okLw0Cl

--HG--
extra : rebase_source : f1c366ae3751bcd70272e77c7754fb4adeafdd7b
2016-09-27 06:24:24 -04:00
Chris Manchester
bb8ff6012c Bug 1262155 - Always pass defines when compiling SOBJS. r=ted
This is relevant when attempting to build libffi with our build system
(libffi expects its assembly sources to be pre-processed).

MozReview-Commit-ID: J6mCUkYYjQh
2016-09-21 12:04:08 -07:00
Michael Layzell
05bd5a1076 Bug 1300208 - Allow specifying multiple rust crates to mozbuild within the same FINAL_LIBRARY, r=froydnj
MozReview-Commit-ID: IIjV4Kg7wOv
2016-09-20 11:26:43 -04:00
Nathan Froyd
f7fb6722a6 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-06 00:49:26 -04:00
Nathan Froyd
4fb1a7545d Bug 1231764 - part 0 - only link librul once; r=chmanchester
Through an oversight, we listed librul.a twice when linking libxul: once
as part of the "objects" we were linking, and once as a static library.
This duplication is unnecessary and would cause problems later when we
try to generate librul.a via cargo, as cargo will put it someplace
different from where we expect and the two names will conflict.  Let's
have rules.mk be the single source of truth for how librul.a is named,
and then the code to link libxul can simply refer to that name.
2016-08-06 00:49:26 -04:00
Wes Kocher
9605851be0 Backed out 7 changesets (bug 1231764) for apparently causing linux debug wpt bustage
Backed out changeset 4b71272c92cf (bug 1231764)
Backed out changeset 234d8a930afa (bug 1231764)
Backed out changeset f9b204c2f5a7 (bug 1231764)
Backed out changeset f933119e57e4 (bug 1231764)
Backed out changeset e3af0b1d3473 (bug 1231764)
Backed out changeset 643b03aae1dd (bug 1231764)
Backed out changeset a945dbf63410 (bug 1231764)

--HG--
extra : rebase_source : e71360fa4b5e3e74859c82e74e183e13e6211c4c
2016-08-03 16:27:06 -07:00
Nathan Froyd
6b2618fb44 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-03 19:40:41 -04:00
Nathan Froyd
a79d68b929 Bug 1231764 - part 0 - only link librul once; r=chmanchester
Through an oversight, we listed librul.a twice when linking libxul: once
as part of the "objects" we were linking, and once as a static library.
This duplication is unnecessary and would cause problems later when we
try to generate librul.a via cargo, as cargo will put it someplace
different from where we expect and the two names will conflict.  Let's
have rules.mk be the single source of truth for how librul.a is named,
and then the code to link libxul can simply refer to that name.
2016-08-03 19:40:41 -04:00
Mike Hommey
02e5baaf74 Bug 1289246 - Do not hardcode mt.exe as the Manifest Tool. r=chmanchester
Configure uses the value of the MT environment variable before falling back
to mt(.exe), but the build system was completely ignoring the MT
environment variable.

--HG--
extra : rebase_source : 8c9b43aeb08493ae5bd6d6361f4f18f097ea0553
2016-07-22 15:56:26 +09:00
Ted Mielczarek
82d77574ff bug 1266368 - move rust.m4 to configure. r=glandium
MozReview-Commit-ID: 9ol2nMYM0a0

--HG--
extra : rebase_source : 3f3feeac941791d081e09ebb096a3e052540a52c
2016-05-16 15:27:37 -04:00
Mike Shal
5ab92bb3fa Bug 1252804 - remove TARGET_LOCAL_INCLUDES; r=ted
MozReview-Commit-ID: 6s1SWINNMM9

--HG--
extra : rebase_source : 3c64cc907a41215be454ccae4230d3d216e097d9
2016-04-29 17:09:57 -04:00
Nathan Froyd
82c6f5d7a7 Bug 1163224 - add build system support for multiple Rust crates; r=glandium
Our current build system support for Rust compiles any Rust crate into a
so-called staticlib, which is a static library (.a file) that includes
the Rust runtime. That staticlib is then linked into libxul. For
supporting multiple crates, this approach breaks down, as linking
multiple copies of the Rust runtime is going to fail.

For supporting multiple crates, the approach taken here is to compile
each crate into a so-called rlib, which is essentially a staticlib
without the Rust runtime linked in. The build system takes note of
every crate destined for linking with libxul (treating them like static
libraries generated from C/C++ files), and generates a super-crate,
whimsically named "rul", that is compiled as a staticlib (so as to
include the Rust runtime) and then linked into libxul. Thus only one
copy of the Rust runtime is included, and the Rust compiler can take
care of any inter-crate dependencies.

This patch currently only supports Rust code in shared libraries, not in
binaries.
2016-04-21 09:54:01 -04:00
Sebastian Hengst
364386e3cf Backed out changeset cb4b18566f30 and 7c4d19e3376f (bug 1163224) for build bustage. r=backout on a CLOSED TREE 2016-04-11 19:43:04 +02:00
Nathan Froyd
e136c9ac20 Bug 1163224 - fix typo in creating global crate dependencies; r=me
Hoping the added Rust will let us reopen this CLOSED TREE.
2016-04-11 12:42:36 -04:00
Nathan Froyd
45af5cd66c Bug 1163224 - add build system support for multiple Rust crates; r=glandium
Our current build system support for Rust compiles any Rust crate into a
so-called staticlib, which is a static library (.a file) that includes
the Rust runtime.  That staticlib is then linked into libxul.  For
supporting multiple crates, this approach breaks down, as linking
multiple copies of the Rust runtime is going to fail.

For supporting multiple crates, the approach taken here is to compile
each crate into a so-called rlib, which is essentially a staticlib
without the Rust runtime linked in.  The build system takes note of
every crate destined for linking with libxul (treating them like static
libraries generated from C/C++ files), and generates a super-crate,
whimsically named "rul", that is compiled as a staticlib (so as to
include the Rust runtime) and then linked into libxul.  Thus only one
copy of the Rust runtime is included, and the Rust compiler can take
care of any inter-crate dependencies.

This patch currently only supports Rust code in shared libraries, not in
binaries.  The handling for the rul crate is placed in the common
backend, with a special hook for derived backends to handle shared
library objects.
2016-04-11 11:05:44 -05:00
Gregory Szorc
8bec49cc68 Bug 1262569 - Do not print individual source targets being built; r=ted
Multiple people have complained that the build output of printing the
source files being built adds little value. I agree. The extra output
doesn't give really helpful progress info because sources can be built
in non-deterministic order. Furthermore, the extra output hides useful
output like compiler warnings.

This patch makes the default build system output even less verbose. We
no longer print the individual source targets when they are built. We do
still print the targets for binaries, so some sense of progress can be
inferred.

If people like verbosity, they can export the undocumented
BUILD_VERBOSE_LOG environment variable can be set to restore the old
behavior.

MozReview-Commit-ID: KeaeJJkjPJn

--HG--
extra : rebase_source : a90b4b82eeef48d9bd896b5c12907ce05a650d4d
2016-04-06 16:49:55 -04:00
Mike Hommey
2a512468b1 Bug 1260998 - Add support for HOST_CPPFLAGS for consistency. r=nalexander 2016-04-01 09:43:26 +09:00
Mike Hommey
84027af8da Bug 1256507 - Remove --enable-xterm-updates. r=gps
It's an opt-in flag that allows to display where the build is in
terminal window titles. The fact that it's opt-in and likely unknown
makes it very low-value, and the fact that it was added in an era where
builds were not very well parallelized made it have a meaning, but now
that builds are parallelized, its meaningfulness is diminished.

Let's just remove it.
2016-03-15 16:40:15 +09:00
Mike Hommey
d464f29e5f Bug 1255813 - Remove build system support for Solaris, HPUX and AIX. r=ted 2016-03-15 07:34:50 +09:00
Ted Mielczarek
5c634ab869 bug 1248016 - make ASFILES rules work with .s/.asm, get rid of ASM_SUFFIX. r=mshal
MozReview-Commit-ID: 1MK0Kud51vR

--HG--
extra : rebase_source : de7a7f11bfbbac1e8eccc34de39dd2d88d803b03
extra : amend_source : d7eddb71b050e0576e783c6ce8c67f66cfd88e13
2016-03-01 13:47:19 -05:00
Mike Shal
053369e67e Bug 1253431 part 7 - Remove SDK_BINARY; r=gps
MozReview-Commit-ID: 4RmjsX966Qh

--HG--
extra : rebase_source : 0d9d94ed98ae8f1cfb9d5787edc1336ce1ee6785
2016-03-03 14:23:57 -05:00
Myk Melez
db9a40ca42 Bug 1238079 - remove the desktop web runtime; r=fabrice,mossop,gps,jryans,jmaher,marco 2016-03-07 13:33:12 -08:00
Ms2ger
2351d7e46d Bug 1252093 - Move AUTOCFG_JS_EXPORTS to moz.build; r=ted 2016-03-01 09:17:29 +01:00
Nathan Froyd
d75a7f55af Bug 1249103 - remove support for MOZ_POST_DSO_LIB_COMMAND; r=mshal
Nothing uses this variable.  blame suggests that it was used for HP-UX
once upon a time.  The companion variable, MOZ_POST_PROGRAM_COMMAND, is
only used by HP-UX, but as we're not wholesale removing HP-UX
support (yet), we should leave MOZ_POST_PROGRAM_COMMAND alone.
2016-02-17 15:17:21 -05:00
Mike Hommey
e50a6cfd7b Bug 1239217 - Make the RecursiveMake build system create backend files generically. r=gps
The current rule is only for "backend.RecursiveMakeBackend", but, with
the current default of generating both the RecursiveMake and FasterMake
backends, the command creates/refreshes both backends. This is, in fact,
how the FasterMake backend is refreshed in most cases.

Moreover, with an hybrid backends, the generated file is not
"backend.RecursiveMakeBackend" anymore, so we need a more generic way to
handle this.

Furthermore, it's not necessarily desirable for all backends to have a
dependency file to handle the dependencies to refresh the backend, so
generate a plain list instead. This has the side effect of making `mach
build-backend --diff` more readable for changes to that file.

Finally, make the backend.* files created like any other backend file,
such that its diff appears in the `mach build-backend --diff` output.
2016-01-22 15:43:24 +09:00
Mike Hommey
e9ce9ca165 Bug 1241421 - Remove jar.mn with no JAR_MANIFESTS check in config/rules.mk. r=mshal
The same check exists in the emitter code anyways.
2016-01-22 07:00:23 +09:00
Jacek Caban
ea0edf0971 Bug 1239672 - Fixed symbols file support on mingw. r=glandium 2016-01-21 13:39:41 +01:00
Mike Hommey
27f3aa7c34 Bug 1241022 - Move GENERATED_FILES. r=gps
GENERATED_FILES impacts the export tier through the config/rules.mk
definitions, now moved to the backend itself, so that everything is
close to each other.
2016-01-21 13:54:03 +09:00
Mike Hommey
dd60f8bf2c Backout changeset de0a7a1cdc4a from bug 1240660 for make package bustage on a CLOSED TREE 2016-01-20 08:03:58 +09:00
Mike Hommey
299b5dc832 Bug 1240660 - Move jar_maker to the misc tier, now that ordering does't matter. r=gps 2016-01-20 07:24:40 +09:00
Dan Minor
30f2bba053 bug 1237619: Record build objects in resource_usage.json r=gps
Collecting the list of object files compiled, while not ideal, will give us
some indication of how much work was involved in the build. This will help
with analyzing the data.

--HG--
extra : rebase_source : e9861ed5c0766e3ee8038dbec0b9267022c523eb
2016-01-12 14:00:24 -05:00
Mike Hommey
d5c0c5233a Bug 1235733 - Use absolute paths for include paths. r=gps
Limit ourselves to include paths for now, because there are tricky things
involved in making this globally.

While here, use shell_quote instead of manual quoting for those paths.
2015-12-31 08:10:02 +09:00
Mike Hommey
e0c501a1c1 Bug 1235738 - Move MOZ_DEBUG_DEFINES to build frontend. r=gps
MOZ_DEBUG_DEFINES are essentially defines used everywhere. So treat them as
feeding the initial value for DEFINES in each moz.build sandbox. This allows
the kind overrides that was done in the past by resetting MOZ_DEBUG_DEFINES
in Makefiles.
2015-12-31 07:27:23 +09:00
Mike Hommey
54704ce9a1 Bug 1235132 - Add support for a more-or-less cross-platform symbols file. r=gps
Currently, one needs to define DEFFILE or LD_VERSION_SCRIPT appropriately,
and somehow deal with the fact that their input format is different, which
currently relies on manual invocations of the convert_def_file script, with
awkward aggregations.

This simplifies the problem by using a simple list of symbols, with
preprocessing, allowing #includes.
2015-12-31 07:22:04 +09:00
Mike Hommey
d5126527fe Bug 1235021 - Always use the % marker for preprocessed css files. r=gps
Currently, only css files added through jar manifests are treated this way.
There is really no reason for the discrepancy, but there are actually no css
files added directly through moz.build, so this was never a problem.

On the other hand, it makes things simpler in a world where jar manifests are
treated as if they were entirely described in moz.build (which is where the
FasterMake backend is heading).
2015-12-31 07:06:11 +09:00
Mike Hommey
d7478b6b1e Bug 1234955 - Make TEST_DIRS a SPECIAL_VARIABLE. r=gps
Using TEST_DIRS is nothing more than a shortcut for

if CONFIG['ENABLE_TESTS']:
    DIRS += [...]

As such, we might as well remove it being a separate variable, and use some
Context magic to just fill DIRS when ENABLE_TESTS is set.

The security/manager/ssl/tests/unit/moz.build change ensures that the order
of DIRS before the change is kept, not because it matters, but because it
allows to confirm that nothing else is modified by this change.
2015-12-24 13:12:49 +09:00
Nathan Froyd
bd48dbd1fc Bug 1208566 - emit proper dependencies when compiling Rust sources; r=mshal 2015-12-17 12:14:33 -08:00
Wes Kocher
5f38bdeff2 Backed out 2 changesets (bug 1208566) for breaking mulet builds
Backed out changeset a5618a5cbc7f (bug 1208566)
Backed out changeset f3fd530324ee (bug 1208566)

--HG--
extra : commitid : DaxmN4TLzwv
2015-12-17 09:34:33 -08:00
Nathan Froyd
aa7ce205e6 Bug 1208566 - emit proper dependencies when compiling Rust sources; r=mshal 2015-12-17 08:25:03 -08:00
Mike Hommey
158e08c29b Bug 1230355 - Remove include_deps. r=mshal
We used to use include_deps to trigger a fast-path in pymake, but we don't
use pymake anymore, so we can use normal includes now.
2015-12-09 19:23:53 +09:00
Mike Hommey
3b9cda439c Bug 1229241 - Use FINAL_TARGET{,_PP}_FILES for JS_PREFERENCE{,_PP}_FILES. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
861b5a242a Bug 1229241 - Redirect EXTRA{_PP}_COMPONENTS to FINAL_TARGET{,_PP}_FILES.components. r=gps 2015-12-01 13:57:52 +09:00
Mike Hommey
3a04b1f8dc Bug 1228444 - Make DIST_FILES a HierarchicalStringList, like FINAL_TARGET_FILES. r=gps 2015-12-01 08:25:22 +09:00
Mike Hommey
655579a1fa Bug 1228444 - Don't silence "no preprocessor directives found" warnings for DIST_FILES. r=gps
and move files without preprocessor directives to FINAL_TARGET_FILES.
2015-12-01 08:25:22 +09:00
Jon Coppeard
f04a28db9e Bug 1220731 - Refactor embedjs script for use from moz.build rather than makefiles r=shu r=glandium 2015-11-06 13:09:01 +00:00
Chris Manchester
ba6beeb0c0 Bug 1220000 - Unconditionally include EXTRA_MDDEPEND_FILES so callers get what they expect. r=glandium
GENERATED_FILES and accessible/xpcom/Makefile.in add to EXTRA_MDDEPEND_FILES, but for
targets that run during export. Export doesn't include EXTRA_MDDEPEND_FILES, so none
of them is ending up with correct dependencies. The EXTRA_EXPORT_MDDEPEND_FILES variable
could be used for this purpose, but given the circumstances this variable is removed,
and EXTRA_MDDEPEND_FILES is instead included unconditionally.

--HG--
extra : commitid : 7daRRnxfkS0
2015-11-03 10:23:04 -08:00
Mike Hommey
a8bec728dc Bug 1212773 - Pass a base directory to jar maker, instead of a chrome directory. r=gps 2015-10-20 07:36:47 +09:00
Mike Hommey
9af046b5b4 Bug 1211765 - Remove remnants from --with-libxul-sdk. r=bsmedberg
The configure option has explicitly thrown an error for more than a year now,
and it happens that the remaining way to still forcefully use it has been
broken for more than 8 months.
2015-10-14 08:02:34 +09:00
Mike Hommey
7f68f92edb Bug 1210329 - Remove support for line endings munging in the preprocessor. r=gps
It was added back in
5147d5c69f
for unclear reasons (and the lack of bug number doesn't help), and hasn't been
used, as far as I can see in the gecko-dev history, other than in bug 206029,
which is the only use currently in the tree.

Bug 206029 was working around the Flash player installer modifying Firefox's
prefs file and not dealing with it properly or something depending on the line
endings. 11 years later, all prefs files except channel-prefs.js are in
omni.ja, so obviously, bug 206029 doesn't actually apply anymore.

So, let's simplify it all and get rid of this.
2015-10-06 11:15:04 +09:00
Mike Hommey
9f2c4e94ba Bug 1209875 - Get rid of XULPPFLAGS. r=gps
The flags added in toolkit/locales/Makefile.in turn out not to be actually
used, so just remove that.

The remaining uses of XULPPFLAGS are to set debug flags depending on whether
MOZ_DEBUG is set or not. Just set a dedicated variable with the right value
from configure.
2015-10-01 07:30:48 +09:00
Andreas Tolfsen
29d401a02f Bug 1177608: Support for compiling optimised Rust code
Optimised Rust compilation is enabled on passing --enable-optimize to
the configure script.  This sets the RUSTFLAGS output variable that gets
picked up by the compile targets RSOBJS and RSSRCS and passed to rustc.

r=glandium

--HG--
extra : commitid : 8thSkfLFXSY
extra : rebase_source : 5ec79b76a187bcbb0f09ad374cf9f763f0adb0d7
2015-07-21 14:21:40 +01:00
Ted Mielczarek
f6af9a3909 bug 1163828 - build system changes to support building for iOS. r=glandium
--HG--
extra : commitid : EAxgCmmuwAx
extra : rebase_source : 854a55e62573e59e042a326d62450fa3fbf2db18
2015-06-10 11:10:40 -04:00
Mike Hommey
622e7d63a3 Bug 1166538 - Use zip py_action in a few places. r=gps 2015-05-21 15:17:02 +09:00
Brian O'Keefe
c6ba641724 Bug 924187 - Deal with interfaces.manifest from the backend. r=mshal
--HG--
extra : rebase_source : 2d2cbc1ebc97496c54aef63de73b00af8126e750
2015-02-13 08:11:57 -05:00
Ralph Giles
2ea918802d Bug 1161339 - Add rust support to moz.build. r=ted
Add .rs as a recognized file extension in SOURCES.

Propagate that through to the Makefile backend and add a dependency
generated and an explicit rule to call $(RUSTC) to compile them.

rustc builds static libraries, not obj files. At least, if one
asks it to output an obj file, I'm not clear how to get all the
compiler-specific runtime libraries the code will expect to link
to. Therefore we generate a static library for each rust source
file (which must be a complete crate for the time being) and link
that. Because of the extension it ends up on the LIBS line in the
the corresponding .desc file.

Note that the static library does still depend on some system
libraries, e.g. -ldl -lpthread -lm on linux. Gecko already
links to all of those, so we don't keep track of it here.

Should we need to add explicit linkage for other targets,
rustc does print a list to stderr which can be parsed.

--HG--
extra : rebase_source : 9f66101fd15a649a952d5481cf9561416204272a
2015-05-08 15:18:00 -07:00
Nathan Froyd
c18b2cd88a Bug 1155283 - remove XULAPP_DEFINES from DIST_FILES_FLAGS; r=mshal
Nothing uses XULAPP_DEFINES anymore, let's just get rid of it.  There
are plenty more places to add in defines for DIST_FILES if one is so
inclined.
2015-05-07 10:03:16 -04:00
Nathan Froyd
83a343a076 Bug 1155816 - part 2 - move EXTRA_*COMPONENTS manifest check to build-backend time; r=mshal
Now that moz.build can see EXTRA_*COMPONENTS and NO_JS_MANIFEST, we can
move some logic from rules.mk (executed every build) to moz.build's
emitter.py (executed only at build-backend time).
2015-04-17 15:02:19 -04:00
Mike Hommey
6b5cb3d245 Fixup for bug 1153154 for bustage on a CLOSED TREE. r=me
There was no need for a stdc++compat check on host static libraries anyways.
2015-04-16 15:30:29 +09:00
Mike Hommey
f5314c8492 Bug 1153154 - Add stdc++compat check for host programs when not cross compiling. r=mshal 2015-04-16 14:35:11 +09:00
Brian O'Keefe
48eccfb774 Bug 852814 - Move mozbuild variable blacklist logic into the backend. r=gps
--HG--
extra : rebase_source : 01acc12d0ac4d08f7f5367990037eb87db20a404
2015-03-27 15:39:34 -04:00
Mike Hommey
cfddf46217 Bug 1063874 - Move the parts of XPIDL_SOURCES handling in misc to export. r=gps 2015-02-11 17:36:45 +09:00
Brian O'Keefe
a7beaba91a Bug 923080 - Generate xpt files into final location. r=glandium
Now that the mozbuild backend knows about FINAL_TARGET, we are able to
install generated xpt files into their final location. This saves us
from copying xpt files into their final location on every build.

Original patch by gps, rebased and comments addressed by Ms2ger

--HG--
extra : transplant_source : %E2%DC%0F%E0%AD%C2%25%A1%B8%A9%FE%B0%8C%60%FF%CB%02G%25%E5
2014-05-21 08:25:57 -04:00
Nathan Froyd
3789a9c7de Bug 1109826 - part 2 - don't complain about missing directives for PREF_JS_EXPORTS and DIST_FILES; r=mshal 2014-12-10 14:56:14 -05:00
Joshua Cranmer
6bc7254918 Bug 1099430, mozilla-central parts: Eliminate the duplication of the build system in comm-central, r=glandium.
See the revisions a few steps prior for more fine-grained information. This just
needs to be relanded because our automation doesn't like non-ASCII commit
messages.

--HG--
extra : amend_source : 0ee4e0da1ea9ada815abfe989c51030db24aac56
2014-11-29 19:45:31 -06:00
Phil Ringnalda
23f2a4bc21 Backed out 3 changesets (bug 1099430) because 256 characters should be enough for anybody's commit message
CLOSED TREE

Backed out changeset 28abb8af2d62 (bug 1099430)
Backed out changeset 358aa39360d5 (bug 1099430)
Backed out changeset 3313e545f4f6 (bug 1099430)
2014-11-29 17:17:58 -08:00
Joshua Cranmer
80b5548b99 Bug 1099430, part 三: Use MOZILLA_DIR instead of topsrcdir in shared makefiles, r=glandium.
With these substitutions, it is possible to have comm-central's versions of
these files merely include the mozilla-central versions and avoid having to port
small changes to these files.
2014-11-29 18:44:19 -06:00
Joshua Cranmer
358bd037da Bug 1099430, part 一: Define MOZILLA_DIR early in the base makefiles, r=glandium.
This change allows us to use use MOZILLA_DIR even for changes in config.mk. The
corollary is that comm-central needs to define MOZILLA_DIR before calling into
baseconfig.mk, which it already does.

The change to the test Makefile is needed since it decides to skip including
config.mk, and hence baseconfig.mk, where it would need to grab the MOZILLA_DIR
declaration.
2014-11-29 18:44:10 -06:00
Gregory Szorc
8414202025 Bug 1094303 - Move XPT buildlist into misc tier; r=glandium
buildlist invocations are slow and can occur in parallel since the
underlying program obtains a lock on the modified file.

Moving the XPT-related buildlist invocation from the serial libs tier to
the parallel misc tier decreased my no-op build time on OS X from 43.5s
to 37.0s.

--HG--
extra : rebase_source : 7d274024c401b1ecfbc771424a69eb487808fcbf
2014-11-05 09:20:35 -08:00
Gregory Szorc
26231d7079 Bug 1094302 - Remove unused EXTRA_JS_MODULES rule from rules.mk; r=glandium
The installation rule for EXTRA_JS_MODULES and EXTRA_PP_JS_MODULES
became unused after b961ba8f0892 (bug 1044162). We remove the dead code.

--HG--
extra : rebase_source : 40adf7514d15ae4ba5bbfe3ac101061657aac841
2014-11-05 09:39:13 -08:00