Bug 784841 - Part 18e: Convert /build, /config, and core build system; r=ted
authorGregory Szorc <gps@mozilla.com>
Mon, 25 Feb 2013 12:47:18 -0800
changeset 123301 7fc68ba4fe8012771dc3295d7d6366ccf911793c
parent 123300 3fc89f2888fe975cc617c836c79073fa352e96aa
child 123302 56b6ff7d20ec103cb9d4e27c179f5ba48e84c8cd
push id23787
push userMs2ger@gmail.com
push dateThu, 28 Feb 2013 17:37:42 +0000
treeherdermozilla-inbound@c65d59d33aa8 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersted
bugs784841
milestone22.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 784841 - Part 18e: Convert /build, /config, and core build system; r=ted
Makefile.in
build/Makefile.in
build/mobile/robocop/moz.build
build/mobile/sutagent/android/fencp/moz.build
build/mobile/sutagent/android/ffxcp/moz.build
build/mobile/sutagent/android/moz.build
build/mobile/sutagent/android/watcher/moz.build
build/moz.build
build/package/moz.build
build/pgo/Makefile.in
build/pgo/blueprint/moz.build
build/pgo/js-input/moz.build
build/pgo/moz.build
build/stlport/moz.build
build/unix/Makefile.in
build/unix/elfhack/moz.build
build/unix/moz.build
build/unix/stdc++compat/moz.build
build/unix/test/moz.build
build/win32/Makefile.in
build/win32/crashinjectdll/moz.build
build/win32/moz.build
build/win32/vmwarerecordinghelper/moz.build
config/js/build.mk
config/js/js.mozbuild
config/makefiles/test/Makefile.in
config/makefiles/test/moz.build
config/moz.build
config/nspr/moz.build
config/tests/makefiles/autodeps/Makefile.in
config/tests/makefiles/autodeps/moz.build
config/tests/src-simple/Makefile.in
config/tests/src-simple/moz.build
js/src/config/check-sync-exceptions
moz.build
python/moz.build
--- a/Makefile.in
+++ b/Makefile.in
@@ -16,53 +16,16 @@ ifeq (,$(filter-out 3.78 3.79,$(MAKE_VER
 $(error GNU Make 3.80 or higher is required)
 endif
 endif
 
 include $(DEPTH)/config/autoconf.mk
 
 default::
 
-TIERS += base
-
-#
-# tier "base" - basic setup
-#
-tier_base_dirs = \
-  config \
-  build \
-  probes \
-  mfbt \
-  python \
-  $(NULL)
-
-ifndef LIBXUL_SDK
-ifeq (android,$(MOZ_WIDGET_TOOLKIT))
-tier_base_dirs += \
-  other-licenses/android \
-  $(NULL)
-endif
-ifeq (gonk,$(MOZ_WIDGET_TOOLKIT))
-tier_base_dirs += \
-  other-licenses/android \
-  $(NULL)
-endif
-
-ifdef MOZ_MEMORY
-tier_base_dirs += memory
-endif
-ifndef MOZ_NATIVE_ZLIB
-tier_base_dirs += modules/zlib
-endif
-tier_base_dirs += \
-  mozglue \
-  memory/mozalloc \
-  $(NULL)
-endif
-
 ifdef COMPILE_ENVIRONMENT
 include $(topsrcdir)/$(MOZ_BUILD_APP)/build.mk
 endif
 
 
 include $(topsrcdir)/config/config.mk
 
 GARBAGE_DIRS += dist _javagen _profile _tests staticlib
--- a/build/Makefile.in
+++ b/build/Makefile.in
@@ -9,39 +9,16 @@ srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 USE_RCS_MK := 1
 include $(topsrcdir)/config/makefiles/makeutils.mk
 
 MODULE = build
 
-ifeq (,$(filter WINNT OS2,$(OS_ARCH)))
-DIRS		= unix
-endif
-
-ifeq (WINNT,$(OS_ARCH))
-DIRS = win32
-endif
-
-ifdef STLPORT_SOURCES
-DIRS += stlport
-endif
-
-DIRS += pgo
-
-ifeq (android,$(MOZ_WIDGET_TOOLKIT))
-TEST_DIRS += mobile/sutagent/android \
-          mobile/sutagent/android/watcher \
-          mobile/sutagent/android/ffxcp \
-          mobile/sutagent/android/fencp \
-          mobile/robocop \
-          $(NULL)
-endif
-
 ifdef MOZ_APP_BASENAME
 DIST_FILES = $(srcdir)/application.ini
 
 ifneq (android,$(MOZ_WIDGET_TOOLKIT))
 ifdef MOZ_UPDATER
 DIST_FILES += update-settings.ini
 endif
 endif
new file mode 100644
--- /dev/null
+++ b/build/mobile/robocop/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/mobile/sutagent/android/fencp/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/mobile/sutagent/android/ffxcp/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/mobile/sutagent/android/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/mobile/sutagent/android/watcher/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/moz.build
@@ -0,0 +1,24 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+if CONFIG['OS_ARCH'] not in ('WINNT', 'OS2'):
+    DIRS += ['unix']
+elif CONFIG['OS_ARCH'] == 'WINNT':
+    DIRS += ['win32']
+
+if CONFIG['STLPORT_SOURCES']:
+    DIRS += ['stlport']
+
+DIRS += ['pgo']
+
+if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
+    TEST_DIRS += [
+        'mobile/sutagent/android',
+        'mobile/sutagent/android/watcher',
+        'mobile/sutagent/android/ffxcp',
+        'mobile/sutagent/android/fencp',
+        'mobile/robocop',
+    ]
+
new file mode 100644
--- /dev/null
+++ b/build/package/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
--- a/build/pgo/Makefile.in
+++ b/build/pgo/Makefile.in
@@ -6,21 +6,16 @@
 DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir = @relativesrcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
-DIRS = \
-  blueprint \
-  js-input \
-  $(NULL)
-
 include $(topsrcdir)/config/rules.mk
 
 # We install to _profile/pgo
 TARGET_DEPTH = ../..
 include $(topsrcdir)/build/automation-build.mk
 
 # Need to override the browser_path from binary-location.mk (included via automation-build.mk)
 # since we want to run from e.g. dist/firefox rather than dist/bin
new file mode 100644
--- /dev/null
+++ b/build/pgo/blueprint/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/pgo/js-input/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/pgo/moz.build
@@ -0,0 +1,6 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+DIRS += ['blueprint', 'js-input']
new file mode 100644
--- /dev/null
+++ b/build/stlport/moz.build
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CONFIGURE_SUBST_FILES += ['stl/config/_android.h']
+
--- a/build/unix/Makefile.in
+++ b/build/unix/Makefile.in
@@ -8,26 +8,16 @@ DEPTH		= @DEPTH@
 topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 MODULE       = build
 
-ifdef STDCXX_COMPAT
-DIRS += stdc++compat
-endif
-
-ifdef USE_ELF_HACK
-DIRS += elfhack
-endif
-
-TEST_DIRS = test
-
 SDK_BINARY = run-mozilla.sh
 
 include $(topsrcdir)/config/rules.mk
 
 libs:: $(srcdir)/run-mozilla.sh
 	$(INSTALL) $< $(DIST)/bin
 
 # EOF
new file mode 100644
--- /dev/null
+++ b/build/unix/elfhack/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/unix/moz.build
@@ -0,0 +1,13 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+if CONFIG['STDCXX_COMPAT']:
+    DIRS += ['stdc++compat']
+
+if CONFIG['USE_ELF_HACK']:
+    DIRS += ['elfhack']
+
+TEST_DIRS += ['test']
+
new file mode 100644
--- /dev/null
+++ b/build/unix/stdc++compat/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/unix/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
--- a/build/win32/Makefile.in
+++ b/build/win32/Makefile.in
@@ -6,26 +6,16 @@ DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
 NO_PROFILE_GUIDED_OPTIMIZE = 1
 
-ifdef _MSC_VER
-ifneq ($(OS_TEST),x86_64)
-TEST_DIRS += vmwarerecordinghelper
-endif
-endif
-
-TEST_DIRS += \
-  crashinjectdll \
-  $(NULL)
-
 ifdef ENABLE_TESTS
 
 PROGRAM = crashinject$(BIN_SUFFIX)
 USE_STATIC_LIBS = 1
 CPPSRCS = crashinject.cpp
 
 endif # ENABLE_TESTS
 
new file mode 100644
--- /dev/null
+++ b/build/win32/crashinjectdll/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/build/win32/moz.build
@@ -0,0 +1,10 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+if CONFIG['_MSC_VER'] and CONFIG['OS_TEST'] != 'x86_64':
+    TEST_DIRS += ['vmwarerecordinghelper']
+
+TEST_DIRS += ['crashinjectdll']
+
new file mode 100644
--- /dev/null
+++ b/build/win32/vmwarerecordinghelper/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
deleted file mode 100644
--- a/config/js/build.mk
+++ /dev/null
@@ -1,6 +0,0 @@
-# This Source Code Form is subject to the terms of the Mozilla Public
-# License, v. 2.0. If a copy of the MPL was not distributed with this
-# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-TIERS += js
-tier_js_dirs = js/src
new file mode 100644
--- /dev/null
+++ b/config/js/js.mozbuild
@@ -0,0 +1,7 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+add_tier_dir('js', 'js/src', static=True)
+
--- a/config/makefiles/test/Makefile.in
+++ b/config/makefiles/test/Makefile.in
@@ -6,16 +6,17 @@
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
 srcdir    = @srcdir@
 VPATH     = @srcdir@
 
 include $(DEPTH)/config/autoconf.mk
 
+STANDALONE_MAKEFILE := 1
 USE_AUTOTARGETS_MK  = 1
 MAKEUTILS_UNIT_TEST = 1
 include $(topsrcdir)/config/makefiles/makeutils.mk
 
 dir-ts = .deps/test
 check-arglist        = $(dir-ts)/arglist.ts
 check-autotargets    = $(dir-ts)/autotargets_mk.ts
 check-export-targets = $(dir-ts)/export-targets-mk.ts
new file mode 100644
--- /dev/null
+++ b/config/makefiles/test/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
new file mode 100644
--- /dev/null
+++ b/config/moz.build
@@ -0,0 +1,13 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+CONFIGURE_SUBST_FILES += [
+    'autoconf.mk',
+    'doxygen.cfg',
+    'makefiles/test/Makefile',
+    'tests/makefiles/autodeps/Makefile',
+    'tests/src-simple/Makefile',
+]
+
new file mode 100644
--- /dev/null
+++ b/config/nspr/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
--- a/config/tests/makefiles/autodeps/Makefile.in
+++ b/config/tests/makefiles/autodeps/Makefile.in
@@ -1,15 +1,16 @@
 # -*- makefile -*-
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this file,
 # You can obtain one at http://mozilla.org/MPL/2.0/.
 #
 
+export STANDALONE_MAKEFILE=1
 PYTHON ?= python
 PYTEST = $(PYTHON) -E
 
 # python -B not supported by older interpreters
 export PYTHONDONTWRITEBYTECODE=1
 
 DEPTH     = @DEPTH@
 topsrcdir = @top_srcdir@
new file mode 100644
--- /dev/null
+++ b/config/tests/makefiles/autodeps/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
--- a/config/tests/src-simple/Makefile.in
+++ b/config/tests/src-simple/Makefile.in
@@ -8,16 +8,18 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 LOCALE_SRCDIR = $(srcdir)/l10n
 
 include $(DEPTH)/config/autoconf.mk
 
 include $(topsrcdir)/config/config.mk
 
+STANDALONE_MAKEFILE := 1
+
 XPI_NAME = test_jar_mn
 
 DEFINES += \
 	-DAB_CD=ab-X-stuff \
 	$(NULL)
 
 MY_MANIFEST = $(if $(USE_EXTENSION_MANIFEST), $(FINAL_TARGET)/chrome.manifest, $(FINAL_TARGET)/chrome/test.manifest)
 REF_MANIFEST = $(if $(USE_EXTENSION_MANIFEST),chrome.manifest,test.manifest)
new file mode 100644
--- /dev/null
+++ b/config/tests/src-simple/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
--- a/js/src/config/check-sync-exceptions
+++ b/js/src/config/check-sync-exceptions
@@ -4,16 +4,17 @@ autoconf.mk.in
 autoconf.mk
 baseconfig.mk
 check-sync-dirs.py
 static-checking-config.mk
 nsinstall
 nsinstall.exe
 host_nsinstall.o
 host_pathsub.o
+moz.build
 
 # This is a copy of nspr's config/make-system-wrappers.pl.
 make-system-wrappers.pl
 system_wrappers_js
 
 # Ignore detritus left lying around by editing tools.
 *~
 .#*
new file mode 100644
--- /dev/null
+++ b/moz.build
@@ -0,0 +1,23 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+add_tier_dir('base', ['config', 'build', 'probes', 'mfbt', 'python'])
+
+if not CONFIG['LIBXUL_SDK']:
+    if CONFIG['MOZ_WIDGET_TOOLKIT'] in ('android', 'gonk'):
+        add_tier_dir('base', ['other-licenses/android'])
+
+    if CONFIG['MOZ_MEMORY']:
+        add_tier_dir('base', ['memory'])
+
+    if not CONFIG['MOZ_NATIVE_ZLIB']:
+        add_tier_dir('base', ['modules/zlib'])
+
+    add_tier_dir('base', ['mozglue', 'memory/mozalloc'])
+
+# Bring in the configuration for the configured application.
+if CONFIG['COMPILE_ENVIRONMENT']:
+    include('/' + CONFIG['MOZ_BUILD_APP'] + '/app.mozbuild')
+
new file mode 100644
--- /dev/null
+++ b/python/moz.build
@@ -0,0 +1,5 @@
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+