summaryrefslogtreecommitdiffstats
path: root/core/package.mk
Commit message (Collapse)AuthorAgeFilesLines
* Real "LOCAL_MULTILIB := both" for prebuiltsYing Wang2014-05-161-1/+0
| | | | | | | | | This uses the fact that unsetting LOCAL_MULTILIB equals "either". It's useful to build for both 32-bit and 64-bit in the same prebuilt module definition. Bug: 13751317 Change-Id: I4f1625a83e13f22f807039afebae73f69ed35918
* Support host multilib buildYing Wang2014-05-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change basically ported our target multilib to the host side. It supports 2 host build modes: x86 and x86_64 multilib build. For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64 multilib build. Later we'll default to x86_64 build and have a flag to force 32-bit only build, which may be needed by SDK build. In host module definition, like in target ones, you can use the following LOCAL variables to set up multilib configuration: LOCAL_MULTILIB: can be "both", "first", "32" or "64". It also supports the same set of arch or 32-vs-64 specific LOCAL variables. By default, it builds only for the first arch. To keep path compatibility, in x86_64 build files are still output to out/host/linux-x86; Both 32-bit and 64-bit executables are in out/host/linux-86/bin; In x86_64 build 32-bit shared libraries are installed to out/host/linux-x86/lib32 and 64-bit shared libraries are installed to out/host/linux-x86/lib; 32-bit object files are output to out/host/linux-x86/obj32 and 64-bit object files are output to out/host/linux-x86/obj. Bug: 13751317 Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
* build: split TARGET_PREFER_32_BIT for apps and executablesColin Cross2014-04-301-3/+3
| | | | | | | | | Introduce two new flags, TARGET_PREFER_32_BIT_APPS and TARGET_PREFER_32_BIT_EXECUTABLES that individually control compilation of apps and executables. If TARGET_PREFER_32_BIT is set, the build system will automatically set both new flags. Change-Id: Ibd2165e688675c2884d9e7ddf82d7dd6c28521f3
* build: use TARGET_SUPPORTS_32_BIT_APPS and TARGET_SUPPORTS_64_BIT_APPSColin Cross2014-04-101-0/+33
| | | | | | | | | | | | | | | | | | | | | | | Use TARGET_SUPPORTS_32_BIT_APPS and TARGET_SUPPORTS_64_BIT_APPS to determine which native libraries to build for an app. If both are set, it will use 64-bit unless TARGET_PREFER_32_BIT is set. If only one is set, it will only build apps that work on that architecture. If neither is set it will fall back to only building 32-bit apps. On existing 32-bit devices neither variable will be set, and the build system will continue to build 32-bit apps. Once a device has support for a 64-bit runtime, the same logic that selects the dual runtimes should set TARGET_SUPPORTS_32_BIT_APPS and TARGET_SUPPORTS_64_BIT_APPS, and packages will be built for the preferred arch, or fall back to the non-preferrred arch if necessary. For testing, a device may set TARGET_SUPPORTS_64_BIT_APPS without TARGET_SUPPORTS_32_BIT_APPS to produce only 64-bit apps. Change-Id: I5b5e23f15602c3cf9bd96791971208a85492c7a3
* build: fix TARGET_PREFER_32_BITColin Cross2014-04-101-8/+16
| | | | | | | | | | | TARGET_PREFER_32_BIT can't assume that the 32-bit rule is allowed, it needs to try the 32-bit rule first, then fall back to the 64-bit rule in case the module specifies LOCAL_MODULE_TARGET_ARCH or LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH to disallow the 32-bit build. Also port TARGET_PREFER_32_BIT to package.mk. Change-Id: I07520b75c4ee11a1e95a82b3afa2a33d4907eb04
* add support for LOCAL_MULTILIBColin Cross2014-03-261-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | LOCAL_MULTILIB replaces LOCAL_32_BIT_ONLY and LOCAL_NO_2ND_ARCH, although both are still supported. Set LOCAL_MULTILIB := 32 to always build a module 32-bit. This is the same as specifying LOCAL_32_BIT_ONLY. Set LOCAL_MULTILIB := first to always build a module for the first architecture (64-bit on a 64-bit target, 32-bit on a 32-bit target). This is the same as specifying LOCAL_NO_2ND_ARCH. Set LOCAL_MULTILIB := both to build for both architectures on a mulitlib (64-bit) target. If LOCAL_MULTILIB is not set libraries will default to "both", and executables, packages, and prebuilts will default to building for the first architecture if supported by the module, otherwise the second. Executables that set LOCAL_MULTILIB := both must set either LOCAL_MODULE_STEM_32 and LOCAL_MODULE_STEM_64 or LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64 to specify how to differentiate the install locations of the two versions. Change-Id: I22ab6aa342b231c307b1d8a86cea4fd91eea39f5
* add support for module supported or unsupported target architecturesColin Cross2014-02-121-474/+20
| | | | | | | | | | | | | | | | | | | | | | Add four new variables for module makefiles: LOCAL_MODULE_TARGET_ARCH specifies that a module is only supported for one or more architectures. Any architecture not in the list will be not attempt to build the module. The expected use case is prebuilts that are only suitable for a single architecture, or modules like llvm that need per-architecture support. LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH specifies that a module cannot be built for one or more architectures. LOCAL_MODULE_TARGET_ARCH_WARN and LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN are the same, but warn that the arch is not supported, which is useful for modules that are critical but not yet working. The logic for whether or not to build an architecture is fairly complicated, so this patch consolidates it into module_arch_supported.mk Change-Id: I120caf4a375f484e1fd6017b60c2f53882ae01e6
* don't rename 32-bit packages to *_32Colin Cross2014-02-061-0/+4
| | | | | | Renaming 32-bit packages to *_32 breaks PRODUCT_PACKAGES dependencies. Change-Id: I5457c07b64885d77a6bd8fbcbba97d28393c581d
* build: rename LOCAL_32BIT_ONLY to LOCAL_32_BIT_ONLYColin Cross2014-01-291-1/+1
| | | | | | Rename for consistency with TARGET_IS_64_BIT. Change-Id: I824dcaed0c1e88b8246bcffb21ab3f1772175926
* Set up rules to build packages for TARGET_2ND_ARCHColin Cross2014-01-241-3/+10
| | | | | | | Packages built for the 2nd arch will depend on jni libraries build for the 2nd arch. Change-Id: Ic9594718849b2577920c500c35d46150eb948c8d
* Add DEXPREOPT support for ARTBrian Carlstrom2013-12-171-25/+10
| | | | Change-Id: I24d0d7b2a23a769f5d69bd4dc14be22e1475b759
* Enable art for user buildsBrian Carlstrom2013-09-191-1/+1
| | | | | Bug: 10069754 Change-Id: Iaaff33a97bd7b68b2e8d84cd0034b15dde8a4316
* Better handle of need_compile_java.Ying Wang2013-08-281-0/+3
| | | | Change-Id: I609a27e2b35b08962243b6516c6c525c0c938d3c
* Enable Proguard for eng build too.Ying Wang2013-05-231-2/+1
| | | | | | | With this change, all build variants are now with Proguard enabled, unless you explicitly set DISABLE_PROGUARD to true. Change-Id: I0f9b566b5ab3c3d961ffd6ab696e573bc59553b0
* Support to dist unbundled files for bundled buildYing Wang2013-04-101-0/+23
| | | | | | | | | | Usage: LOCAL_DIST_BUNDLED_BINARIES := true The dist files will include the jni shared libraries and the apk with jni libraries stripped. Bug: 8181626 Change-Id: I4a047d786ad35b948b4ad7a51adf37321dbe395c
* Add LOCAL_APK_LIBRARIES argument.Dianne Hackborn2013-03-121-0/+2
| | | | | | | | | | | | | | This allows you to build apks that link against other apks using the framework's new shared library apk feature. Also if you are using LOCAL_APK_LIBRARIES, then LOCAL_DEX_PREOPT will not be allowed. This is because using preopt means the apk is stripped of its dex file, so the pre-installed apk can't be redexed if its associated library changes. (Even if the build system didn't strip the dex, Dalvik still has issues because it assumes a pre-odex file is always valid.) Change-Id: I952c0d24f8975f75aff67f78b5faeec91144c3e7
* Run zipalign after classes.dex is removed from the apkYing Wang2013-02-251-2/+4
| | | | | | If LOCAL_DEX_PREOPT is enabled. Change-Id: Ie2a706fbb77bc31c9fdb01c8435819c5de97ea28
* Build rules for Renderscript compatibility library.Stephen Hines2012-12-121-0/+8
| | | | | Bug: 7419958 Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
* Additional certificates support for an apk.Ying Wang2012-11-131-0/+3
| | | | Change-Id: I5b35d5728ba9d65f7ece956127270a9ca2ea0efe
* am d19511a6: am c3a4cfe9: Merge "Support EMMA_INSTRUMENT in both full and ↵Ying Wang2012-08-221-0/+29
|\ | | | | | | | | | | | | unbundled builds." into jb-mr1-dev * commit 'd19511a6657efc7f1a7e544df04f076223f8fe65': Support EMMA_INSTRUMENT in both full and unbundled builds.
| * Support EMMA_INSTRUMENT in both full and unbundled builds.Ying Wang2012-08-221-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 6987838 - With this change, use "EMMA_INSTRUMENT=true" to enable emma in full or unbundled build. - You don't need to add "LOCAL_STATIC_JAVA_LIBRARIES += emma" any more for unbundled apps. - Now a single var LOCAL_EMMA_INSTRUMENT replaces the previous LOCAL_NO_EMMA_INSTRUMENT and LOCAL_NO_EMMA_COMPILE. - By default, if EMMA_INSTRUMENT is true, emma is enabled for only non-test apps. - A new global var EMMA_INSTRUMENT_STATIC. It enables EMMA_INSTRUMENT and builds emma into apk/jar as static library, instead of using emma as part of shared library core.jar. Change-Id: I0aa219e83074879ececc159b5b07c39eb07ccc00
| * Retire LOCAL_NDK_VERSION.Ying Wang2012-08-141-3/+3
| | | | | | | | | | | | | | | | | | | | We are now unifying the NDK versions of unbundled native code to always use the latest NDK. We don't need the variable LOCAL_NDK_VERSION now. To build native code with NDK, you need set just LOCAL_SDK_VERSION. Bug: 6932421 Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
| * Adopt the new prebuilts/ndk/<number> paths.Ying Wang2012-08-141-1/+1
| | | | | | | | | | Bug: 6932421 Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
* | Retire LOCAL_NDK_VERSION.Ying Wang2012-08-141-3/+3
| | | | | | | | | | | | | | | | | | | | We are now unifying the NDK versions of unbundled native code to always use the latest NDK. We don't need the variable LOCAL_NDK_VERSION now. To build native code with NDK, you need set just LOCAL_SDK_VERSION. Bug: 6932421 Change-Id: I86f05a264249cda6bae97b4b1616f03700cd9dfa
* | Merge "Automatically add Java resources carried by static Java libraries."Ying Wang2012-08-131-0/+1
|\ \
| * | Automatically add Java resources carried by static Java libraries.Ying Wang2012-08-091-0/+1
| | | | | | | | | | | | | | | Bug: 6892294 Change-Id: I3ff71ee3d7b9ccdfde6a5284cc350864fbffa71f
* | | Adopt the new prebuilts/ndk/<number> paths.Ying Wang2012-08-101-1/+1
|/ / | | | | | | | | Bug: 6932421 Change-Id: Iba7200aacef2201001f92c6ffa020881f0b528ea
* | Allow Java resource in apk.Ying Wang2012-07-311-8/+3
|/ | | | | Bug: 6892294 Change-Id: I093bddf7326d600689ff2ec3318741a5270751cc
* Merge "lint support."Ying Wang2012-06-191-0/+10
|\
| * lint support.Ying Wang2012-06-181-0/+10
| | | | | | | | | | | | | | | | | | Bug: 6167394 $make lint-<app-name> # to lint on a single module $make lintall # to lint on all packages in the source tree. Change-Id: I4decc76fb75793ce44809232b0ec72b766fbb434
* | Revert "Convert LOCAL_LOCAL_JNI_SHARED_LIBRARIES to LOCAL_REQUIRED_MODULES ↵Ying Wang2012-06-181-9/+0
|/ | | | | | | | in a full build" This reverts commit 81f0fd6cdbf42d1034bf9e9f36991a131eca3f4f The change broke the CTS build: CTS does need the jni library embedded in the apk.
* Convert LOCAL_LOCAL_JNI_SHARED_LIBRARIES to LOCAL_REQUIRED_MODULES in a full ↵Ying Wang2012-06-141-0/+9
| | | | | | | | build To save space. Change-Id: I7c88c13e4225bed89106917de57cbae74fc79ab8
* Clean common intermediate files if overlay changedYing Wang2012-06-041-6/+11
| | | | | | | | | | | | | | | This change cleans the packages' intermediate files if their overlays changed between incremental builds. If two builds have different overlay, they will have different R classes, and so the jar files in the common intermediate dirs can not be shared. Therefore incremental build can't be applied. This change detects the overlay changes on package's base. If a package's overlay is different from the previous build, its common intermediate dir is nuked. This makes broader incremental builds possible. Change-Id: I368610ebbbbc85a80f9aecd714ab22cd78da7f12
* Support to build against prebuilt current SDK in unbundled branchYing Wang2012-05-101-1/+1
| | | | | | | | Bug: 6465084 With this change and prebuilt current SDK checked in, you can build unbundled apps with LOCAL_SDK_VERSION current in an unbundled branch. Change-Id: I4efcee611d08a3a903bd6bf5a80de11500564206
* Allow packages to place manifest files in any directoryKevin Hester2012-04-121-1/+7
| | | | | | | | | | via a new definition LOCAL_ABS_MANIFEST_FILE. The existing LOCAL_MANIFEST_FILE variable will also be supported. (Necessary if manifests are being programmatically generated in the intermediates directory) Change-Id: I77a8eb1b8040b966b944464281d00c161ff34d3c
* am b3e6fa5e: Merge "new LOCAL_DEX_PREOPT option "nostripping"" into ics-mr0Ying Wang2011-10-271-3/+10
|\ | | | | | | | | * commit 'b3e6fa5e6bdaf6e1e827c3e79ffda1ef796b3a1b': new LOCAL_DEX_PREOPT option "nostripping"
| * new LOCAL_DEX_PREOPT option "nostripping"Ying Wang2011-10-241-3/+10
| | | | | | | | | | | | | | | | Set "LOCAL_DEX_PREOPT := nostripping" to do dex-preopt while not strip the classes.dex. Bug: 5396625 5502338 Change-Id: Ie8dea4414ebeefeae89c6433b246faea27baa5e7
* | am a0f464a8: New PRODUCT_AAPT_PREF_CONFIG.Dianne Hackborn2011-10-171-0/+3
|\ \ | |/ | | | | | | * commit 'a0f464a8e7f006177db084df7e925bbb8e5ffed3': New PRODUCT_AAPT_PREF_CONFIG.
| * New PRODUCT_AAPT_PREF_CONFIG.Dianne Hackborn2011-10-141-0/+3
| | | | | | | | | | | | | | | | To use the new aapt --preferred-configurations option. For use with Prime to be able to strip everything but xhdpi density bitmaps selectively, not stripping when this would result in no data for the resource. Change-Id: I4e1012929b8f9b0b1e79c06496647f69661ba1f2
* | Support to package prebuilt NDK libstlport_shared.so into apkYing Wang2011-10-131-0/+12
|/ | | | | | | | | | | | | | | | | | | | | To package libstlport_shared.so, use the following syntax in the app module definition: LOCAL_NDK_STL_VARIANT := stlport_shared LOCAL_NDK_VERSION := <num> The rationale behind is: The NDK prebiult libstlport_shared.so is intentionally different from the system libstlport.so. Essentially they are slightly different versions of the library so shouldn't be mixed up. libstlport.so is used by the system, but not exposed by the NDK, it is routinely tweaked in various ways between platform releases, and there is no guarantee that its ABI is stable, or that it will not be replaced by something else in the future. libstlport_shared.so is typically distributed with application packages, and should not be part of the system. Change-Id: I72c9911781f7d8402687e9891f3f605f3a60be22
* am 81703a19: Merge "Support for product-specific dev keys." into ics-factoryromEd Heyl2011-10-041-4/+4
|\ | | | | | | | | * commit '81703a19001ec219c35cb0ecf9bafb6e0dbc1e1d': Support for product-specific dev keys.
| * Support for product-specific dev keys.Ying Wang2011-10-041-4/+4
| | | | | | | | Change-Id: Id577a72ee9f7cd70e8ca77efcbf10a37885c7d6f
* | New LOCAL_SDK_RES_VERSION config var.Dianne Hackborn2011-09-191-4/+9
|/ | | | | | | | | This allows an app to target a different SDK level for its resources than it uses for its Java code. This is useful because it is generally safe to use various newer symbols like attribute names, as older versions of the platform will simply ignore them. Change-Id: Ida19ec9f259c4ea70de846e9a63546e263b1c91e
* Fix possible unnecessary rebuildYing Wang2011-05-261-3/+3
| | | | | | | | | | This fix the unnecessary rebuild in the following scenario: A package rename its manifest package name and the old R.java was still in its intermediate dir. The rule to generate R_file_stamp may always copy the old R.java with timestamp reserved and the R_file_stamp never gets updated. Change-Id: I659cbb00f0e7734d7d71e1ca66065f587c8dee2c
* Set the default app sdk verstion to LOCAL_SDK_VERSIONYing Wang2011-04-081-6/+13
| | | | | | | Instead of using the DEFAULT_APP_TARGET_SDK, which is the hardcoded in the build system, ie the sdk version of the current source tree. Change-Id: I2fae3521300cc6b2449df3659ded7f7a397609c0
* Move screen density config from PRODUCT_LOCALES to PRODUCT_AAPT_CONFIGYing Wang2011-03-151-3/+5
| | | | | | | | | With this change, PRODUCT_LOCALES will contain only locales. Other aapt config flags, such as *dpi, small/normal/large/xlarge, should go to PRODUCT_AAPT_CONFIGS. Bug: 4086309 Change-Id: I922f153d79777a9522c542a3907111193b40e7b7
* Remove unused variable DONT_INSTALL_DEX_FILESYing Wang2011-02-171-6/+0
| | | | Change-Id: Ic91ba1f551e0a1a81aaac438fbd1d359a71a7bfa
* Disable dexpreopt for unbundled build.Ying Wang2011-01-121-0/+2
| | | | Change-Id: Iad0cc41cfad2533703a0dddad743720c43ddb667
* LOCAL_AAPT_INCLUDE_ALL_RESOURCESYing Wang2010-12-281-0/+3
| | | | | | | Set this flag to include all the resources in the given dirs. Bug: 3313179 Change-Id: I68c02b24174bebe41a5948810cc2f49cc916e51c
* Add framework includes for any aidl source.Ying Wang2010-12-141-7/+0
| | | | | | | Before this change, only aidl in apps gets the framework directories in their include path. Change-Id: Ieeaa162f577ea280fe71e4959cc73176b4dfd8ad