Previously we only expanded product_MODULES with LOCAL_REQUIRED_MODULES,
but not modules introduced by LOCAL_SHARED_LIBRARIES; Later we did a further
shared libary expansion in vendor_module_check.mk.
It couldn't track C in the following case:
A : B, by LOCAL_SHARED_LIBRARIES; B : C, by LOCAL_REQUIRED_MODULES.
With this change, we transformed the LOCAL_SHARED_LIBRARIES dependencies
into LOCAL_REQUIRED_MODULES dependencies before doing the required
module expansion and the loophole is closed.
All module names are now expanded to product_MODULES now and it makes
vendor_module_check.mk simpler.
Change-Id: I8835a478d2ce0ce10601a8449f446f07b01c2b7f
- This simplifies the logic to get the mapping of built-file to
installed-file. Previously we used file suffix matching which is error
prone and not scalable.
- With this change the .odex files will be included automatically.
Bug: 13585955
Change-Id: I4599abf93b9d501bac7aca7758d7f3aee21b3e36
But not install them.
This prevents "make tests" polluting system.img or userdata.img.
We have new mechanism to build and package up modules into zip file in
build/core/tasks/tools.
Change package-modules.mk to install DATA/ instead of data/ in the
zip file; Better handle of module name conflicting.
Bug: 13585955
Change-Id: I7586a8c7995b984c9ead0ba2fa84dd5d2dd20bd1
With this change, you can package up modules while avoiding installing
them to the system.img or userdata.img.
- build/core/tasks/tools/package-modules.mk
You can use this template to package up modules into a zip file and
preserve the installed file paths.
- LOCAL_PICKUP_FILES, you can use this variable to package up extra
files/directories.
Bug: 13585955
Change-Id: I103042b24ccf17cf5dc90c016d97ed1dd293e50b
But not install them.
This prevents "make tests" polluting system.img or userdata.img.
We have new mechanism to build and package up modules into zip file in
build/core/tasks/tools.
Change package-modules.mk to install DATA/ instead of data/ in the
zip file; Better handle of module name conflicting.
Bug: 13585955
Change-Id: I7586a8c7995b984c9ead0ba2fa84dd5d2dd20bd1
With this change, you can package up modules while avoiding installing
them to the system.img or userdata.img.
- build/core/tasks/tools/package-modules.mk
You can use this template to package up modules into a zip file and
preserve the installed file paths.
- LOCAL_PICKUP_FILES, you can use this variable to package up extra
files/directories.
Bug: 13585955
Change-Id: I103042b24ccf17cf5dc90c016d97ed1dd293e50b
To build oem.img:
- You must define BOARD_OEMIMAGE_PARTITION_SIZE in your BoardConfig.mk
- The file system type will be the same as system.img and userdata.img.
- To install a module to oem.img, use "LOCAL_OEM_MODULE := true"
- run "make -j48 showcommands oem_image dist". By default it's not
built.
Bug: 13367676
Change-Id: I1a26d4d0c61b72ecffe60279667b1b3de050780d
Change-Id: I91d6ff72629523050b4f26c2d731cac90ef49348
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Reviewed-by: Jovanovic, Radivoje <radivoje.jovanovic@intel.com>
Reviewed-by: Boie, Andrew P <andrew.p.boie@intel.com>
Reviewed-by: Kumar-mayernik, Nisha <nisha.kumar-mayernik@intel.com>
Reviewed-by: Gumbel, Matthew K <matthew.k.gumbel@intel.com>
Tested-by: Gumbel, Matthew K <matthew.k.gumbel@intel.com>
Fix several wrongly configured tests that were either
looking for tests in the wrong jar (apache-harmony-tests
instead of core-tests) or using the wrong prefix.
Also, this change creates subsets of the harmony tests based
on subpackage names (java.net, java.io, java.nio etc.) instead
of the earlier harmony groupings.
Change-Id: Iea0e20d23512611d1aac92b2f8219031b6396c77
We have no rigorous way to detect whether the code referenced for this
mechanism changes in between builds. So declare this as a phony target
so that it is rebuilt every time.
Change-Id: Ie1670d96895719d406e7b0defd53ba3cd224dd83
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Fix several wrongly configured tests that were either
looking for tests in the wrong jar (apache-harmony-tests
instead of core-tests) or using the wrong prefix.
Also, this change creates subsets of the harmony tests based
on subpackage names (java.net, java.io, java.nio etc.) instead
of the earlier harmony groupings.
Change-Id: Iff1978b2654485bfea0fc17221c6e1f62c31b913
Static libraries and host modules are not installed under
TARGET_OUT_VENDOR and don't need to be, relax the checks.
Change-Id: Ia8b926d466420a8b6dd418d5e95fdf5ff919e078
A reorganization of the libcore test jar files caused the Conscrypt
tests to be accidentally dropped from CTS. Add them back in their own
package.
Bug: 10210673
Change-Id: Ia46a5de925c35115d25b7c0f974eba5b27bbfcd6
1) As more product configuration files are added to the source tree, the
command line has become too long.
2) Escape "(" and ")" that may may appear in PRODUCT_MODEL.
Change-Id: I08f278dce434050f013498327c7cbf3592512460
Previously for each target generate-core-test-description will be called
6 times that end in 6x6 calls of the function.
That's unnecessary and unsafe.
Change-Id: I03eef89b61c552b5f47f0a478feb9687fd9717da
Module names are phony targets, which make always sees as obsolete,
so a nothing-to-do build won't do nothing.
Also file target $(DEFAULT_TEST_PLAN) was never created in its rule.
Here it's fixed with a stamp file.
Bug:9761012
Change-Id: Ic82df70cc22643d902017b5bec1022404d9bbfce
Since commit 6c86a1 we have split LOCAL_SHARED_LIBRARIES out of
LOCAL_REQUIRED_MODULES and the vendor check does no longer cover the
installed modules introduced by LOCAL_SHARED_LIBRARIES.
This change brings back the coverage.
Change-Id: Ie78692e48f173a3350792eb2fee8127ff9433caa
It is safe for a class to become final if it was not previously
instantiable since applications could not declare subclasses
of their own.
Likewise it is always safe to remove final.
Change-Id: I9a72fee7b25ccceca2024112812b97872ba2ec6b
This is related to commit a1712e.
Some PDKs need the factory build under PDK. If you want to disable the factory
build under PDK, use TARGET_NO_FACTORY in your device's BoardConfig.mk
Change-Id: I5e208836918ffd737951d3fb1f54c560d2b93641
Trying to use reflection on classes loaded from a different ClassLoader
than the system one caused SecurityException since you can't load
certain packages.
Adding them to the boot classpath forces them to be in the same
ClassLoader.
Change-Id: Id518ab0a99da6defac525c0ad430a63f600ce85f
1) Move check-api to definition.mk, so it can be used in other places.
2) Add additional dependency to the api-stub module to consolidate the
apicheck dependency. Previously you have to run 2 "make"s in a row and
only in the 2nd run apicheck is run, due to a gnu-make optimization.
Bug: 7540265
Change-Id: Ib24ed87d9330027a9f95ed7b16dd4002cc0e3198
Phantasm PDK support doesn't work with the factory build.
It's not needed for eng support so we'll disable it.
Change-Id: I9b65cdbb20bbcff601600d6b0cac7cc98f6f614c
Signed-off-by: Nick Sanders <nsanders@google.com>
PRODUCT_COPY_FILES now is a list of words like <source
path>:<destination path>[:<owner>].
The optional :<owner> is used to indicate the owner of a vendor file.
Bug: 7048854
Change-Id: I435d1e18b7a091fb62513062cfc2e420e51557ec
Arrange to take $(BOARD_MKBOOTIMG_ARGS) and pass it to all invocations
of mkbootimg from within make, and to store it in the target_files so
it can be used by future invocations of img_from_target_files and
ota_from_target_files.
Bug: 6918260
Change-Id: I7130ac52e96bd51d4d8b80ca036635e1626f01f1
Move build.prop to the root dir of the factory bundle for clearer location access.
Change-Id: Ib9a49fd46eb943a1dc5e8e112462f9d601332ca3
Signed-off-by: Nick Sanders <nsanders@google.com>
Bug: 6418863
This change expands the PRODUCT_PACKAGES with the required modules.
Before this change, since the required modules are not in the
PRODUCT_PACKAGES, they are not directly depended on by the image files.
If the dependent is not to be included in the image but the required
modules are to be included, the dependency of the image on the required
modules gets lost!
That would lead to build race condition.
Change-Id: I0b656db1538ca43d3785dbf17364ffa88b80ac41
Bug: 6418863
This change expands the PRODUCT_PACKAGES with the required modules.
Before this change, since the required modules are not in the
PRODUCT_PACKAGES, they are not directly depended on by the image files.
If the dependent is not to be included in the image but the required
modules are to be included, the dependency of the image on the required
modules gets lost!
That would lead to build race condition.
Change-Id: Idbd504fd415b488c397e67ab487a22bff4fa188e
* BOARD_KERNEL_CMDLINE_FACTORY_BOOT can be set to
add kernel commandline items to the factory ramdisk,
such as fiq_debugger.console_enable=Y
Change-Id: Iee4060b96eaeecc517975c56342fd5445b1feabf
Signed-off-by: Nick Sanders <nsanders@google.com>
Add samsung_arm as an owner to be used on files that depend
on licenses from both Samsung and ARM.
Change-Id: I03a5ba739b940915519f75477adea7c2a9b0a563
BUILD_PDK and some of the other infrastructure will go away once
we're done with the new new PDK work, but for now don't disturb
that stuff.
Change-Id: Ia39bf759ec03f203858ddcc4880af72bd132cb5a
We'll need a special case to set device properties on the factory ramdisk
Change-Id: I146d5c503e8c97005caa1ab1dbaca7ee9ab30faf
Signed-off-by: Nick Sanders <nsanders@google.com>
We'll need a special case to set device properties on the factory ramdisk
Change-Id: I146d5c503e8c97005caa1ab1dbaca7ee9ab30faf
Signed-off-by: Nick Sanders <nsanders@google.com>
When this is enabled we ensure that files from the vendor directory
get installed to /system/vendor/* instead of elsewhere in /system/*.
This changes the PRODUCT_RESTRICT_VENDOR_FILES variable
to accept "owner", "path", "owner path", or "all".
"true" will still only enforce vendor file owner restrictions.
Change-Id: I4598130a590ad56976e011f4cb2a9f5f227d5732
Only generate the core test and vmtest descriptions when something has
actually changed rather than everytime CTS is built. This should make
iterative test development in CTS more pleasant.
The rule targets are changed to be the paths of the test description
XML files in a separate directory outside of the CTS distribution.
The buildCts.py rule copies these XMLs when they change to the
final CTS distribution location and creates the final plan file.
The dependencies have also been changed to reply upon the full
package paths rather than their phony targets to avoid rebuilding
everything all the time.
Finally, the AppSecurity rule was removed, because I have taken
care of that in my prior change to the Makefiles in the CTS
project.
Change-Id: I88b92c7a4cb4c2c2e20f06641e7ba0604d37f805
With this change, if a module name is associated with multiple modules,
you can specify multiple install paths in
PRODUCT_FACTORY_RAMDISK_MODULES.
For example, if we have 2 modules named "foo", one is Java library and
the other is executable, then you can write:
PRODUCT_FACTORY_RAMDISK_MODULES += \
foo:system/bin/foo:system/framework/foo.jar
Or:
PRODUCT_FACTORY_RAMDISK_MODULES += \
foo:system/bin/foo \
foo:system/framework/foo.jar
The build system will choose the correct built files based on the
install paths.
Change-Id: I6efc72e8abd1e81710ada16731b6792989aefd85
With this change, if a module name is associated with multiple modules,
you can specify multiple install paths in
PRODUCT_FACTORY_RAMDISK_MODULES.
For example, if we have 2 modules named "foo", one is Java library and
the other is executable, then you can write:
PRODUCT_FACTORY_RAMDISK_MODULES += \
foo:system/bin/foo:system/framework/foo.jar
Or:
PRODUCT_FACTORY_RAMDISK_MODULES += \
foo:system/bin/foo \
foo:system/framework/foo.jar
The build system will choose the correct built files based on the
install paths.
Change-Id: I6efc72e8abd1e81710ada16731b6792989aefd85
Bug: 5769921
With this change, to build factory_ramdisk.img, set
PRODUCT_FACTORY_RAMDISK_MODULES in your product config.
PRODUCT_FACTORY_RAMDISK_MODULES consists of
"<module_name>:<install_path>" pairs.
<install_path> is relative to the root of the factory ramdisk output.
For example:
PRODUCT_FACTORY_RAMDISK_MODULES := \
toolbox:bin/toolbox adbd:sbin/adbd adb:bin/adb
On the other hand you can use PRODUCT_COPY_FILES to copy prebuilt files
to the factory ramdisk.
Or you can define modules that are specific for the factory ramdisk
(with LOCAL_MODULE_PATH pointing to TARGET_FACTORY_RAMDISK_OUT) and add
the module names to PRODUCT_PACKAGES.
Change-Id: I80ff72606415cd74fe6f3bc93020a05d84e45b70
Bug: 5769921
With this change, to build factory_ramdisk.img, set
PRODUCT_FACTORY_RAMDISK_MODULES in your product config.
PRODUCT_FACTORY_RAMDISK_MODULES consists of
"<module_name>:<install_path>" pairs.
<install_path> is relative to the root of the factory ramdisk output.
For example:
PRODUCT_FACTORY_RAMDISK_MODULES := \
toolbox:bin/toolbox adbd:sbin/adbd adb:bin/adb
On the other hand you can use PRODUCT_COPY_FILES to copy prebuilt files
to the factory ramdisk.
Or you can define modules that are specific for the factory ramdisk
(with LOCAL_MODULE_PATH pointing to TARGET_FACTORY_RAMDISK_OUT) and add
the module names to PRODUCT_PACKAGES.
Change-Id: I3778e3d091979261cb476628da1365f931e11f49
Bug 4970300
Adds two new variables, CTS_TEST_CASES and CTS_TEST_XMLS, to be read
from CtsTestCaseList.mk. The CTS_TEST_CASES variable can be used to
copy any sort of file to the repository/testcases CTS directory.
The CTS_TEST_XMLS variable can be used to inject test package xmls
from any source rather than relying upon the monolithic and
mostly serial buildCts.py script.
The existing CTS_CORE_CASE_LIST is coded to only support APKs, so
it could not be retrofitted to support native tests. However, the
two new variables can do even more than CTS_CORE_CASE_LIST due to
their generality. In the future, the idea is move away from
CTS_CORE_CASE_LIST and also generate XMLs using separate tools
rather than just buildCts.py.
Change-Id: Ib52722861c37e0f4d511f9041928395bcaba5dea
Bug: 5692177
If you set "PRODUCT_RESTRICT_VENDOR_FILES := true" in a product
configuration, this changes restricts that:
- No overlays in the vendor tree.
- No PRODUCT_COPY_FILES coming from the vendor tree.
- Any referenced package with Android.mk in the vendor tree must have
LOCAL_MODULE_OWNER set to a value that's compared against a whitelist
stored in the core build system.
Change-Id: I172b84c7c853e9a04bf9879ea8dec90bd5054230
Bug 5563917
This stops packaging the startcts script and the cts.jar into
the android-cts.zip. Since we are only testing using Tradefed,
we should prevent confusion by removing the old test runner.
Change-Id: I79f991617dd9e6a51a314207b4727cce3136d60f
Bug 5267392
After coming across another place where I would have to use
package.apk.unaligned, I decided maybe it is best to just
disable dexpreopt as was previously suggested.
Use package.apks in the CTS Makefile task.
Change-Id: Iec839a72f4b53441337523b8a9cccda657eec8e8
Bug 5252989
This prevents dexopt installation failures when trying to
install CTS apks on production devices.
Change-Id: I1eeb0ac567c3be3b831c8c27dee4005ec00fd7cd
This patch fixes the broken builds for PRODUCT-google_sdk-sdk_addon
and PRODUCT-google_sdk_x86-sdk_addon.
Change-Id: Iba0f23a03c143cd38aaba98b0bd0d52686330ed6
* commit '36331f8455822539fe4fbb0a25fbc377bbc80a89': (23 commits)
sdk-addon.mk: Copy image files to ABI-specific dir
emulator: Enable dex-preoptimization
sdk: provide ABI-dependent atree files
emulator: Build emulator platform images as ARMv7-A
x86: Add proper gcc-4.4.3 x86 toolchain support.
sdk: Add pc-bios files for IA qemu emulator
x86: qemu emulator is the default build target
Add full_x86 product.
x86: sdk_x86 build target
Minor cleanup - DO NOT MERGE
Clean up full config - DO NOT MERGE
Make a full list of locales available
Truly default to the full config.
generic_x86 builds don't need/use the sparse ext4 format.
Use ext4 file system for generic_x86 userdata partition
GB Updates for init.rc and boot command line
Fix TARGET_PREBUILT_TAG so that get_build_var can retrieve the correct value across architectures
Display the TARGET_ARCH_VARIANT
Add generic_x86-eng to the lunch menu
Move buildspec vars to BoardConfig.mk
...
When the build is invoked with the fake target "sdk_repo" and
a main target of sdk, win_sdk or sdk_addon, we now create
packages in DIST_DIR that can directly be used to populate the
SDK Repository.
This is quite close to how we actually distribute the SDK.
Change-Id: I863ac8baf159432d7c95df46cba6e4f3b9122629
Change-Id: I1fc3cb491d593d3e28f90278cfc8de5d77852932
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
When the build is invoked with the fake target "sdk_repo" and
a main target of sdk, win_sdk or sdk_addon, we now create
packages in DIST_DIR that can directly be used to populate the
SDK Repository.
This is quite close to how we actually distribute the SDK.
Change-Id: Ie7e0f789bafd73d5ee2461349155a6e562e2edd9
Original description:
CTS vm-tests now depend on hosttestlib.
Bug 3125713
Conflicts:
core/tasks/cts.mk
Change-Id: I9e364a9d9d2cae396691921424ca591beca05468
Include another optional Makefile from the CTS project that
specifies additional JARs that the CTS host may need. This
will make it easier to create modules in the CTS project
that can be built for the host and device and shared between
the host and test cases.
The first such library will include annotations like
"RequiresFeature" and "SupportsProfile" that will be needed
to support multiple device profiles in CTS.
Another planned libraries could include defining the CTS
version number in a central spot and sharing code used to
probe for certain properties like the OpenGL version and
other system properties.
Can be checked in after this other change without causing
breakage: https://review.source.android.com/#change,16740
Change-Id: I3c488247b66522dc86277ab43198c34f790e0618
Merge commit 'af44485fe83bb36a9d55fb54a8f5362854dd7b10' into gingerbread
* commit 'af44485fe83bb36a9d55fb54a8f5362854dd7b10':
Include Test Case List from CTS Project
Bug 2732160
Have the cts.mk include the test case list from CTS rather
than defining it in cts.mk. This permits CTS developers to
add new packages and applications without having to submit
multiple project changes to both the CTS and build projects
everytime.
Change-Id: I63d90ac4f5d9fc9a9aa0ff79a8bf9dfb1a79c822
Bug 2814482
Froyo's cts.mk was missing two lines added to Eclair's cts.mk that
are needed to build the accessibility tests and apk.
Change-Id: I05f93bc0a56b2ec1e07eab8c7a15ef7d4bb90d18
For host side test packages, the name of the jar file containing the tests is
declared in the packages Android.mk. The name of the make file needs to be
passed to the description generator so that it can pick up this information.
The makefile was not passing on the parameter containing the make file name.
Merge commit '9e35a86b833c8bd520c9f889be3f2859a5ed7b45' into donut
* commit '9e35a86b833c8bd520c9f889be3f2859a5ed7b45':
AI 148675: CTS: Copy only the 'startcts' script into the cts distribution
Before CL 148645, 'startcts' called the 'cts' script. This is no longer the
case, so we want to exclude the 'cts' script from the distribution to avoid
confusion. The 'cts' script is only used when running cts directly on a
fully built source tree.
Automated import of CL 148675
Merge commit '6178820340ccca2656fab0953bbe77da2e3e4bb7' into donut
* commit '6178820340ccca2656fab0953bbe77da2e3e4bb7':
AI 148430: Adding a new CTS test runner that is basically
a copy of the old one, but resides in android/cts
and is built and installed as part of the CTS.
This makes sure we always have the correct test
runner on a device, so we should see the various
improvements also on off-the-shelf Cupcake phones.
BUG=1537738
Automated import of CL 148430
Merge commit 'ccd2def288d02ce5adab10bb28878fff05b70aed' into donut
* commit 'ccd2def288d02ce5adab10bb28878fff05b70aed':
AI 147847: CTS: Fix core test dependencies in CTS makefile
Merge commit 'f22b9a0ad531f66eb0b5710abae1feefecc42c2b' into donut
* commit 'f22b9a0ad531f66eb0b5710abae1feefecc42c2b':
AI 147775: Also add ApiDemos to make sure it gets included in the TestCase repository as
Merge commit 'b3e0126a7a2d32fbae2638e9419739d2d3907c40' into donut
* commit 'b3e0126a7a2d32fbae2638e9419739d2d3907c40':
AI 147731: Forgot to submit the build changes for the
Merge commit 'f23f5b486650a923e58e3e79b8ec23cc725b7b33' into donut
* commit 'f23f5b486650a923e58e3e79b8ec23cc725b7b33':
AI 147479: Update list of CTS test packages.
The core test descriptions did not list all dependencies. When building cts
for the first time, the descriptions were generated before the cts
repository was erased.
BUG=1813815
Automated import of CL 147847
- rename the directory and zip file
- make it build to the dist directory
Original author: joeo
Merged from: //branches/cupcake/...
Automated import of CL 145850
Original change by joeo@abreu on 2009/04/06 19:54:13.
Implement SDK add-ons in the build system.
- Add an option to use the standard javadoc doclet instead
of droiddoc, since droiddocs non-sdk templates aren't
ready for prime time.
- Add the notion of a stubs for a library. It's only
implemented for java libraries, but when we do native
libraries in the NDK or sdk-addons, it will work there too.
Original author: joeo
Merged from: //branches/cupcake/...
Automated import of CL 145618
Original change by joeo@abreu on 2009/04/06 19:54:13.
Implement SDK add-ons in the build system.
- Add an option to use the standard javadoc doclet instead
of droiddoc, since droiddocs non-sdk templates aren't
ready for prime time.
- Add the notion of a stubs for a library. It's only
implemented for java libraries, but when we do native
libraries in the NDK or sdk-addons, it will work there too.
Automated import of CL 145333