Commit Graph

1189 Commits

Author SHA1 Message Date
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
Mike Hommey
9cec4aee6b Bug 1094584 - Stop using the fake.lib trick. r=mshal
This used to be necessary to avoid the conflicting names between import
libraries and static libraries, but that's now prevented by the whole
moz.build machinery.
2014-11-07 10:16:42 +09:00
Mike Hommey
2277137650 Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Wes Kocher
d57953d2bd Backed out changeset db93b3cbdc17 (bug 1094037) on a CLOSED TREE 2014-11-05 17:22:50 -08:00
Mike Hommey
ac80bd5f6c Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
e8150918fc Bug 1094033 part 1 - Consolidate how to add new tiers. r=gps 2014-11-06 09:29:11 +09:00
Jan Beich
c058a442f6 Bug 1041795 - Disable system libs when generating DTrace probes. f=sfink f=ginn.chen 2014-11-04 02:01:00 +01:00
Mike Hommey
24ed7656db Bug 1091383 - Move delayload logic entirely in moz.build frontend code. r=gps 2014-11-04 13:48:25 +09:00
Mike Hommey
47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey
deb5d056a6 Bug 1090107 - Define stlport dependencies in moz.build. r=mshal 2014-10-29 13:29:42 +09:00
Mike Hommey
707134faf6 Bug 857628 - Add a --enable-pie configure option to build target programs as position independent executables when supported by gcc/clang. r=mshal 2014-09-26 07:33:56 +09:00
Mike Hommey
75a8d98fa3 Bug 1077228 - Include the right autoconf.mk in GLOBAL_DEPS. r=mshal
Ever since bug 969164, the js build system, when building gecko (not when
building standalone) uses a autoconf-js.mk file for its config.

One of the suboptimal ways we have to retrigger builds when the build
configuration changes (changes to e.g. configure.in can do that) is to
make most things depend on autoconf.mk. Which unfortunately doesn't
account for the fact the js/src subdirectory uses a different file.

In practice, this means that some classes of changes to the js build
system, not accompanied with toplevel build system changes may no
trigger the corresponding rebuilds in the js subtree on incremental
builds.
2014-10-04 10:34:35 +09:00
Mike Hommey
8c10235da0 Bug 1077151 - Always use expandlibs descriptors when they exist. r=mshal
Currently, when there is both an expandlibs descriptor and an actual static
library, expandlibs picks the static library. This has the side effect that
if there are object files in the static library that aren't directly used,
they're dropped when linking, even when they export symbols that would be
exported in the final linked binary.

In most cases in the code base, files are not dropped that way. The most
notable counter-example is xpcomglue, where actually not dropping files
leads to link failure because of missing symbols those files reference
(yes, that would tend to say the glue is broken in some way).

On the opposite side, there is mozglue, which does have both a descriptor
and a static library (the latter being necessary for the SDK), and that
linking as a static library drops files that shouldn't be dropped (like
jemalloc). We're currently relying on -Wl,--whole-archive for those files
not to be dropped, but that won't really be possible without much hassle
in a world where mozglue dependencies live in moz.build land.

Switching expandlibs to use descriptors when they exist, even when there
is a static library (so, the opposite of the current behavior) allows to
drop -Wl,--whole-archive and prepare for a better future. However, as
mentioned, xpcomglue does still require to be linked through the static
library, so we need to make it a static library only.

To achieve that, we make NO_EXPAND_LIBS now actually mean no expandlibs
and use that to build the various different xpcomglues.
2014-10-04 10:33:00 +09:00
Ed Morley
0e5462f1d2 Backed out changeset e2fee324047d (bug 857628) for causing bug 1076892 2014-10-03 14:19:45 +01:00
Mike Hommey
26049ee2f7 Bug 1062221 - Replace add_tier_dir with DIRS. r=gps 2014-10-02 09:14:07 +09:00
Mike Hommey
c8ae3e0b2f Bug 857628 - Build target programs as position independent executable when supported by gcc/clang. r=mshal 2014-09-26 07:33:56 +09:00
Jacek Caban
d4deb0c2a3 Bug 1055627 - Pass MOZ_GLUE_PROGRAM_LDFLAGS after STATIC_LIBS to linker. r=glandium 2014-08-26 13:50:27 +02:00
Mike Hommey
89777800f9 Bug 1047267 - Move remaining OS_LIBS and EXTRA_LIBS to moz.build. r=gps
* * *
Bug 1047267 - To fold with "Move remaining OS_LIBS and EXTRA_LIBS to moz.build"
2014-08-07 14:21:03 +09:00
Mike Hommey
220b276684 Bug 1047267 - Allow to reference libraries from third-party build systems in USE_LIBS. r=gps 2014-08-07 14:20:38 +09:00
Mike Hommey
c978a88653 Bug 1049281 - Remove static dirs handling, now that there aren't any. r=gps
Also do some overdue cleanup from the removal of parallel and tools dirs
2014-08-07 02:58:53 +09:00
Mike Hommey
4a01b3b147 Bug 1048993 - Use nsinstall from $(topobjdir)/config instead of $(DIST)/bin to avoid races when make wants to reinstall it for some reason. r=mshal 2014-08-07 02:58:50 +09:00
Ian Neal
c3cb6b4ce8 Bug 1047924 - When building with ac_add_options --enable-extensions extensions are put expanded into the wrong location in dist/bin r=glandium 2014-08-06 17:58:31 +01:00
Nathan Froyd
909d33279c Bug 1044162 - part 2 - remove JS_MODULES_PATH from the build system; r=mshal 2014-07-25 14:37:22 -04:00
Mike Hommey
99fdc4c1d6 Bug 1043869 - Derive build dependencies for programs and libraries from make backend data instead of getting them from expandlibs. r=mshal 2014-07-29 08:59:56 +09:00
Mike Hommey
c48f53e37a Bug 1043865 - Remove the remainder of compilation bits from the libs tier. r=gps 2014-07-29 08:59:27 +09:00
Mike Hommey
179299ea01 Bug 1043862 - Make the binaries target use the compile tier. r=gps 2014-07-29 08:58:28 +09:00
Mike Hommey
2bab6202af Bug 1043820 - Remove PARALLEL_DIRS. r=gps 2014-07-29 08:57:59 +09:00
Mike Hommey
5f6ba110e6 Bug 1043802 - Remove TOOLS_DIRS and TEST_TOOLS_DIRS. r=gps 2014-07-29 08:55:55 +09:00
Mike Hommey
a62cdc4fa7 Bug 1043344 - Move libraries and programs build to the compile tier. r=gps 2014-07-25 07:14:40 +09:00
Mike Hommey
628443a0e1 Bug 1043286 - Use INSTALL_TARGETS to stage C++ unit tests. r=mshal 2014-07-25 07:09:44 +09:00
Jan Beich
7b3340b357 Bug 1041381 - Ignore missing depfiles for dtrace. r=glandium 2014-07-23 22:40:00 +02:00
Mike Hommey
2a9a0b150f Followup for bug 1041936 to unbreak spidermonkey fail-on-warnings builds. r=me 2014-07-23 14:01:55 +09:00
Mike Hommey
ad2b8b8346 Bug 1041936 - Allow static library definitions to depend on shared libraries. r=gps 2014-07-23 13:33:06 +09:00
Mike Hommey
95063176fa Bug 1036894 part 9 - Replace all EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS with EXTRA_LIBS, OS_LIBS or OS_LDFLAGS, appropriately. r=gps
OS_LIBS for libraries that are not part of the gecko tree, EXTRA_LIBS for
libraries, such as NSPR, that are in the tree, but are not handled by
moz.build just yet. Those EXTRA_LIBS may also come from a system library.
However, in cases where the expanded variables are always empty for the
in-tree case, OS_LIBS is used (as for, e.g. MOZ_ZLIB_LIBS). OS_LDFLAGS is
used exclusively for non-library linker flags.

Always pass EXTRA_LIBS before OS_LIBS on linker command lines.

Forbid EXTRA_DSO_LDOPTS, SHARED_LIBRARY_LIBS and LIBS in Makefiles.
2014-07-23 13:31:02 +09:00