Commit Graph

35 Commits

Author SHA1 Message Date
Nathan Froyd
380dc56df2 Bug 1341234 - part 1 - add AC_SUBST_TOML_LIST macro; r=gps
Stylo's bindgen is configured partially through a .toml.in file that
substitutes the value of a configure variable (BINDGEN_CFLAGS) into a
TOML list.  We can debate whether this is a good thing to do some other
time; the reality is that the current moz.configure code that provides
the set_config for BINDGEN_CFLAGS needs to perform all the quoting
itself.

We want, however, to define the substituted variable in old-configure.in
land (some of the values that will go into BINDGEN_CFLAGS are only
defined in old-configure.in, and are not trivially ported to
moz.configure), which means that we need to have quoting logic in
m4/Python when we generate config.status.  This patch adds an
appropriate macro for doing so.
2017-11-10 10:05:36 -05:00
Nathan Froyd
1009160a12 Bug 1341234 - part 0 - fix typo in AC_SUBST_SET checking; r=gps
The various AC_SUBST macros generate AC_SUBST_*FOO macros for holding the
values to substitute.  The macros also cross-check the AC_SUBST_* macros
generated by other variants to make sure that you don't try to do
something like AC_SUBST(FOO) and AC_SUBST_SET(FOO).  However, the check
in AC_SUBST_SET for AC_SUBST_LIST duplicate is missing an underscore:
the AC_SUBST_LIST macro generates another macro starting with
AC_SUBST_LIST_, but the AC_SUBST_SET macro checks for the prefix
AC_SUBST_LIST, which is missing the trailing underscore.

As we're going to be adding yet another AC_SUBST_* macro variant, and
therefore adding more checks to all existing macros, let's clean this up
before we start.
2017-11-10 10:05:36 -05:00
Chris Manchester
9889a2f30a Bug 1403346 - Use mozbuild.shellutil.split instead of split in config.status r=glandium
While we're here, provide a reference to unique_list as defined in
moz.configure when executing config.data to avoid its redefinition
in m4.

MozReview-Commit-ID: AI6XhoYR0Ye
2017-10-25 15:10:04 -07:00
Mike Hommey
849ac02d19 Bug 1253553 - Move --enable-artifact-builds, --disable-compile-environment and --enable-build-backend to moz.configure. r=nalexander,r=chmanchester
Note I'm using raw primitives until patterns emerge and we decide on
some helpers.
2016-03-08 15:41:32 +09:00
Mike Hommey
74b4506047 Bug 1253203 - Move parts of configure.py into sandboxed moz.configure. r=nalexander,r=chmanchester
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.
2016-03-08 15:41:32 +09:00
Mike Hommey
70fc00898e Bug 1253203 - Remove everything COMM_BUILD. r=nalexander,r=chmanchester
comm-central doesn't set it since bug 1040009.
2016-03-08 15:41:32 +09:00
Mike Hommey
29758f5f42 Bug 1250297 - Make python configure output config.status instead of old-configure doing it. r=gps
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.
2016-03-08 15:41:32 +09:00
Mike Hommey
648c73cb1d Fixup for bug 1239217 fixing a shell construct that does not work in autoconf. r=me 2016-01-22 16:16:06 +09:00
Mike Hommey
6acbd96f93 Bug 1239217 - Enable the hybrid FasterMake+RecursiveMake backend for artifact builds. r=gps 2016-01-22 15:43:27 +09:00
Mike Hommey
bdc9ed0d4a Bug 1240990 - Define all backends in one place. r=gps
When adding a backend, we currently have to add them in three different
places so that they appear in the right places.

Instead, keep the list in a single place.
2016-01-21 13:54:03 +09:00
Chris Manchester
a01c2483da Bug 1214885 - Add a "ChromeUrl" build backend to write out information useful for resolving chrome urls. r=glandium
The result of running this backend is a json file containing an array with 3 elements:
a map from resource:// and chrome:// url prefixes to corresponding objdir directories,
a map of overrides, and a map from objdir files to srcdir files (with a flag for whether
the file was preprocessed) for js file in FinalTargetFiles. A subsequent commit implements
the procedure to find an replace based on the url mapping, subsistute based on overrides,
and find sourcedir files based on objdir files.

--HG--
extra : commitid : Di6Ro5c9sTK
2015-10-01 18:56:53 -05:00
Landry Breuil
cb1fa398ed Bug 1225753: move $prefix default initialization before it gets used r=glandium
--HG--
extra : commitid : 2xboEEUEFU6
2015-12-26 13:40:54 -05:00
Mike Hommey
d0d3300abc Bug 1209398 - Enable the FasterMake backend by default for desktop Firefox builds. r=gps
The order in which backends appear is important, and dealing with deduplication
in configure.in is not really nice, so for all simplification purposes, this relies
on using AC_SUBST_SET, which does the deduplication and keeps the original order
in which items appear (despite its name).
2015-09-30 11:51:47 +09:00
Mike Hommey
8171e1469d Bug 1209398 - Make AC_SUBST_SET emit a list of unique items instead of an actual set. r=gps
While the name AC_SUBST_SET suggests the underlying type would be a set, it does
not actually matter that much in moz.build, and is not used that much anyways.
2015-09-30 11:51:47 +09:00
Ehsan Akhgari
b73f093357 Bug 904572 - Add support for generating clang compilation database; r=glandium,r=gps 2015-09-29 09:23:50 +09:00
Mike Hommey
86a76ef43b Bug 1207897 - Add a configure option to build multiple build backends. r=gps
Also record what backends were requested at configure time so that running
`mach build-backend` or `config.status` uses the same set.
2015-09-29 09:23:50 +09:00
Mike Hommey
932ed211cf Bug 1091505 - Run subconfigures in parallel. r=gps
On automation, this brings Windows configure time on a clobber from 5:30 to 3:10.

Sadly, because make needs to run under intl/icu/host before configuring
intl/icu/target, intl/icu/host needs to be configured independently. Fortunately,
that's not configured for normal windows builds anyways.

Also, having multiple subconfigures sharing the same cache file is dangerously
racy. Fortunately, not a lot do. In fact, only js/src and $_subconfigure_subdir
do, so force the latter (only used for ldap sdk on comm-central) not to
configure in parallel.
2014-11-04 13:50:18 +09:00
Mike Hommey
45b81608ea Bug 1040641 - Ignore AC_SUBSTs for variables we don't have use for but that autoconf itself exports. r=gps 2014-07-23 08:40:12 +09:00
Mike Hommey
c52d31562a Bug 1035543 - Remove the MOZ_PSEUDO_DERECURSE variable. r=gps 2014-07-10 14:11:52 +09:00
Mike Hommey
9dcd156a38 Bug 1003537 - Turn config.status executable in MOZ_CREATE_CONFIG_STATUS instead of MOZ_RUN_CONFIG_STATUS. r=mshal 2014-05-01 10:57:49 +09:00
Ehsan Akhgari
020f3fd4d8 Bug 979118 - Add global MMX_FLAGS, SSE_FLAGS and SSE2_FLAGS variables; r=glandium 2014-03-19 21:55:00 -04:00
Mike Hommey
69e70086e0 Bug 969164 - Traverse js/src moz.builds from top-level configure. r=gps
Before, we would run configure in both top-level and js/src, and both
configures would traverse their own set of moz.builds, without actual
knowledge about the other. With this change, both configures still run,
but only top-level traverses moz.build files, and uses js/src's
config.status when traversing its moz.build files. This allows a better
sharing of information between both build systems and the removal of many
hacks.

This also moves running libffi and icu configure to top-level.

Standalone js builds still have their own configure doing moz.build traversal,
as before.

--HG--
rename : config/autoconf.mk.in => config/autoconf-js.mk.in
rename : config/emptyvars.mk.in => config/emptyvars-js.mk.in
2014-02-11 10:37:47 +09:00
Mike Hommey
57508a1ca7 Bug 951010 - Move ConfigStatus.py under mozbuild. r=gps
--HG--
rename : build/ConfigStatus.py => python/mozbuild/mozbuild/config_status.py
2013-12-18 08:07:11 +09:00
Mike Hommey
507d5397fb Bug 935857 - Add AC_SUBST_SET to create a set() of strings in config.status and use it for NECKO_PROTOCOLS. r=gps 2013-11-12 07:52:32 +09:00
Gregory Szorc
9bd5fc0064 Bug 927837 - Don't manage generated files in configure; r=glandium
--HG--
extra : rebase_source : b502ce209de6a0ae10e130644e424687e4fae85e
2013-10-23 14:43:32 -07:00
Mike Hommey
bbe7163df0 Bug 907365 - Pseudo-derecursify the build (opt-in). r=gps
Also remove the compile tier added in bug 912856 when pseudo-derecursify is disabled.
2013-09-20 10:44:11 +09:00
Mike Hommey
06463be339 Bug 888549 - Don't print config.log when config.status fails. r=ted 2013-08-15 23:45:08 +09:00
Gregory Szorc
fa54d8c866 Bug 873325 - Normalize topobjdir to an absolute path; r=glandium 2013-05-20 09:45:54 -07:00
Joshua Cranmer
d381f677ac Bug 648980 - Add a hook for projects to have custom configure scripts. r=glandium
--HG--
extra : rebase_source : e020071adc89e07fd45d468aabe518027df7ba44
2013-02-26 13:45:52 -06:00
Gregory Szorc
2b30ef2b1f Bug 784841 - Part 13: Properly normalize topsrcdir in config.status; r=glandium 2013-02-21 10:55:55 -08:00
Mike Hommey
e149104528 Bug 785871 - Make config.status importable. r=gps 2012-08-29 08:55:58 +02:00
Mike Hommey
f458811d34 Bug 781461 - Work around mksh/pdksh bug in config.status.m4. r=ted 2012-08-18 11:17:29 +02:00
Mike Hommey
240057c8e9 Bug 780357 - Allow m-c's ConfigStatus.py to be used from c-c. r=khuey 2012-08-05 17:52:47 +02:00
Masatoshi Kimura
4d843c6645 Bug 780430 - Declare encoding in config.status. r=glandium 2012-08-05 12:42:59 +02:00
Mike Hommey
e5d69586e3 Bug 774032 part 6 - Replace autoconf handling of config files and headers with our own. r=ted 2012-08-04 08:47:28 +02:00