From 9c1df5a4d5751fc83ebaeaa039ca5007fc86dc29 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 6 Jul 2009 08:37:28 -0700
Subject: [PATCH 01/48] DRC06
---
core/build_id.mk | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 060c9b5e8..5967c02c2 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -1,3 +1,4 @@
+
#
# Copyright (C) 2008 The Android Open Source Project
#
@@ -13,20 +14,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-
-#
-# Defines branch-specific values.
-#
-
# BUILD_ID is usually used to specify the branch name
# (like "MAIN") or a branch name and a release candidate
-# (like "TC1-RC5"). It must be a single word, and is
+# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-#
-BUILD_ID := Donut
-# DISPLAY_BUILD_NUMBER should only be set for development branches,
-# If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for
-# a more descriptive BUILD_ID_DISPLAY, otherwise BUILD_ID_DISPLAY
-# is the same as BUILD_ID
-DISPLAY_BUILD_NUMBER := true
+export BUILD_ID=DRC06
From c94545815c8aad839952f0dc8b9bc16252d81527 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 7 Jul 2009 09:00:33 -0700
Subject: [PATCH 02/48] DRC07
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 5967c02c2..2dda41522 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC06
+export BUILD_ID=DRC07
From 13cca00b99bd9207f116b6adeedf17dac4720638 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 8 Jul 2009 08:10:42 -0700
Subject: [PATCH 03/48] DRC08
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 2dda41522..32e9e4f24 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC07
+export BUILD_ID=DRC08
From a4b1dca35f0db9b355116abdccfee23f409f49b0 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 9 Jul 2009 08:35:23 -0700
Subject: [PATCH 04/48] DRC09
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 32e9e4f24..4fc5caad8 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC08
+export BUILD_ID=DRC09
From 0dea241c2010cb9a1b7f7e3caa6c152ecfa65f99 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 10 Jul 2009 08:35:11 -0700
Subject: [PATCH 05/48] DRC10
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 4fc5caad8..d698dbb89 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC09
+export BUILD_ID=DRC10
From 9db346a9d6b65f9d31f0d43af49df92de8a770c9 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 13 Jul 2009 08:35:59 -0700
Subject: [PATCH 06/48] DRC13
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index d698dbb89..9018772cf 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC10
+export BUILD_ID=DRC13
From 73e23ddad9f3f596d0a4236ae86acd1f18d0e50a Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 14 Jul 2009 08:35:54 -0700
Subject: [PATCH 07/48] DRC14
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 9018772cf..698e70d5e 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC13
+export BUILD_ID=DRC14
From eea324d111bf8b96af076a18b65e028d6e5ef1ab Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 15 Jul 2009 08:35:49 -0700
Subject: [PATCH 08/48] DRC15
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 698e70d5e..be71f2908 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC14
+export BUILD_ID=DRC15
From d6c37edbc159e0a46247789430f80e0a0ec07612 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 16 Jul 2009 08:35:50 -0700
Subject: [PATCH 09/48] DRC16
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index be71f2908..85dab3957 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC15
+export BUILD_ID=DRC16
From 179d46fcd5aa5237d6da514f01253f5d82c088b3 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 17 Jul 2009 08:35:34 -0700
Subject: [PATCH 10/48] DRC17
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 85dab3957..220515b09 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC16
+export BUILD_ID=DRC17
From 728eeddd9c26da5e01c649181eedbba7e644bda6 Mon Sep 17 00:00:00 2001
From: android-build SharedAccount
Date: Fri, 17 Jul 2009 13:01:01 -0700
Subject: [PATCH 11/48] DRC17B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 220515b09..c2014a9a1 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC17
+export BUILD_ID=DRC17B
From 14b072c7a189b1e31eb51a41765caebbaaa15dac Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 17 Jul 2009 14:50:37 -0700
Subject: [PATCH 12/48] DRC17C
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index c2014a9a1..7f2da274f 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC17B
+export BUILD_ID=DRC17C
From aa6ccda99edb9ed05ed2c00cc2cdf23c7fcb8d13 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 20 Jul 2009 08:34:58 -0700
Subject: [PATCH 13/48] DRC20
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 7f2da274f..b80486a64 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC17C
+export BUILD_ID=DRC20
From da8262ff3d084707462070d656a1485eeb1ffe5b Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 21 Jul 2009 08:35:09 -0700
Subject: [PATCH 14/48] DRC21
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index b80486a64..4bf499406 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC20
+export BUILD_ID=DRC21
From 79e2f4ceb38e45e685ff471cdc0691382522d35b Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 22 Jul 2009 08:36:11 -0700
Subject: [PATCH 15/48] DRC22
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 4bf499406..8b81b24ef 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC21
+export BUILD_ID=DRC22
From d04ebbc95440a67d3bfac29541fc37950507a8e4 Mon Sep 17 00:00:00 2001
From: android-build SharedAccount
Date: Thu, 23 Jul 2009 09:25:30 -0700
Subject: [PATCH 16/48] DRC23
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 8b81b24ef..840a70b01 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC22
+export BUILD_ID=DRC23
From 78aaa2e24fae25fc7f79af3143b6119c2c6660c3 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 24 Jul 2009 09:12:18 -0700
Subject: [PATCH 17/48] DRC24
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 840a70b01..f7f628c02 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC23
+export BUILD_ID=DRC24
From 5bcb9b05dbedc8935ef4e8f782ec45d5f584bad3 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 27 Jul 2009 08:38:04 -0700
Subject: [PATCH 18/48] DRC27
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index f7f628c02..7bf0e0e4a 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC24
+export BUILD_ID=DRC27
From 24fdba97a77774b327e585fa2bc2a8f91d0b5d26 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 28 Jul 2009 08:38:34 -0700
Subject: [PATCH 19/48] DRC28
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 7bf0e0e4a..765bbbb7a 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC27
+export BUILD_ID=DRC28
From db675fa7d48f4c842a3c18a659400f5323f8197f Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 29 Jul 2009 08:37:52 -0700
Subject: [PATCH 20/48] DRC29
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 765bbbb7a..201865d77 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC28
+export BUILD_ID=DRC29
From b5c065960b03788ca5f46c4193a0253aed9ecdfe Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 30 Jul 2009 08:38:09 -0700
Subject: [PATCH 21/48] DRC30
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 201865d77..f91211396 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC29
+export BUILD_ID=DRC30
From 857a865515d6a4e1d8e4252a89f14d2de9a99451 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 30 Jul 2009 09:29:51 -0700
Subject: [PATCH 22/48] DRC30B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index f91211396..c78f2f64c 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC30
+export BUILD_ID=DRC30B
From 3351be0cbab77d6d655e5652882048e9ec0c2d85 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 31 Jul 2009 08:38:17 -0700
Subject: [PATCH 23/48] DRC31
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index c78f2f64c..df2823cc4 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC30B
+export BUILD_ID=DRC31
From 85eff1306ed3206da5b16775906feaf55da07ab1 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 3 Aug 2009 08:38:55 -0700
Subject: [PATCH 24/48] DRC34
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index df2823cc4..7977629b0 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC31
+export BUILD_ID=DRC34
From 666584fcefe80490e4b65790b4d2ddfcd66a1aa8 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 4 Aug 2009 08:38:33 -0700
Subject: [PATCH 25/48] DRC35
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 7977629b0..ec56b8e77 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC34
+export BUILD_ID=DRC35
From 1189ae35d5c138fc3bb5ae8b60f2b46e0a0cfe9b Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 6 Aug 2009 11:28:19 -0700
Subject: [PATCH 26/48] DRC37
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index ec56b8e77..18ab9d927 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC35
+export BUILD_ID=DRC37
From 9d4a9846a587ee2f42389d168fdc8a77487eed11 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 6 Aug 2009 15:47:24 -0700
Subject: [PATCH 27/48] DRC37B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 18ab9d927..40275eaec 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC37
+export BUILD_ID=DRC37B
From 98512f02321010b106aca8c62b39feba5462e1c8 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 11 Aug 2009 13:48:29 -0700
Subject: [PATCH 28/48] DRC42
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 40275eaec..b54f83d58 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC37B
+export BUILD_ID=DRC42
From fa6258f84ff31a805120208679d5d5fb32632dee Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 12 Aug 2009 10:41:20 -0700
Subject: [PATCH 29/48] DRC43
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index b54f83d58..22d5de418 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC42
+export BUILD_ID=DRC43
From 367346f8490bdf1ba6d4e64f77cf425940402e70 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 13 Aug 2009 14:13:15 -0700
Subject: [PATCH 30/48] DRC44
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 22d5de418..5708a24b8 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC43
+export BUILD_ID=DRC44
From 347772341522b151e5e4d9a94d0701e4912ab51a Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 14 Aug 2009 11:49:47 -0700
Subject: [PATCH 31/48] DRC45
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 5708a24b8..d77ed1e72 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC44
+export BUILD_ID=DRC45
From 2e8ee4239d526d30f121004f4ad832aa79bbb184 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 14 Aug 2009 14:30:53 -0700
Subject: [PATCH 32/48] DRC45B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index d77ed1e72..fcdc53a10 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC45
+export BUILD_ID=DRC45B
From 92c9c970f5c300923a89884b0975b73460c36e64 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 17 Aug 2009 15:47:00 -0700
Subject: [PATCH 33/48] DRC48
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index fcdc53a10..0d4c199c5 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC45B
+export BUILD_ID=DRC48
From dfe9c92a5e00358a10e7d2990e1cfe4efc9c64e2 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 18 Aug 2009 14:11:06 -0700
Subject: [PATCH 34/48] DRC49
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 0d4c199c5..b42eacefb 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC48
+export BUILD_ID=DRC49
From a9409a26b862dbe06443179fdaf4791a5f0d61d1 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Wed, 19 Aug 2009 15:06:00 -0700
Subject: [PATCH 35/48] DRC50
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index b42eacefb..c021449fc 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC49
+export BUILD_ID=DRC50
From 7619d63095e03d48a06b1d47becdfca4b05344ff Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 20 Aug 2009 16:56:11 -0700
Subject: [PATCH 36/48] DRC51
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index c021449fc..47cee3816 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC50
+export BUILD_ID=DRC51
From 0f6f48e0a761530571cd2e6a088a300924bd54f5 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 21 Aug 2009 14:20:25 -0700
Subject: [PATCH 37/48] DRC52
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 47cee3816..8fde60b5b 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC51
+export BUILD_ID=DRC52
From b6179579f79fd57a292df5aec77dcaf5e94549e1 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 27 Aug 2009 11:23:39 -0700
Subject: [PATCH 38/48] DRC58
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 8fde60b5b..17b7eb501 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC52
+export BUILD_ID=DRC58
From 0364be9fe2831341599b1193a2a7cca7c3925c93 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 27 Aug 2009 15:40:48 -0700
Subject: [PATCH 39/48] DRC58B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 17b7eb501..f72db3e00 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC58
+export BUILD_ID=DRC58B
From 412ed5eda3bb4ea8e39fe8c4f5105a80b535de65 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 27 Aug 2009 22:18:38 -0700
Subject: [PATCH 40/48] DRC58C
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index f72db3e00..4a311969c 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC58B
+export BUILD_ID=DRC58C
From e2989179ce6a509b10f28db61e5dc7260d89e992 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Fri, 28 Aug 2009 14:20:38 -0700
Subject: [PATCH 41/48] DRC59
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 4a311969c..fe72bb782 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC58C
+export BUILD_ID=DRC59
From b6ca6975f15c140e3c88f90033bb98a8ca06a6f9 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Mon, 31 Aug 2009 16:42:21 -0700
Subject: [PATCH 42/48] DRC62
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index fe72bb782..6762677ad 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC59
+export BUILD_ID=DRC62
From 9f6de0f7d2996e1408c7163e17fe3430e172d4fb Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 1 Sep 2009 11:30:04 -0700
Subject: [PATCH 43/48] DRC63
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 6762677ad..d067a8a4e 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC62
+export BUILD_ID=DRC63
From 1b039fc5ac6a293080c8e4ca30b3845d30360354 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 1 Sep 2009 15:14:42 -0700
Subject: [PATCH 44/48] DRC63B
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index d067a8a4e..009f075f1 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC63
+export BUILD_ID=DRC63B
From 3a5013d94ecbb5b47e7b1c47d88d76e405ca96ae Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Tue, 1 Sep 2009 22:14:49 -0700
Subject: [PATCH 45/48] DRC63C
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 009f075f1..1f367101d 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC63B
+export BUILD_ID=DRC63C
From b3e1907cfccf80dbcbb237454678284fa8129648 Mon Sep 17 00:00:00 2001
From: The Android Open Source Project
Date: Thu, 3 Sep 2009 10:40:22 -0700
Subject: [PATCH 46/48] DRC65
---
core/build_id.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/core/build_id.mk b/core/build_id.mk
index 1f367101d..d6ddd72f4 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -19,4 +19,4 @@
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
-export BUILD_ID=DRC63C
+export BUILD_ID=DRC65
From e6b4e5b20ac8a3b01f1a99dd877a98c92036ce5e Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Queru
Date: Thu, 12 Nov 2009 18:45:15 -0800
Subject: [PATCH 47/48] eclair snapshot
---
buildspec.mk.default | 49 +-
cleanspec.mk | 38 +-
core/Makefile | 59 +-
core/apicheck_msg_current.txt | 4 +-
core/base_rules.mk | 3 +-
core/binary.mk | 36 +-
core/build-system.html | 947 ++++++++++++
core/build_id.mk | 2 +-
core/clear_vars.mk | 2 +
core/combo/arch/arm/armv4t.mk | 23 +
core/combo/arch/arm/armv5te-vfp.mk | 7 +
core/combo/arch/arm/armv5te.mk | 21 +
core/combo/arch/arm/armv7-a.mk | 22 +
core/combo/linux-arm.mk | 85 +-
core/combo/select.mk | 1 +
core/config.mk | 45 +-
core/definitions.mk | 55 +-
core/envsetup.mk | 6 +-
core/find-jdk-tools-jar.sh | 6 +-
core/java.mk | 44 +-
core/main.mk | 88 +-
core/multi_prebuilt.mk | 4 +-
core/node_fns.mk | 2 +
core/notice_files.mk | 11 +-
core/package.mk | 8 +
core/pathmap.mk | 5 +-
core/prebuilt.mk | 2 +
core/prelink-linux-arm.map | 26 +-
core/product.mk | 3 +-
core/product_config.mk | 9 +
core/proguard.flags | 7 +
core/tasks/cts.mk | 5 +-
core/tasks/product-graph.mk | 31 +-
core/version_defaults.mk | 10 +-
envsetup.sh | 38 +-
history/cupcake.txt | 1103 ++++++++++++++
target/board/Android.mk | 7 +-
target/board/generic/BoardConfig.mk | 3 +-
target/product/core.mk | 4 +-
target/product/generic.mk | 7 +-
target/product/generic_with_google.mk | 5 +-
target/product/min_dev.mk | 3 +-
target/product/sdk.mk | 16 +-
tools/adbs | 222 +++
.../src/com/android/apicheck/ApiCheck.java | 25 +-
.../src/com/android/apicheck/Errors.java | 3 +-
.../android/apicheck/SourcePositionInfo.java | 1 +
tools/applypatch/Android.mk | 8 +-
tools/applypatch/bsdiff.c | 592 +++++---
tools/applypatch/bspatch.c | 252 ++++
tools/applypatch/imgdiff.c | 80 +-
tools/apriori/prelinkmap.c | 111 +-
tools/atree/files.cpp | 2 +
tools/atree/fs.cpp | 1 +
tools/buildinfo.sh | 1 +
tools/dexpreopt/Config.mk | 9 +-
.../droiddoc/src/AnnotationInstanceInfo.java | 1 +
tools/droiddoc/src/AttrTagInfo.java | 4 +-
tools/droiddoc/src/ClassInfo.java | 39 +-
tools/droiddoc/src/Comment.java | 12 +-
tools/droiddoc/src/Converter.java | 35 +-
tools/droiddoc/src/DroidDoc.java | 158 +-
tools/droiddoc/src/Errors.java | 1 +
tools/droiddoc/src/FieldInfo.java | 7 +-
tools/droiddoc/src/MemberInfo.java | 3 +-
tools/droiddoc/src/MethodInfo.java | 41 +-
tools/droiddoc/src/PackageInfo.java | 2 +
tools/droiddoc/src/ParamTagInfo.java | 1 +
tools/droiddoc/src/SampleTagInfo.java | 3 +-
tools/droiddoc/src/SeeTagInfo.java | 1 +
tools/droiddoc/src/SourcePositionInfo.java | 1 +
tools/droiddoc/src/TypeInfo.java | 1 +
tools/droiddoc/templates-sdk/customization.cs | 9 +-
tools/droiddoc/templates-sdk/devdoc-nav.cs | 66 -
tools/droiddoc/templates-sdk/header_tabs.cs | 92 +-
tools/droiddoc/templates-sdk/sdkpage.cs | 97 +-
.../assets/android-developer-core.css | 6 +-
.../assets/android-developer-docs.css | 29 +-
.../assets/android-developer-docs.js | 111 +-
.../assets/android-developer-reference.js | 86 +-
.../assets/images/home/donut-android.png | Bin 24871 -> 9386 bytes
.../assets/images/home/eclair-android.png | Bin 0 -> 11311 bytes
.../templates/assets/search_autocomplete.js | 2 +-
tools/droiddoc/templates/class.cs | 51 +-
tools/droiddoc/templates/macros.cs | 22 +-
tools/dump-package-stats | 2 +-
tools/findleaves.py | 98 ++
tools/findleaves.sh | 109 --
tools/releasetools/amend_generator.py | 4 +
tools/releasetools/common.py | 102 +-
tools/releasetools/edify_generator.py | 9 +-
tools/releasetools/img_from_target_files | 13 +-
tools/releasetools/ota_from_target_files | 314 ++--
tools/releasetools/sign_target_files_apks | 13 +-
tools/signapk/SignApk.java | 110 +-
tools/warn.py | 523 +++++++
tools/zipalign/Android.mk | 4 +-
tools/zipalign/README.txt | 4 +
tools/zipalign/ZipAlign.cpp | 11 +-
tools/zipalign/ZipEntry.cpp | 696 +++++++++
tools/zipalign/ZipEntry.h | 345 +++++
tools/zipalign/ZipFile.cpp | 1297 +++++++++++++++++
tools/zipalign/ZipFile.h | 270 ++++
103 files changed, 7817 insertions(+), 1147 deletions(-)
create mode 100644 core/build-system.html
create mode 100644 core/combo/arch/arm/armv4t.mk
create mode 100644 core/combo/arch/arm/armv5te-vfp.mk
create mode 100644 core/combo/arch/arm/armv5te.mk
create mode 100644 core/combo/arch/arm/armv7-a.mk
create mode 100644 core/proguard.flags
create mode 100644 history/cupcake.txt
create mode 100755 tools/adbs
create mode 100644 tools/applypatch/bspatch.c
delete mode 100644 tools/droiddoc/templates-sdk/devdoc-nav.cs
mode change 100644 => 100755 tools/droiddoc/templates/assets/images/home/donut-android.png
create mode 100644 tools/droiddoc/templates/assets/images/home/eclair-android.png
create mode 100755 tools/findleaves.py
delete mode 100755 tools/findleaves.sh
create mode 100755 tools/warn.py
create mode 100644 tools/zipalign/ZipEntry.cpp
create mode 100644 tools/zipalign/ZipEntry.h
create mode 100644 tools/zipalign/ZipFile.cpp
create mode 100644 tools/zipalign/ZipFile.h
diff --git a/buildspec.mk.default b/buildspec.mk.default
index 861bb0d9f..06db49957 100644
--- a/buildspec.mk.default
+++ b/buildspec.mk.default
@@ -21,6 +21,30 @@
# "buildspec.mk" should never be checked in to source control.
######################################################################
+# Choose a product to build for. Look in the products directory for ones
+# that work.
+ifndef TARGET_PRODUCT
+#TARGET_PRODUCT:=generic
+endif
+
+# Choose a variant to build. If you don't pick one, the default is eng.
+# User is what we ship. Userdebug is that, with a few flags turned on
+# for debugging. Eng has lots of extra tools for development.
+ifndef TARGET_BUILD_VARIANT
+#TARGET_BUILD_VARIANT:=user
+#TARGET_BUILD_VARIANT:=userdebug
+#TARGET_BUILD_VARIANT:=eng
+endif
+
+# Choose additional targets to always install, even when building
+# minimal targets like "make droid". This takes simple target names
+# like "Browser" or "MyApp", the names used by LOCAL_MODULE or
+# LOCAL_PACKAGE_NAME. Modules listed here will always be installed in
+# /system, even if they'd usually go in /data.
+ifndef CUSTOM_MODULES
+#CUSTOM_MODULES:=
+endif
+
# Uncomment this if you want the simulator, otherwise, build for arm
ifndef TARGET_SIMULATOR
#TARGET_SIMULATOR:=true
@@ -50,21 +74,6 @@ endif
#HOST_CUSTOM_DEBUG_CFLAGS:=
#TARGET_CUSTOM_DEBUG_CFLAGS:=
-# Choose a product to build for. Look in the products directory for ones
-# that work.
-ifndef TARGET_PRODUCT
-#TARGET_PRODUCT:=generic
-endif
-
-# Choose additional targets to always install, even when building
-# minimal targets like "make droid". This takes simple target names
-# like "Browser" or "MyApp", the names used by LOCAL_MODULE or
-# LOCAL_PACKAGE_NAME. Modules listed here will always be installed in
-# /system, even if they'd usually go in /data.
-ifndef CUSTOM_MODULES
-#CUSTOM_MODULES:=
-endif
-
# Choose additional locales, like "en_US" or "it_IT", to add to any
# built product. Any locales that appear in CUSTOM_LOCALES but not in
# the locale list for the selected product will be added to the end
@@ -88,10 +97,16 @@ ifndef NO_FALLBACK_FONT
#NO_FALLBACK_FONT:=true
endif
-# To enabled instrumentation in webcore based apps like gmail and
+# To enable instrumentation in webcore based apps like gmail and
# the browser, define WEBCORE_INSTRUMENTATION:=true
+ifndef WEBCORE_INSTRUMENTATION
#WEBCORE_INSTRUMENTATION:=true
-#endif
+endif
+
+# To enable SVG in webcore define ENABLE_SVG:=true
+ifndef ENABLE_SVG
+#ENABLE_SVG:=true
+endif
# when the build system changes such that this file must be updated, this
# variable will be changed. After you have modified this file with the new
diff --git a/cleanspec.mk b/cleanspec.mk
index c244c4674..d1401fb55 100644
--- a/cleanspec.mk
+++ b/cleanspec.mk
@@ -18,7 +18,7 @@
# WHEN DOING SO, DELETE ANY "add-clean-step" ENTRIES THAT HAVE PILED UP.
# **********************************************************************
#
-INTERNAL_CLEAN_BUILD_VERSION := 2
+INTERNAL_CLEAN_BUILD_VERSION := 3
#
# ***********************************************************************
# Do not touch INTERNAL_CLEAN_BUILD_VERSION if you've added a clean step!
@@ -31,7 +31,7 @@ INTERNAL_CLEAN_BUILD_VERSION := 2
#
# E.g.:
# $(call add-clean-step, touch -c external/sqlite/sqlite3.h)
-# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/external/zlib/)
+# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates)
#
# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with
# files that are missing or have been moved.
@@ -54,38 +54,10 @@ INTERNAL_CLEAN_BUILD_VERSION := 2
#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates)
#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f)
#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libwebcore_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libwebcore_intermediates)
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/build.prop)
-$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/etc/NOTICE.html)
-# Remove generated java files after CL 126153
-$(call add-clean-step, find $(OUT_DIR) -type f -name "*.java" -print0 | xargs -0 rm -f)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/sapphire/obj/SHARED_LIBRARIES/libhardware_legacy_intermediates/led)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/bin/mountd)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/etc/mountd.conf)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Browser_intermediates)
-$(call add-clean-step, rm -f vendor/google/apps/Talk/res/drawable/%*)
-$(call add-clean-step, rm -rf $(OUT_DIR)/product/*/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_os_NetStat.o)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libjni_andpyime_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/share)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libwebcore_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIME_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.inputmethod.pinyin.lib_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIMEGoogleService_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.inputmethod.pinyin.lib_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/PinyinIMEGoogleService_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/telephony)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj)
-$(call add-clean-step, rm -f $(PRODUCT_OUT)/system/bin/tcpdump)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/location)
-
-$(call add-clean-step, rm -rf $(OUT_DIR)/product/*/obj/SHARED_LIBRARIES/lib?camera_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/product/*/obj/STATIC_LIBRARIES/lib?camera_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/product/*/obj/SHARED_LIBRARIES/libwebcore_intermediates)
-$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework_intermediates)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/ringtones/Silence.ogg)
-$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/ringtones/notifications/Silence.ogg)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/core/Makefile b/core/Makefile
index 2c4d13323..e70474809 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -118,6 +118,7 @@ $(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE)
PRODUCT_BRAND="$(PRODUCT_BRAND)" \
PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \
PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \
+ PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \
PRODUCT_MODEL="$(PRODUCT_MODEL)" \
PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \
PRIVATE_BUILD_DESC="$(PRIVATE_BUILD_DESC)" \
@@ -299,7 +300,7 @@ else # TARGET_BOOTIMAGE_USE_EXT2 != true
$(INSTALLED_BOOTIMAGE_TARGET): $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_FILES)
$(call pretty,"Target boot image: $@")
$(hide) $(MKBOOTIMG) $(INTERNAL_BOOTIMAGE_ARGS) --output $@
- $(hide) $(call assert-max-file-size,$@,$(BOARD_BOOTIMAGE_MAX_SIZE),raw)
+ $(hide) $(call assert-max-image-size,$@,$(BOARD_BOOTIMAGE_PARTITION_SIZE),raw)
endif # TARGET_BOOTIMAGE_USE_EXT2
else # TARGET_NO_KERNEL
@@ -501,7 +502,7 @@ endif
# Recovery image
# If neither TARGET_NO_KERNEL nor TARGET_NO_RECOVERY are true
-ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY)))
+ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY) $(BUILD_TINY_ANDROID)))
INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img
@@ -577,7 +578,7 @@ $(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \
$(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
$(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) --output $@
@echo ----- Made recovery image -------- $@
- $(hide) $(call assert-max-file-size,$@,$(BOARD_RECOVERYIMAGE_MAX_SIZE),raw)
+ $(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
else
INSTALLED_RECOVERYIMAGE_TARGET :=
@@ -662,7 +663,7 @@ endif
$(INSTALLED_SYSTEMIMAGE): $(BUILT_SYSTEMIMAGE) $(RECOVERY_FROM_BOOT_PATCH) | $(ACP)
@echo "Install system fs image: $@"
$(copy-file-to-target)
- $(hide) $(call assert-max-file-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_MAX_SIZE),yaffs)
+ $(hide) $(call assert-max-image-size,$@ $(RECOVERY_FROM_BOOT_PATCH),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
systemimage: $(INSTALLED_SYSTEMIMAGE)
@@ -671,7 +672,7 @@ systemimage-nodeps snod: $(filter-out systemimage-nodeps snod,$(MAKECMDGOALS)) \
| $(INTERNAL_MKUSERFS)
@echo "make $@: ignoring dependencies"
$(call build-systemimage-target,$(INSTALLED_SYSTEMIMAGE))
- $(hide) $(call assert-max-file-size,$(INSTALLED_SYSTEMIMAGE),$(BOARD_SYSTEMIMAGE_MAX_SIZE),yaffs)
+ $(hide) $(call assert-max-image-size,$(INSTALLED_SYSTEMIMAGE),$(BOARD_SYSTEMIMAGE_PARTITION_SIZE),yaffs)
#######
## system tarball
@@ -708,7 +709,7 @@ define build-userdataimage-target
$(call pretty,"Target userdata fs image: $(INSTALLED_USERDATAIMAGE_TARGET)")
@mkdir -p $(TARGET_OUT_DATA)
$(call build-userimage-ext2-target,$(TARGET_OUT_DATA),$(INSTALLED_USERDATAIMAGE_TARGET),userdata,)
- $(hide) $(call assert-max-file-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_MAX_SIZE),yaffs)
+ $(hide) $(call assert-max-image-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
endef
else # TARGET_USERIMAGES_USE_EXT2 != true
@@ -718,7 +719,7 @@ define build-userdataimage-target
$(call pretty,"Target userdata fs image: $(INSTALLED_USERDATAIMAGE_TARGET)")
@mkdir -p $(TARGET_OUT_DATA)
$(hide) $(MKYAFFS2) -f $(TARGET_OUT_DATA) $(INSTALLED_USERDATAIMAGE_TARGET)
- $(hide) $(call assert-max-file-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_MAX_SIZE),yaffs)
+ $(hide) $(call assert-max-image-size,$(INSTALLED_USERDATAIMAGE_TARGET),$(BOARD_USERDATAIMAGE_PARTITION_SIZE),yaffs)
endef
endif # TARGET_USERIMAGES_USE_EXT2
@@ -813,6 +814,13 @@ $(BUILT_TARGET_FILES_PACKAGE): PRIVATE_OTA_TOOLS := $(built_ota_tools)
$(BUILT_TARGET_FILES_PACKAGE): PRIVATE_RECOVERY_API_VERSION := $(RECOVERY_API_VERSION)
+ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
+# default to common dir for device vendor
+$(BUILT_TARGET_FILES_PACKAGE): tool_extensions := $(TARGET_DEVICE_DIR)/../common
+else
+$(BUILT_TARGET_FILES_PACKAGE): tool_extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
+endif
+
# Depending on the various images guarantees that the underlying
# directories are up-to-date.
$(BUILT_TARGET_FILES_PACKAGE): \
@@ -841,6 +849,9 @@ ifdef INSTALLED_2NDBOOTLOADER_TARGET
endif
ifdef BOARD_KERNEL_CMDLINE
$(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/RECOVERY/cmdline
+endif
+ifdef BOARD_KERNEL_BASE
+ $(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/RECOVERY/base
endif
@# Components of the boot image
$(hide) mkdir -p $(zip_root)/BOOT
@@ -856,11 +867,12 @@ endif
ifdef BOARD_KERNEL_CMDLINE
$(hide) echo "$(BOARD_KERNEL_CMDLINE)" > $(zip_root)/BOOT/cmdline
endif
-ifdef INSTALLED_RADIOIMAGE_TARGET
- @# The radio image
- $(hide) mkdir -p $(zip_root)/RADIO
- $(hide) $(ACP) $(INSTALLED_RADIOIMAGE_TARGET) $(zip_root)/RADIO/image
+ifdef BOARD_KERNEL_BASE
+ $(hide) echo "$(BOARD_KERNEL_BASE)" > $(zip_root)/BOOT/base
endif
+ $(hide) $(foreach t,$(INSTALLED_RADIOIMAGE_TARGET),\
+ mkdir -p $(zip_root)/RADIO; \
+ $(ACP) $(t) $(zip_root)/RADIO/$(notdir $(t));)
@# Contents of the system image
$(hide) $(call package_files-copy-root, \
$(SYSTEMIMAGE_SOURCE_DIR),$(zip_root)/SYSTEM)
@@ -878,10 +890,11 @@ endif
$(hide) echo "$(PRODUCT_OTA_PUBLIC_KEYS)" > $(zip_root)/META/otakeys.txt
$(hide) echo "$(PRIVATE_RECOVERY_API_VERSION)" > $(zip_root)/META/recovery-api-version.txt
$(hide) echo "blocksize $(BOARD_FLASH_BLOCK_SIZE)" > $(zip_root)/META/imagesizes.txt
- $(hide) echo "boot $(BOARD_BOOTIMAGE_MAX_SIZE)" >> $(zip_root)/META/imagesizes.txt
- $(hide) echo "recovery $(BOARD_RECOVERYIMAGE_MAX_SIZE)" >> $(zip_root)/META/imagesizes.txt
- $(hide) echo "system $(BOARD_SYSTEMIMAGE_MAX_SIZE)" >> $(zip_root)/META/imagesizes.txt
- $(hide) echo "userdata $(BOARD_USERDATAIMAGE_MAX_SIZE)" >> $(zip_root)/META/imagesizes.txt
+ $(hide) echo "boot $(call image-size-from-data-size,$(BOARD_BOOTIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
+ $(hide) echo "recovery $(call image-size-from-data-size,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
+ $(hide) echo "system $(call image-size-from-data-size,$(BOARD_SYSTEMIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
+ $(hide) echo "userdata $(call image-size-from-data-size,$(BOARD_USERDATAIMAGE_PARTITION_SIZE))" >> $(zip_root)/META/imagesizes.txt
+ $(hide) echo "$(tool_extensions)" > $(zip_root)/META/tool-extensions.txt
@# Zip everything up, preserving symlinks
$(hide) (cd $(zip_root) && zip -qry ../$(notdir $@) .)
@@ -904,9 +917,17 @@ INTERNAL_OTA_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip
$(INTERNAL_OTA_PACKAGE_TARGET): KEY_CERT_PAIR := $(DEFAULT_KEY_CERT_PAIR)
+ifeq ($(TARGET_OTA_SCRIPT_MODE),)
+# default to "auto"
+$(INTERNAL_OTA_PACKAGE_TARGET): scriptmode := auto
+else
+$(INTERNAL_OTA_PACKAGE_TARGET): scriptmode := $(TARGET_OTA_SCRIPT_MODE)
+endif
+
$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) otatools
@echo "Package OTA: $@"
$(hide) ./build/tools/releasetools/ota_from_target_files \
+ -m $(scriptmode) \
-p $(HOST_OUT) \
-k $(KEY_CERT_PAIR) \
$(BUILT_TARGET_FILES_PACKAGE) $@
@@ -1030,9 +1051,17 @@ name := $(name)-img-$(FILE_NAME_TAG)
INTERNAL_UPDATE_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip
+ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
+# default to common dir for device vendor
+$(INTERNAL_UPDATE_PACKAGE_TARGET): extensions := $(TARGET_DEVICE_DIR)/../common
+else
+$(INTERNAL_UPDATE_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
+endif
+
$(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) otatools
@echo "Package: $@"
$(hide) ./build/tools/releasetools/img_from_target_files \
+ -s $(extensions) \
-p $(HOST_OUT) \
$(BUILT_TARGET_FILES_PACKAGE) $@
diff --git a/core/apicheck_msg_current.txt b/core/apicheck_msg_current.txt
index d723a1983..5d3a91397 100644
--- a/core/apicheck_msg_current.txt
+++ b/core/apicheck_msg_current.txt
@@ -7,10 +7,10 @@ To make these errors go away, you have two choices:
errors above.
2) You can update current.xml by executing the following command:
-
make update-api
- To check in the revised current.xml, you will need approval from the android API council.
+ To submit the revised current.xml to the main Android repository,
+ you will need approval.
******************************
diff --git a/core/base_rules.mk b/core/base_rules.mk
index a6bf504fc..64b74e717 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -272,8 +272,10 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SOURCE_INTERMEDIATES_DIR := $(intermediat
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_SOURCES := $(all_java_sources)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_JAVA_OBJECTS := $(patsubst %.java,%.class,$(LOCAL_SRC_FILES))
ifeq ($(my_prefix),TARGET_)
+ifeq ($(LOCAL_SDK_VERSION),)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_BOOTCLASSPATH := -bootclasspath $(call java-lib-files,core)
endif
+endif
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RESOURCE_DIR := $(LOCAL_RESOURCE_DIR)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_EXTRA_JAR_ARGS := $(extra_jar_args)
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASSET_DIR := $(LOCAL_ASSET_DIR)
@@ -350,7 +352,6 @@ $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_PATH:=$(LOCAL_PATH)
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_POST_PROCESS_COMMAND:= $(LOCAL_POST_PROCESS_COMMAND)
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_AAPT_FLAGS:= $(LOCAL_AAPT_FLAGS)
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_JAVA_LIBRARIES:= $(LOCAL_JAVA_LIBRARIES)
-#TODO: add this: $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_ADDITIONAL_DEPENDENCIES:= $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_ALL_JAVA_LIBRARIES:= $(full_java_libs)
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_IS_HOST_MODULE := $(LOCAL_IS_HOST_MODULE)
diff --git a/core/binary.mk b/core/binary.mk
index ddcdc6f59..4413d4700 100644
--- a/core/binary.mk
+++ b/core/binary.mk
@@ -87,7 +87,7 @@ yacc_objects := $(yacc_cpps:$(LOCAL_CPP_EXTENSION)=.o)
ifneq ($(strip $(yacc_cpps)),)
$(yacc_cpps): $(intermediates)/%$(LOCAL_CPP_EXTENSION): \
$(TOPDIR)$(LOCAL_PATH)/%.y \
- $(lex_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+ $(lex_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(call transform-y-to-cpp,$(PRIVATE_CPP_EXTENSION))
$(yacc_headers): $(intermediates)/%.h: $(intermediates)/%$(LOCAL_CPP_EXTENSION)
@@ -115,7 +115,7 @@ $(lex_objects): PRIVATE_ARM_MODE := $(normal_objects_mode)
$(lex_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
$(lex_objects): $(intermediates)/%.o: \
$(intermediates)/%$(LOCAL_CPP_EXTENSION) \
- $(PRIVATE_ADDITIONAL_DEPENDENCIES) \
+ $(LOCAL_ADDITIONAL_DEPENDENCIES) \
$(yacc_headers)
$(transform-$(PRIVATE_HOST)cpp-to-o)
endif
@@ -142,7 +142,7 @@ cpp_objects := $(cpp_arm_objects) $(cpp_normal_objects)
ifneq ($(strip $(cpp_objects)),)
$(cpp_objects): $(intermediates)/%.o: \
$(TOPDIR)$(LOCAL_PATH)/%$(LOCAL_CPP_EXTENSION) \
- $(yacc_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+ $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)cpp-to-o)
-include $(cpp_objects:%.o=%.P)
endif
@@ -159,7 +159,7 @@ ifneq ($(strip $(gen_cpp_objects)),)
# TODO: support compiling certain generated files as arm.
$(gen_cpp_objects): PRIVATE_ARM_MODE := $(normal_objects_mode)
$(gen_cpp_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
-$(gen_cpp_objects): $(intermediates)/%.o: $(intermediates)/%$(LOCAL_CPP_EXTENSION) $(yacc_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(gen_cpp_objects): $(intermediates)/%.o: $(intermediates)/%$(LOCAL_CPP_EXTENSION) $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)cpp-to-o)
-include $(gen_cpp_objects:%.o=%.P)
endif
@@ -172,7 +172,7 @@ gen_S_sources := $(filter %.S,$(LOCAL_GENERATED_SOURCES))
gen_S_objects := $(gen_S_sources:%.S=%.o)
ifneq ($(strip $(gen_S_sources)),)
-$(gen_S_objects): $(intermediates)/%.o: $(intermediates)/%.S $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(gen_S_objects): $(intermediates)/%.o: $(intermediates)/%.S $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)s-to-o)
-include $(gen_S_objects:%.o=%.P)
endif
@@ -181,7 +181,7 @@ gen_s_sources := $(filter %.s,$(LOCAL_GENERATED_SOURCES))
gen_s_objects := $(gen_s_sources:%.s=%.o)
ifneq ($(strip $(gen_s_objects)),)
-$(gen_s_objects): $(intermediates)/%.o: $(intermediates)/%.s $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(gen_s_objects): $(intermediates)/%.o: $(intermediates)/%.s $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)s-to-o-no-deps)
-include $(gen_s_objects:%.o=%.P)
endif
@@ -206,11 +206,28 @@ $(c_normal_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
c_objects := $(c_arm_objects) $(c_normal_objects)
ifneq ($(strip $(c_objects)),)
-$(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(c_objects): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.c $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)c-to-o)
-include $(c_objects:%.o=%.P)
endif
+###########################################################
+## C: Compile generated .c files to .o.
+###########################################################
+
+gen_c_sources := $(filter %.c,$(LOCAL_GENERATED_SOURCES))
+gen_c_objects := $(gen_c_sources:%.c=%.o)
+
+ifneq ($(strip $(gen_c_objects)),)
+# Compile all generated files as thumb.
+# TODO: support compiling certain generated files as arm.
+$(gen_c_objects): PRIVATE_ARM_MODE := $(normal_objects_mode)
+$(gen_c_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags)
+$(gen_c_objects): $(intermediates)/%.o: $(intermediates)/%.c $(yacc_cpps) $(LOCAL_ADDITIONAL_DEPENDENCIES)
+ $(transform-$(PRIVATE_HOST)c-to-o)
+-include $(gen_c_objects:%.o=%.P)
+endif
+
###########################################################
## ObjC: Compile .m files to .o
###########################################################
@@ -232,7 +249,7 @@ asm_sources_S := $(filter %.S,$(LOCAL_SRC_FILES))
asm_objects_S := $(addprefix $(intermediates)/,$(asm_sources_S:.S=.o))
ifneq ($(strip $(asm_objects_S)),)
-$(asm_objects_S): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.S $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(asm_objects_S): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.S $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)s-to-o)
-include $(asm_objects_S:%.o=%.P)
endif
@@ -241,7 +258,7 @@ asm_sources_s := $(filter %.s,$(LOCAL_SRC_FILES))
asm_objects_s := $(addprefix $(intermediates)/,$(asm_sources_s:.s=.o))
ifneq ($(strip $(asm_objects_s)),)
-$(asm_objects_s): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.s $(PRIVATE_ADDITIONAL_DEPENDENCIES)
+$(asm_objects_s): $(intermediates)/%.o: $(TOPDIR)$(LOCAL_PATH)/%.s $(LOCAL_ADDITIONAL_DEPENDENCIES)
$(transform-$(PRIVATE_HOST)s-to-o-no-deps)
-include $(asm_objects_s:%.o=%.P)
endif
@@ -261,6 +278,7 @@ all_objects := \
$(gen_cpp_objects) \
$(gen_asm_objects) \
$(c_objects) \
+ $(gen_c_objects) \
$(yacc_objects) \
$(lex_objects) \
$(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES))
diff --git a/core/build-system.html b/core/build-system.html
new file mode 100644
index 000000000..43bae03b6
--- /dev/null
+++ b/core/build-system.html
@@ -0,0 +1,947 @@
+
+
+
+
+
+
+
+ Android Build System
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Android Build System
+
+
+
+ Status:Draft
+ (as of May 18, 2006)
+
+
+
Contents
+
+
+
+
Objective
+
The primary goals of reworking the build system are (1) to make dependencies
+work more reliably, so that when files need to rebuilt, they are, and (2) to
+improve performance of the build system so that unnecessary modules are not
+rebuilt, and so doing a top-level build when little or nothing needs to be done
+for a build takes as little time as possible.
+
+
Principles and Use Cases and Policy
+
Given the above objective, these are the overall principles and use cases
+that we will support. This is not an exhaustive list.
+
Multiple Targets
+
It needs to be possible to build the Android platform for multiple targets.
+This means:
+
+
The build system will support building tools for the host platform,
+ both ones that are used in the build process itself, and developer tools
+ like the simulator.
+
The build system will need to be able to build tools on Linux
+ (definitely Goobuntu and maybe Grhat), MacOS, and to some degree on
+ Windows.
+
The build system will need to be able to build the OS on Linux, and in
+ the short-term, MacOS. Note that this is a conscious decision to stop
+ building the OS on Windows. We are going to rely on the emulator there
+ and not attempt to use the simulator. This is a requirement change now
+ that the emulator story is looking brighter.
+
+
Non-Recursive Make
+
To achieve the objectives, the build system will be rewritten to use make
+non-recursively. For more background on this, read Recursive Make Considered Harmful. For those that don't
+want PDF, here is the
+Google translated version.
+
Rapid Compile-Test Cycles
+
When developing a component, for example a C++ shared library, it must be
+possible to easily rebuild just that component, and not have to wait more than a
+couple seconds for dependency checks, and not have to wait for unneeded
+components to be built.
+
Both Environment and Config File Based Settings
+
To set the target, and other options, some people on the team like to have a
+configuration file in a directory so they do not have an environment setup
+script to run, and others want an environment setup script to run so they can
+run builds in different terminals on the same tree, or switch back and forth
+in one terminal. We will support both.
+
Object File Directory / make clean
+
Object files and other intermediate files will be generated into a directory
+that is separate from the source tree. The goal is to have make clean be
+"rm -rf " in the tree root directory. The primary goals of
+this are to simplify searching the source tree, and to make "make clean" more
+reliable.
+
+
SDK
+
The SDK will be a tarball that will allow non-OS-developers to write apps.
+The apps will actually be built by first building the SDK, and then building
+the apps against that SDK. This will hopefully (1) make writing apps easier
+for us, because we won't have to rebuild the OS as much, and we can use the
+standard java-app development tools, and (2) allow us to dog-food the SDK, to
+help ensure its quality. Cedric has suggested (and I agree) that apps built
+from the SDK should be built with ant. Stay tuned for more details as we
+figure out exactly how this will work.
+
+
Dependecies
+
Dependencies should all be automatic. Unless there is a custom tool involved
+(e.g. the webkit has several), the dependencies for shared and static libraries,
+.c, .cpp, .h, .java, java libraries, etc., should all work without intervention
+in the Android.mk file.
+
+
Hiding command lines
+
The default of the build system will be to hide the command lines being
+executed for make steps. It will be possible to override this by specifying
+the showcommands pseudo-target, and possibly by setting an environment
+variable.
+
+
Wildcard source files
+
Wildcarding source file will be discouraged. It may be useful in some
+scenarios. The default $(wildcard *) will not work due to the
+current directory being set to the root of the build tree.
+
+
Multiple targets in one directory
+
It will be possible to generate more than one target from a given
+subdirectory. For example, libutils generates a shared library for the target
+and a static library for the host.
+
+
Makefile fragments for modules
+
Android.mk is the standard name for the makefile fragments that
+control the building of a given module. Only the top directory should
+have a file named "Makefile".
+
+
Use shared libraries
+
Currently, the simulator is not built to use shared libraries. This should
+be fixed, and now is a good time to do it. This implies getting shared
+libraries to work on Mac OS.
+
+
+
Nice to Have
+
+
These things would be nice to have, and this is a good place to record them,
+however these are not promises.
+
+
Simultaneous Builds
+
The hope is to be able to do two builds for different combos in the same
+tree at the same time, but this is a stretch goal, not a requirement.
+Doing two builds in the same tree, not at the same time must work. (update:
+it's looking like we'll get the two builds at the same time working)
+
+
Deleting headers (or other dependecies)
+
Problems can arise if you delete a header file that is referenced in
+".d" files. The easy way to deal with this is "make clean". There
+should be a better way to handle it. (from fadden)
+
One way of solving this is introducing a dependency on the directory. The
+problem is that this can create extra dependecies and slow down the build.
+It's a tradeoff.
+
+
Multiple builds
+
General way to perform builds across the set of known platforms. This
+would make it easy to perform multiple platform builds when testing a
+change, and allow a wide-scale "make clean". Right now the buildspec.mk
+or environment variables need to be updated before each build. (from fadden)
+
+
Aftermarket Locales and Carrier
+
We will eventually need to add support for creating locales and carrier
+customizations to the SDK, but that will not be addressed right now.
+
+
+
Usage
+
You've read (or scrolled past) all of the motivations for this build system,
+and you want to know how to use it. This is the place.
+
+
Your first build
+
The Building document describes how do do
+builds.
+
+
build/envsetup.sh functions
+If you source the file build/envsetup.sh into your bash environment,
+. build/envsetup.shyou'll get a few helpful shell functions:
+
+
+
printconfig - Prints the current configuration as set by the
+lunch and choosecombo commands.
+
m - Runs make from the top of the tree. This is
+useful because you can run make from within subdirectories. If you have the
+TOP environment variable set, it uses that. If you don't, it looks
+up the tree from the current directory, trying to find the top of the tree.
+
croot - cd to the top of the tree.
+
sgrep - grep for the regex you provide in all .c, .cpp, .h, .java,
+and .xml files below the current directory.
+
+
+
Build flavors/types
+
+When building for a particular product, it's often useful to have minor
+variations on what is ultimately the final release build. These are the
+currently-defined "flavors" or "types" (we need to settle on a real name
+for these).
+
+
+
+
+
+ eng
+
+
+ This is the default flavor. A plain "make" is the
+ same as "make eng". droid is an alias
+ for eng.
+
Installs non-APK modules that have no tags specified.
+
Installs APKs according to the product definition files, in
+ addition to tagged APKs.
+
ro.secure=0
+
ro.debuggable=1
+
ro.kernel.android.checkjni=1
+
adb is enabled by default.
+
+
+
+
+ user
+
+
+ "make user"
+
+ This is the flavor intended to be the final release bits.
+
+
Installs modules tagged with user.
+
Installs non-APK modules that have no tags specified.
+
Installs APKs according to the product definition files; tags
+ are ignored for APK modules.
+
ro.secure=1
+
ro.debuggable=0
+
adb is disabled by default.
+
+
+
+
+ userdebug
+
+
+ "make userdebug"
+
+ The same as user, except:
+
+
Also installs modules tagged with debug.
+
ro.debuggable=1
+
adb is enabled by default.
+
+
+
+
+
+If you build one flavor and then want to build another, you should run
+"make installclean" between the two makes to guarantee that
+you don't pick up files installed by the previous flavor. "make
+clean" will also suffice, but it takes a lot longer.
+
+
+
+
More pseudotargets
+
Sometimes you want to just build one thing. The following pseudotargets are
+there for your convenience:
+
+
+
droid - make droid is the normal build. This target
+is here because the default target has to have a name.
+
all - make all builds everything make
+droid does, plus everything whose LOCAL_MODULE_TAGS do not
+include the "droid" tag. The build server runs this to make sure
+that everything that is in the tree and has an Android.mk builds.
+
clean-$(LOCAL_MODULE) and clean-$(LOCAL_PACKAGE_NAME) -
+Let you selectively clean one target. For example, you can type
+make clean-libutils and it will delete libutils.so and all of the
+intermediate files, or you can type make clean-Home and it will
+clean just the Home app.
+
clean - make clean deletes all of the output and
+intermediate files for this configuration. This is the same as rm -rf
+out/<configuration>/
+
clobber - make clobber deletes all of the output
+and intermediate files for all configurations. This is the same as
+rm -rf out/.
+
dataclean - make dataclean deletes contents of the data
+directory inside the current combo directory. This is especially useful on the
+simulator and emulator, where the persistent data remains present between
+builds.
+
showcommands - showcommands is a modifier target
+which causes the build system to show the actual command lines for the build
+steps, instead of the brief descriptions. Most people don't like seeing the
+actual commands, because they're quite long and hard to read, but if you need
+to for debugging purposes, you can add showcommands to the list
+of targets you build. For example make showcommands will build
+the default android configuration, and make runtime showcommands
+will build just the runtime, and targets that it depends on, while displaying
+the full command lines. Please note that there are a couple places where the
+commands aren't shown here. These are considered bugs, and should be fixed,
+but they're often hard to track down. Please let
+android-build-team know if you find
+any.
+
LOCAL_MODULE - Anything you specify as a LOCAL_MODULE
+in an Android.mk is made into a pseudotarget. For example, make
+runtime might be shorthand for make
+out/linux-x86-debug/system/bin/runtime (which would work), and
+make libkjs might be shorthand for make
+out/linux-x86-debug/system/lib/libkjs.so (which would also work).
+
targets - make targets will print a list of all of
+the LOCAL_MODULE names you can make.
+
+
+
How to add another component to the build - Android.mk templates
+
You have a new library, a new app, or a new executable. For each of the
+common types of modules, there is a corresponding file in the templates
+directory. It will usually be enough to copy one of these, and fill in your
+own values. Some of the more esoteric values are not included in the
+templates, but are instead just documented here, as is the documentation
+on using custom tools to generate files.
+
Mostly, you can just look for the TODO comments in the templates and do
+what it says. Please remember to delete the TODO comments when you're done
+to keep the files clean. The templates have minimal documentation in them,
+because they're going to be copied, and when that gets stale, the copies just
+won't get updated. So read on...
+
+
Apps
+
Use the templates/apps file.
+
This template is pretty self-explanitory. See the variables below for more
+details.
+
+
Java Libraries
+
Use the templates/java_library file.
+
The interesting thing here is the value of LOCAL_MODULE, which becomes
+the name of the jar file. (Actually right now, we're not making jar files yet,
+just directories of .class files, but the directory is named according to
+what you put in LOCAL_MODULE). This name will be what goes in the
+LOCAL_JAVA_LIBRARIES variable in modules that depend on your java library.
+
+
C/C++ Executables
+
Use the templates/executable file, or the
+templates/executable_host file.
+
This template has a couple extra options that you usually don't need.
+Please delete the ones you don't need, and remove the TODO comments. It makes
+the rest of them easier to read, and you can always refer back to the templates
+if you need them again later.
+
By default, on the target these are built into /system/bin, and on the
+host, they're built into /host/bin. These can be overridden by setting
+LOCAL_MODULE_PATH. See
+Putting targets elsewhere
+for more.
+
+
Shared Libraries
+
Use the templates/shared_library file, or the
+templates/shared_library_host file.
+
Remember that on the target, we use shared libraries, and on the host,
+we use static libraries, since executable size isn't as big an issue, and it
+simplifies distribution in the SDK.
+
+
Static Libraries
+
Use the templates/static_library file, or the
+templates/static_library_host file.
+
Remember that on the target, we use shared libraries, and on the host,
+we use static libraries, since executable size isn't as big an issue, and it
+simplifies distribution in the SDK.
+
+
Using Custom Tools
+
If you have a tool that generates source files for you, it's possible
+to have the build system get the dependencies correct for it. Here are
+a couple of examples. $@ is the make built-in variable for
+"the current target." The red parts are the parts you'll
+need to change.
+
+
You need to put this after you have declared LOCAL_PATH and
+LOCAL_MODULE, because the $(local-intermediates-dir)
+and $(local-host-intermediates-dir) macros use these variables
+to determine where to put the files.
+
+
Example 1
+
Here, there is one generated file, called
+chartables.c, which doesn't depend on anything. And is built by the tool
+built to $(HOST_OUT_EXECUTABLES)/dftables. Note on the second to last line
+that a dependency is created on the tool.
Here as a hypothetical example, we use use cat as if it were to transform
+a file. Pretend that it does something useful. Note how we use a
+target-specific variable called PRIVATE_INPUT_FILE to store the name of the
+input file.
If you have several files that are all similar in
+name, and use the same tool, you can combine them. (here the *.lut.h files are
+the generated ones, and the *.cpp files are the input files)
Sometimes you need to set flags specifically for different platforms. Here
+is a list of which values the different build-system defined variables will be
+set to and some examples.
+
For a device build, TARGET_OS is linux (we're using
+linux!), and TARGET_ARCH is arm.
+
For a simulator build, TARGET_OS and TARGET_ARCH
+are set to the same as HOST_OS and HOST_ARCH are
+on your platform. TARGET_PRODUCT is the name of the target
+hardware/product you are building for. The value sim is used
+for the simulator. We haven't thought through the full extent of customization
+that will happen here, but likely there will be additional UI configurations
+specified here as well.
+
+
+
+ HOST_OS
+ linux
+ darwin
+ (cygwin)
+
+
+ HOST_ARCH
+ x86
+
+
+ HOST_BUILD_TYPE
+ release
+ debug
+
+
+
+
+ TARGET_OS
+ linux
+ darwin
+ (cygwin)
+
+
+ TARGET_ARCH
+ arm
+ x86
+
+
+ TARGET_BUILD_TYPE
+ release
+ debug
+
+
+ TARGET_PRODUCT
+ sim
+ dream
+ sooner
+
+
+
+
+
TARGET_SIMULATOR
+
If we're building the simulator, as opposed to the arm or emulator builds,
+TARGET_SIMULATOR will be set to true.
+
+
Some Examples
+
ifeq ($(TARGET_SIMULATOR),true)
+LOCAL_CFLAGS += -DSIMULATOR
+endif
+
+ifeq ($(TARGET_BUILD_TYPE),release)
+LOCAL_CFLAGS += -DNDEBUG=1
+endif
+
+# from libutils
+ifeq ($(TARGET_OS),linux)
+# Use the futex based mutex and condition variable
+# implementation from android-arm because it's shared mem safe
+LOCAL_SRC_FILES += futex_synchro.c
+LOCAL_LDLIBS += -lrt -ldl
+endif
+
+
+
+
+
Putting modules elsewhere
+
If you have modules that normally go somewhere, and you need to have them
+build somewhere else, read this. One use of this is putting files on
+the root filesystem instead of where they normally go in /system. Add these
+lines to your Android.mk:
For executables and libraries, you need to also specify a
+LOCAL_UNSTRIPPED_PATH location, because on target builds, we keep
+the unstripped executables so GDB can find the symbols.
+
Look in config/envsetup.make for all of the variables defining
+places to build things.
+
FYI: If you're installing an executable to /sbin, you probably also want to
+set LOCAL_FORCE_STATIC_EXCUTABLE := true in your Android.mk, which
+will force the linker to only accept static libraries.
+
+
+
Android.mk variables
+
These are the variables that you'll commonly see in Android.mk files, listed
+alphabetically.
+
But first, a note on variable naming:
+
+
LOCAL_ - These variables are set per-module. They are cleared
+ by the include $(CLEAR_VARS) line, so you can rely on them
+ being empty after including that file. Most of the variables you'll use
+ in most modules are LOCAL_ variables.
+
PRIVATE_ - These variables are make-target-specific variables. That
+ means they're only usable within the commands for that module. It also
+ means that they're unlikely to change behind your back from modules that
+ are included after yours. This
+ link to the make documentation
+ describes more about target-specific variables. Please note that there
+ are a couple of these laying around the tree that aren't prefixed with
+ PRIVATE_. It is safe, and they will be fixed as they are discovered.
+ Sorry for the confusion.
+
INTERNAL_ - These variables are critical to functioning of
+ the build system, so you shouldn't create variables named like this, and
+ you probably shouldn't be messing with these variables in your makefiles.
+
+
HOST_ and TARGET_ - These contain the directories
+ and definitions that are specific to either the host or the target builds.
+ Do not set variables that start with HOST_ or TARGET_ in your makefiles.
+
+
BUILD_ and CLEAR_VARS - These contain the names of
+ well-defined template makefiles to include. Some examples are CLEAR_VARS
+ and BUILD_HOST_PACKAGE.
+
Any other name is fair-game for you to use in your Android.mk. However,
+ remember that this is a non-recursive build system, so it is possible that
+ your variable will be changed by another Android.mk included later, and be
+ different when the commands for your rule / module are executed.
+
+
+
+
LOCAL_ASSET_FILES
+
In Android.mk files that include $(BUILD_PACKAGE) set this
+to the set of files you want built into your app. Usually:
+
LOCAL_ASSET_FILES += $(call find-subdir-assets)
+
This will probably change when we switch to ant for the apps' build
+system.
+
+
LOCAL_CC
+
If you want to use a different C compiler for this module, set LOCAL_CC
+to the path to the compiler. If LOCAL_CC is blank, the appropriate default
+compiler is used.
+
+
LOCAL_CXX
+
If you want to use a different C++ compiler for this module, set LOCAL_CXX
+to the path to the compiler. If LOCAL_CXX is blank, the appropriate default
+compiler is used.
+
+
LOCAL_CFLAGS
+
If you have additional flags to pass into the C or C++ compiler, add
+them here. For example:
+
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1
+
+
LOCAL_CPPFLAGS
+
If you have additional flags to pass into only the C++ compiler, add
+them here. For example:
+
LOCAL_CPPFLAGS += -ffriend-injection
+LOCAL_CPPFLAGS is guaranteed to be after LOCAL_CFLAGS
+on the compile line, so you can use it to override flags listed in
+LOCAL_CFLAGS.
+
+
LOCAL_CPP_EXTENSION
+
If your C++ files end in something other than ".cpp",
+you can specify the custom extension here. For example:
+
LOCAL_CPP_EXTENSION := .cc
+Note that all C++ files for a given module must have the same
+extension; it is not currently possible to mix different extensions.
+
+
LOCAL_NO_DEFAULT_COMPILER_FLAGS
+
Normally, the compile line for C and C++ files includes global include
+paths and global cflags. If LOCAL_NO_DEFAULT_COMPILER_FLAGS
+is non-empty, none of the default includes or flags will be used when compiling
+C and C++ files in this module.
+LOCAL_C_INCLUDES, LOCAL_CFLAGS, and
+LOCAL_CPPFLAGS will still be used in this case, as will
+any DEBUG_CFLAGS that are defined for the module.
+
+
LOCAL_COPY_HEADERS
+
This will be going away.
+
The set of files to copy to the install include tree. You must also
+supply LOCAL_COPY_HEADERS_TO.
+
This is going away because copying headers messes up the error messages, and
+may lead to people editing those headers instead of the correct ones. It also
+makes it easier to do bad layering in the system, which we want to avoid. We
+also aren't doing a C/C++ SDK, so there is no ultimate requirement to copy any
+headers.
+
+
LOCAL_COPY_HEADERS_TO
+
This will be going away.
+
The directory within "include" to copy the headers listed in
+LOCAL_COPY_HEADERS to.
+
This is going away because copying headers messes up the error messages, and
+may lead to people editing those headers instead of the correct ones. It also
+makes it easier to do bad layering in the system, which we want to avoid. We
+also aren't doing a C/C++ SDK, so there is no ultimate requirement to copy any
+headers.
+
+
LOCAL_C_INCLUDES
+
Additional directories to instruct the C/C++ compilers to look for header
+files in. These paths are rooted at the top of the tree. Use
+LOCAL_PATH if you have subdirectories of your own that you
+want in the include paths. For example:
You should not add subdirectories of include to
+LOCAL_C_INCLUDES, instead you should reference those files
+in the #include statement with their subdirectories. For
+example:
There are some components that are doing this wrong, and should be cleaned
+up.
+
+
LOCAL_MODULE_TAGS
+
Set LOCAL_MODULE_TAGS to any number of whitespace-separated
+tags. If the tag list is empty or contains droid, the module
+will get installed as part of a make droid. Otherwise, it will
+only get installed by running make <your-module>
+or with the make all pseudotarget.
+
+
LOCAL_REQUIRED_MODULES
+
Set LOCAL_REQUIRED_MODULES to any number of whitespace-separated
+module names, like "libblah" or "Email". If this module is installed, all
+of the modules that it requires will be installed as well. This can be
+used to, e.g., ensure that necessary shared libraries or providers are
+installed when a given app is installed.
+
+
LOCAL_FORCE_STATIC_EXECUTABLE
+
If your executable should be linked statically, set
+LOCAL_FORCE_STATIC_EXECUTABLE:=true. There is a very short
+list of libraries that we have in static form (currently only libc). This is
+really only used for executables in /sbin on the root filesystem.
+
+
LOCAL_GENERATED_SOURCES
+
Files that you add to LOCAL_GENERATED_SOURCES will be
+automatically generated and then linked in when your module is built.
+See the Custom Tools template makefile for an
+example.
+
+
LOCAL_JAVA_LIBRARIES
+
When linking Java apps and libraries, LOCAL_JAVA_LIBRARIES
+specifies which sets of java classes to include. Currently there are
+two of these: core and framework.
+In most cases, it will look like this:
+
LOCAL_JAVA_LIBRARIES := core framework
+
Note that setting LOCAL_JAVA_LIBRARIES is not necessary
+(and is not allowed) when building an APK with
+"include $(BUILD_PACKAGE)". The appropriate libraries
+will be included automatically.
+
+
LOCAL_LDFLAGS
+
You can pass additional flags to the linker by setting
+LOCAL_LDFLAGS. Keep in mind that the order of parameters is
+very important to ld, so test whatever you do on all platforms.
+
+
LOCAL_LDLIBS
+
LOCAL_LDLIBS allows you to specify additional libraries
+that are not part of the build for your executable or library. Specify
+the libraries you want in -lxxx format; they're passed directly to the
+link line. However, keep in mind that there will be no dependency generated
+for these libraries. It's most useful in simulator builds where you want
+to use a library preinstalled on the host. The linker (ld) is a particularly
+fussy beast, so it's sometimes necessary to pass other flags here if you're
+doing something sneaky. Some examples:
If your package doesn't have a manifest (AndroidManifest.xml), then
+set LOCAL_NO_MANIFEST:=true. The common resources package
+does this.
+
+
LOCAL_PACKAGE_NAME
+
LOCAL_PACKAGE_NAME is the name of an app. For example,
+Dialer, Contacts, etc. This will probably change or go away when we switch
+to an ant-based build system for the apps.
+
+
LOCAL_PATH
+
The directory your Android.mk file is in. You can set it by putting the
+following as the first line in your Android.mk:
+
LOCAL_PATH := $(my-dir)
+
The my-dir macro uses the
+MAKEFILE_LIST
+variable, so you must call it before you include any other makefiles. Also,
+consider that any subdirectories you inlcude might reset LOCAL_PATH, so do your
+own stuff before you include them. This also means that if you try to write
+several include lines that reference LOCAL_PATH,
+it won't work, because those included makefiles might reset LOCAL_PATH.
+
+
LOCAL_POST_PROCESS_COMMAND
+
For host executables, you can specify a command to run on the module
+after it's been linked. You might have to go through some contortions
+to get variables right because of early or late variable evaluation:
When including $(BUILD_PREBUILT) or $(BUILD_HOST_PREBUILT), set these to
+executables that you want copied. They're located automatically into the
+right bin directory.
+
+
LOCAL_PREBUILT_LIBS
+
When including $(BUILD_PREBUILT) or $(BUILD_HOST_PREBUILT), set these to
+libraries that you want copied. They're located automatically into the
+right lib directory.
+
+
LOCAL_SHARED_LIBRARIES
+
These are the libraries you directly link against. You don't need to
+pass transitively included libraries. Specify the name without the suffix:
The build system looks at LOCAL_SRC_FILES to know what source
+files to compile -- .cpp .c .y .l .java. For lex and yacc files, it knows
+how to correctly do the intermediate .h and .c/.cpp files automatically. If
+the files are in a subdirectory of the one containing the Android.mk, prefix
+them with the directory name:
These are the static libraries that you want to include in your module.
+Mostly, we use shared libraries, but there are a couple of places, like
+executables in sbin and host executables where we use static libraries instead.
+
LOCAL_MODULE is the name of what's supposed to be generated
+from your Android.mk. For exmample, for libkjs, the LOCAL_MODULE
+is "libkjs" (the build system adds the appropriate suffix -- .so .dylib .dll).
+For app modules, use LOCAL_PACKAGE_NAME instead of
+LOCAL_MODULE. We're planning on switching to ant for the apps,
+so this might become moot.
+
+
LOCAL_MODULE_PATH
+
Instructs the build system to put the module somewhere other than what's
+normal for its type. If you override this, make sure you also set
+LOCAL_UNSTRIPPED_PATH if it's an executable or a shared library
+so the unstripped binary has somewhere to go. An error will occur if you forget
+to.
Instructs the build system to put the unstripped version of the module
+somewhere other than what's normal for its type. Usually, you override this
+because you overrode LOCAL_MODULE_PATH for an executable or a
+shared library. If you overrode LOCAL_MODULE_PATH, but not
+LOCAL_UNSTRIPPED_PATH, an error will occur.
These are the static libraries that you want to include in your module without allowing
+the linker to remove dead code from them. This is mostly useful if you want to add a static library
+to a shared library and have the static library's content exposed from the shared library.
+
Any flags to pass to invocations of yacc for your module. A known limitation
+here is that the flags will be the same for all invocations of YACC for your
+module. This can be fixed. If you ever need it to be, just ask.
+
LOCAL_YACCFLAGS := -p kjsyy
+
+
+
+
Implementation Details
+
+
You should never have to touch anything in the config directory unless
+you're adding a new platform, new tools, or adding new features to the
+build system. In general, please consult with the build system owner(s)
+(android-build-team) before you go
+mucking around in here. That said, here are some notes on what's going on
+under the hood.
+
+
Environment Setup / buildspec.mk Versioning
+
In order to make easier for people when the build system changes, when
+it is necessary to make changes to buildspec.mk or to rerun the environment
+setup scripts, they contain a version number in the variable
+BUILD_ENV_SEQUENCE_NUMBER. If this variable does not match what the build
+system expects, it fails printing an error message explaining what happened.
+If you make a change that requires an update, you need to update two places
+so this message will be printed.
+
+
In config/envsetup.make, increment the
+ CORRECT_BUILD_ENV_SEQUENCE_NUMBER definition.
+
In buildspec.mk.default, update the BUILD_ENV_SEQUENCE_DUMBER
+ definition to match the one in config/envsetup.make
+
+The scripts automatically get the value from the build system, so they will
+trigger the warning as well.
+
+
+
Additional makefile variables
+
You probably shouldn't use these variables. Please consult
+android-build-team before using them.
+These are mostly there for workarounds for other issues, or things that aren't
+completely done right.
+
+
LOCAL_ADDITIONAL_DEPENDENCIES
+
If your module needs to depend on anything else that
+isn't actually built in to it, you can add those make targets to
+LOCAL_ADDITIONAL_DEPENDENCIES. Usually this is a workaround
+for some other dependency that isn't created automatically.
+
+
LOCAL_BUILT_MODULE
+
When a module is built, the module is created in an intermediate
+directory then copied to its final location. LOCAL_BUILT_MODULE is
+the full path to the intermediate file. See LOCAL_INSTALLED_MODULE
+for the path to the final installed location of the module.
+
+
LOCAL_HOST
+
Set by the host_xxx.make includes to tell base_rules.make and the other
+includes that we're building for the host. Kenneth did this as part of
+openbinder, and I would like to clean it up so the rules, includes and
+definitions aren't duplicated for host and target.
+
+
LOCAL_INSTALLED_MODULE
+
The fully qualified path name of the final location of the module.
+See LOCAL_BUILT_MODULE for the location of the intermediate file that
+the make rules should actually be constructing.
+
+
LOCAL_REPLACE_VARS
+
Used in some stuff remaining from the openbinder for building scripts
+with particular values set,
+
+
LOCAL_SCRIPTS
+
Used in some stuff remaining from the openbinder build system that we
+might find handy some day.
+
+
LOCAL_MODULE_CLASS
+
Which kind of module this is. This variable is used to construct other
+variable names used to locate the modules. See base_rules.make and
+envsetup.make.
+
+
LOCAL_MODULE_NAME
+
Set to the leaf name of the LOCAL_BUILT_MODULE. I'm not sure,
+but it looks like it's just used in the WHO_AM_I variable to identify
+in the pretty printing what's being built.
+
+
LOCAL_MODULE_SUFFIX
+
The suffix that will be appended to LOCAL_MODULE to form
+LOCAL_MODULE_NAME. For example, .so, .a, .dylib.
+
+
LOCAL_STRIP_MODULE
+
Calculated in base_rules.make to determine if this module should actually
+be stripped or not, based on whether LOCAL_STRIPPABLE_MODULE
+is set, and whether the combo is configured to ever strip modules. With
+Iliyan's stripping tool, this might change.
+
+
LOCAL_STRIPPABLE_MODULE
+
Set by the include makefiles if that type of module is strippable.
+Executables and shared libraries are.
+
+
LOCAL_SYSTEM_SHARED_LIBRARIES
+
Used while building the base libraries: libc, libm, libdl. Usually
+it should be set to "none," as it is in $(CLEAR_VARS). When building
+these libraries, it's set to the ones they link against. For example,
+libc, libstdc++ and libdl don't link against anything, and libm links against
+libc. Normally, when the value is none, these libraries are automatically
+linked in to executables and libraries, so you don't need to specify them
+manually.
+
+
+
+
diff --git a/core/build_id.mk b/core/build_id.mk
index 060c9b5e8..4661aea2b 100644
--- a/core/build_id.mk
+++ b/core/build_id.mk
@@ -23,7 +23,7 @@
# (like "TC1-RC5"). It must be a single word, and is
# capitalized by convention.
#
-BUILD_ID := Donut
+BUILD_ID := ECLAIR
# DISPLAY_BUILD_NUMBER should only be set for development branches,
# If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for
diff --git a/core/clear_vars.mk b/core/clear_vars.mk
index 28044c459..a7eba3f1a 100644
--- a/core/clear_vars.mk
+++ b/core/clear_vars.mk
@@ -87,6 +87,8 @@ LOCAL_CERTIFICATE:=
LOCAL_SDK_VERSION:=
LOCAL_NO_EMMA_INSTRUMENT:=
LOCAL_NO_EMMA_COMPILE:=
+LOCAL_PROGUARD_ENABLED:= # '',optonly,full,custom
+LOCAL_PROGUARD_FLAGS:=
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
# iterate over thousands of entries every time.
diff --git a/core/combo/arch/arm/armv4t.mk b/core/combo/arch/arm/armv4t.mk
new file mode 100644
index 000000000..abc8fa2dd
--- /dev/null
+++ b/core/combo/arch/arm/armv4t.mk
@@ -0,0 +1,23 @@
+# Configuration for Linux on ARM.
+# Generating binaries for the ARMv4T architecture and higher
+#
+# Supporting armv4 (without thumb) does not make much sense since
+# it's mostly an obsoleted instruction set architecture (only available
+# in StrongArm and arm8). Supporting armv4 will require a lot of conditional
+# code in assembler source since the bx (branch and exchange) instruction is
+# not supported.
+#
+$(warning ARMv4t support is currently a work in progress. It does not work right now!)
+ARCH_ARM_HAVE_THUMB_SUPPORT := false
+ARCH_ARM_HAVE_THUMB_INTERWORKING := false
+ARCH_ARM_HAVE_64BIT_DATA := false
+ARCH_ARM_HAVE_HALFWORD_MULTIPLY := false
+ARCH_ARM_HAVE_CLZ := false
+ARCH_ARM_HAVE_FFS := false
+
+DEFAULT_TARGET_CPU := arm920t
+
+# Note: Hard coding the 'tune' value here is probably not ideal,
+# and a better solution should be found in the future.
+#
+arch_variant_cflags := -march=armv4t -mtune=arm920t -D__ARM_ARCH_4T__
diff --git a/core/combo/arch/arm/armv5te-vfp.mk b/core/combo/arch/arm/armv5te-vfp.mk
new file mode 100644
index 000000000..75299ac24
--- /dev/null
+++ b/core/combo/arch/arm/armv5te-vfp.mk
@@ -0,0 +1,7 @@
+# At the moment, use the same settings than the one
+# for armv5te, since TARGET_ARCH_VARIANT := armv5te-vfp
+# will only be used to select an optimized VFP-capable assembly
+# interpreter loop for Dalvik.
+#
+include $(BUILD_COMBOS)/arch/arm/armv5te.mk
+
diff --git a/core/combo/arch/arm/armv5te.mk b/core/combo/arch/arm/armv5te.mk
new file mode 100644
index 000000000..29aada6d9
--- /dev/null
+++ b/core/combo/arch/arm/armv5te.mk
@@ -0,0 +1,21 @@
+# Configuration for Linux on ARM.
+# Generating binaries for the ARMv5TE architecture and higher
+#
+ARCH_ARM_HAVE_THUMB_SUPPORT := true
+ARCH_ARM_HAVE_FAST_INTERWORKING := true
+ARCH_ARM_HAVE_64BIT_DATA := true
+ARCH_ARM_HAVE_HALFWORD_MULTIPLY := true
+ARCH_ARM_HAVE_CLZ := true
+ARCH_ARM_HAVE_FFS := true
+
+# Note: Hard coding the 'tune' value here is probably not ideal,
+# and a better solution should be found in the future.
+#
+arch_variant_cflags := \
+ -march=armv5te \
+ -mtune=xscale \
+ -D__ARM_ARCH_5__ \
+ -D__ARM_ARCH_5T__ \
+ -D__ARM_ARCH_5E__ \
+ -D__ARM_ARCH_5TE__
+
diff --git a/core/combo/arch/arm/armv7-a.mk b/core/combo/arch/arm/armv7-a.mk
new file mode 100644
index 000000000..7a3ecc4c8
--- /dev/null
+++ b/core/combo/arch/arm/armv7-a.mk
@@ -0,0 +1,22 @@
+# Configuration for Linux on ARM.
+# Generating binaries for the ARMv7-a architecture and higher
+#
+ARCH_ARM_HAVE_THUMB_SUPPORT := true
+ARCH_ARM_HAVE_FAST_INTERWORKING := true
+ARCH_ARM_HAVE_64BIT_DATA := true
+ARCH_ARM_HAVE_HALFWORD_MULTIPLY := true
+ARCH_ARM_HAVE_CLZ := true
+ARCH_ARM_HAVE_FFS := true
+ARCH_ARM_HAVE_VFP := true
+ARCH_ARM_HAVE_NEON := true
+
+# Note: Hard coding the 'tune' value here is probably not ideal,
+# and a better solution should be found in the future.
+#
+arch_variant_cflags := \
+ -march=armv7-a \
+ -mfloat-abi=softfp \
+ -mfpu=neon
+
+arch_variant_ldflags := \
+ -Wl,--fix-cortex-a8
\ No newline at end of file
diff --git a/core/combo/linux-arm.mk b/core/combo/linux-arm.mk
index edd2df4f0..601135111 100644
--- a/core/combo/linux-arm.mk
+++ b/core/combo/linux-arm.mk
@@ -1,10 +1,44 @@
# Configuration for Linux on ARM.
# Included by combo/select.make
+# You can set TARGET_ARCH_VARIANT to use an arch version other
+# than ARMv5TE. Each value should correspond to a file named
+# $(BUILD_COMBOS)/arch/.mk which must contain
+# makefile variable definitions similar to the preprocessor
+# defines in system/core/include/arch//AndroidConfig.h. Their
+# purpose is to allow module Android.mk files to selectively compile
+# different versions of code based upon the funtionality and
+# instructions available in a given architecture version.
+#
+# The blocks also define specific arch_variant_cflags, which
+# include defines, and compiler settings for the given architecture
+# version.
+#
+ifeq ($(strip $(TARGET_ARCH_VARIANT)),)
+TARGET_ARCH_VARIANT := armv5te
+endif
+
+# TARGET_ARCH_VARIANT used to be called TARGET_ARCH_VERSION
+# to avoid any weirdness, issue an error message if the latter
+# is defined.
+#
+ifneq ($(strip $(TARGET_ARCH_VERSION)),)
+$(info Definition for TARGET_ARCH_VERSION encountered !)
+$(info This variable has been renamed TARGET_ARCH_VARIANT, please update your build files !!)
+$(error Aborting the build.)
+endif
+
+TARGET_ARCH_SPECIFIC_MAKEFILE := $(BUILD_COMBOS)/arch/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT).mk
+ifeq ($(strip $(wildcard $(TARGET_ARCH_SPECIFIC_MAKEFILE))),)
+$(error Unknown ARM architecture version: $(TARGET_ARCH_VARIANT))
+endif
+
+include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
+
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
ifeq ($(strip $($(combo_target)TOOLS_PREFIX)),)
$(combo_target)TOOLS_PREFIX := \
- prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
+ prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.0/bin/arm-eabi-
endif
$(combo_target)CC := $($(combo_target)TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
@@ -21,11 +55,19 @@ TARGET_arm_CFLAGS := -O2 \
-funswitch-loops \
-finline-limit=300
+# Modules can choose to compile some source as thumb. As
+# non-thumb enabled targets are supported, this is treated
+# as a 'hint'. If thumb is not enabled, these files are just
+# compiled as ARM.
+ifeq ($(ARCH_ARM_HAVE_THUMB_SUPPORT),true)
TARGET_thumb_CFLAGS := -mthumb \
-Os \
-fomit-frame-pointer \
-fno-strict-aliasing \
-finline-limit=64
+else
+TARGET_thumb_CFLAGS := $(TARGET_arm_CFLAGS)
+endif
# Set FORCE_ARM_DEBUGGING to "true" in your buildspec.mk
# or in your environment to force a full arm build, even for
@@ -37,26 +79,35 @@ TARGET_thumb_CFLAGS := -mthumb \
# with -mlong-calls. When built at -O0, those libraries are
# too big for a thumb "BL