summaryrefslogtreecommitdiffstats
path: root/core/base_rules.mk
Commit message (Collapse)AuthorAgeFilesLines
* add support for LOCAL_MODULE_STEM_32 and LOCAL_MODULE_STEM_64Colin Cross2014-03-251-11/+1
| | | | | | | | | | Some executables will need to be built for both 32-bit and 64-bit. For linker/linker64, debuggerd/debuggerd64, and a few more, they will be installed in the same path (/system/bin), but with different filenames. Allow the module to specify LOCAL_MODULE_STEM_32 and LOCAL_MODULE_STEM_64 to name the two versions. Change-Id: I573e8678c7332245a064f31246be0a05f0a9e25f
* add support for LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64Colin Cross2014-03-251-0/+13
| | | | | | | | | | Some executables will need to be built for both 32-bit and 64-bit. For tests, it will be convienient to keep the name of the executable the same, but install them in a different location. Add LOCAL_MODULE_PATH_32 and LOCAL_MODULE_PATH_64 to allow a module to specify different paths for 32-bit and 64-bit executables. Change-Id: I3be830e899c6d485fe55c25c66b20b3fe64c795e
* Refine module name resolving in multilib buildYing Wang2014-02-101-1/+5
| | | | | | | | | | | | | | | | | | | | | | -- Added TARGET_PREFER_32_BIT, which sets LOCAL_32_BIT_ONLY for an executable, if LOCAL_NO_2ND_ARCH is not true. Name resolving in 64-bit multilib build: -- Name resolving in PRODUCT_PACKAGES: foo:32 resolves to foo_32; foo:64 resolves to foo; foo resolves to both foo and foo_32 (if foo_32 is defined). -- Name resolving for LOCAL_REQUIRED_MODULES: If a module is built for 2nd arch, its required module resolves to 32-bit variant, if it exits; Otherwise for executable and shared library, a required module resolves to the default 64-bit variant; for other module classes, required module foo resolves to both foo and foo_32 (if foo_32 is defined) Bug: 12898862 Change-Id: I5fda1a77f58814097b10b5ad2743ee25adfaecc4
* add support for more LOCAL_*_arch variablesColin Cross2014-02-041-1/+1
| | | | | | | | | | | Add support for: LOCAL_SHARED_LIBRARIES_arch LOCAL_STATIC_LIBRARIES_arch LOCAL_WHOLE_STATIC_LIBRARIES_arch LOCAL_GENERATED_SOURCES_arch LOCAL_REQUIRED_MODULES_arch Change-Id: Iad91702e140d8dba7dcaee13f236c77b1e626a34
* don't rename 32-bit executables to *_32Colin Cross2014-02-041-0/+2
| | | | | | | Renaming 32-bit executables to *_32 breaks PRODUCT_PACKAGES dependencies. Change-Id: I53d89991633ef4af03c4e618c463769937a70e38
* Merge changes I62504bad,I16208cca,I4e4ceec6Colin Cross2014-01-271-0/+5
|\ | | | | | | | | | | | | * changes: add new gen/ directory for generated sources warn on LOCAL_MODULE_PATH in multiarch shared libraries Support LOCAL_MODULE_RELATIVE_PATH
| * add new gen/ directory for generated sourcesColin Cross2014-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Allow modules to generate source into $OUT/gen, which will then be copied into $OUT/obj and $OUT/obj_$(TARGET_2ND_ARCH) as necessary. This allows a single build rule invocation that includes generated source to build for the first and second architectures. Modules will need to change calls to local-intermediates-dir into local-generated-sources-dir. Change-Id: I62504bad9454b3d9fde7b84ab9f0a487a2ecf0bf
| * Support LOCAL_MODULE_RELATIVE_PATHColin Cross2014-01-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | Most users of LOCAL_MODULE_PATH are setting a subdirectory of the normal install path, for example to install HALs into system/lib/hw. This is problematic for multiarch builds, where the install location depends on the arch. Allow modules to specify LOCAL_MODULE_RELATIVE_PATH. HALs will generally use: LOCAL_MODULE_RELATIVE_PATH := hw Change-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e
* | Don't modify LOCAL_MODULE_TAGS.Ying Wang2014-01-271-15/+17
|/ | | | Change-Id: Id70d48c1d7abf02139925bcb3208515ea1a082b9
* build: print module that has unhandled install pathColin Cross2014-01-241-1/+1
| | | | | | | | | | Print the name of the module that is providing an unhandled install path. Change-Id: I0e8b02f01de1dde715f0985034ad943f793218ba Conflicts: core/base_rules.mk
* Support arch-specific LOCAL_ variablesYing Wang2014-01-241-6/+6
| | | | | | | | | | | | With those variables, you can set up different values for TARGET_ARCH and TARGET_2ND_ARCH. Also fixed a couple of variables. Bug: 11654773 Change-Id: I4c7684a562cd5877d18f67d4f848b8df07d0103b Conflicts: core/base_rules.mk
* Set up rules to build static libraries for TARGET_2ND_ARCHYing Wang2014-01-241-33/+41
| | | | | | | | | | The rules for the 2nd arch are set up in the second inclusion of static_library_internal.mk. libfoo of the 2nd arch will be built into $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a. Bug: 11654773 Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
* Add DEXPREOPT support for ARTBrian Carlstrom2013-12-171-9/+0
| | | | Change-Id: I24d0d7b2a23a769f5d69bd4dc14be22e1475b759
* Rework the generation of host java libraries.Narayan Kamath2013-11-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | We currently have two types of host libraries, those meant for the host VM (Sun, OpenJDK etc.) and those meant for a host dalvik build. The former need to be compiled against the host standard libraries and the latter need to be compiled against libcore. This change introduces two new build rules to complement the existing the existing host rules. BUILD_HOST_DALVIK_JAVA_LIBRARY : Build a java library for a host build of dalvik. Bootclasspath will be set to a host build of libcore. BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY : Build a static java library for a host build of dalvik. Bootclasspath will be set to a host build of libcore. This change also removes support for the LOCAL_BUILD_HOST_DEX flag, which is now unnecessary. bug: 8992787 (cherry picked from commit 0dd273a3f68364045c0e8bdcc10a4ecd3c07b745) Change-Id: I3569fff8eaa4d26d55fcc317bd98471f55d74c14
* Merge commit 'c73341006286c391ae4d268a77f5e008045d5308' into HEADThe Android Open Source Project2013-11-221-44/+48
|\ | | | | | | Change-Id: I4bf7d32d65e19dfa1f0533fdd3b2295c50b13005
| * Add the FRAMEWORKS_BASE_JAVA_SRC_DIRS to aidl includesYing Wang2013-10-011-3/+3
| | | | | | | | | | | | | | | | | | | | only if the module is built against the platform, not the SDK. Previously it added it if it's doing a platform build. But we can do an apps_only build inside the platform source tree and such a build may build modules against the platform. This fixes the apps build in the platform source tree. Change-Id: I73e32a8f0e505349790a102321f88e77fba472cd
| * am b6da30c3: am 2408479c: Allow module to specify LOCAL_INSTALLED_MODULE_STEMYing Wang2013-09-251-6/+7
| |\ | | | | | | | | | | | | * commit 'b6da30c3724cc2a452be2c1ae425eff4f7d55944': Allow module to specify LOCAL_INSTALLED_MODULE_STEM
| | * am 2408479c: Allow module to specify LOCAL_INSTALLED_MODULE_STEMYing Wang2013-09-251-6/+7
| | |\ | | | | | | | | | | | | | | | | * commit '2408479cf9cf9cfe87e464e9b5d2f36143818d37': Allow module to specify LOCAL_INSTALLED_MODULE_STEM
| | | * Allow module to specify LOCAL_INSTALLED_MODULE_STEMYing Wang2013-09-251-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, you can install a shared library with module name foo as bar.so to the system.img with: LOCAL_INSTALLED_MODULE_STEM := bar.so Note that we in general still disallow a static/shared library to specify LOCAL_MODULE_STEM or LOCAL_BUILT_MODULE_STEM, because the build system uses LOCAL_MODULE to compute build time dependencies, such as export_includes, the -l linker flag etc. Also, if you use LOCAL_INSTALLED_MODULE_STEM to change the installed file name and if any other module links against this library, you may run into runtime error: the library name baked in to the binary is not the same as file name in the system image. Change-Id: I55b571c8139c3bda07a4a0e50cea0f20d8d6c168
| * | | Better handle of need_compile_java.Ying Wang2013-08-281-11/+10
| | | | | | | | | | | | | | | | Change-Id: I609a27e2b35b08962243b6516c6c525c0c938d3c
| * | | Make it a fatal error if no source files for Java module.Ying Wang2013-08-281-1/+1
| | | | | | | | | | | | | | | | Change-Id: Ia04158c11381b6b1687b9d5c699a9ea8ae3cb317
| * | | am 29695daa: am 653a037d: am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared ↵Ying Wang2013-08-231-0/+1
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | Java libraries. * commit '29695daa9734a8dfb516b7ff2e35b2b263e6b37b': Treat LOCAL_APK_LIBRARIES like shared Java libraries.
| | * | am 653a037d: am 638ce57a: Treat LOCAL_APK_LIBRARIES like shared Java libraries.Ying Wang2013-08-231-0/+1
| | |\ \ | | | |/ | | | | | | | | | | | | * commit '653a037d70d770d2fc03d4f205a9c626af5f5c76': Treat LOCAL_APK_LIBRARIES like shared Java libraries.
| | | * Treat LOCAL_APK_LIBRARIES like shared Java libraries.Ying Wang2013-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix proguard build. Bug: 10307372 Change-Id: Id99d6e903077b4bacdea2e68cbb78e46a4a6afb8
| * | | am ec3c15e5: am 04c4d34d: am 7311a344: Make it easier to enable obfuscation ↵Ying Wang2013-08-231-11/+10
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | and optimization. * commit 'ec3c15e5c7c11cf3a831898f286c7eb7c216e50f': Make it easier to enable obfuscation and optimization.
| | * | am 04c4d34d: am 7311a344: Make it easier to enable obfuscation and optimization.Ying Wang2013-08-231-11/+10
| | |\ \ | | | |/ | | | | | | | | | | | | * commit '04c4d34d4fdb56c824abf39239d2c87806706b7e': Make it easier to enable obfuscation and optimization.
| | | * Make it easier to enable obfuscation and optimization.Ying Wang2013-08-221-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, use: * LOCAL_PROGUARD_ENABLED := obfuscation # to enable obfuscation * LOCAL_PROGUARD_ENABLED := optimization # to enable optimization * LOCAL_PROGUARD_ENABLED := obfuscation optimization # to enable both Now the meaning of the LOCAL_PROGUARD_ENABLED options: * full: Use the build system's default configurations: with shrink but no obfuscation or optimization, global proguard flags in build/core/proguard.flags are applied. * custom: The same as "full" except no aapt-generated resource-related proguard flags. * nosystem: Don't use any build system's default configurations; but aapt-generated proguard flags are still applied. You are responsible for any other flags. * disabled: Disable proguard. * obfuscation: The same as "full" but with obfuscation enabled. * optimization: The same as "full" but with optimization enabled. * no value (the default): The build system chooses the proper value: "full" if it's an app; "disabled" if it's a library. You can use more than 1 of them in a meaningful combination, for example: LOCAL_PROGUARD_ENABLED := obfuscation optimization Bug: 10307372 Change-Id: Id248caca3048e99547f16559fae74f4afe85c354
| | | * Add a "nano" option to LOCAL_PROTOC_OPTIMIZE_TYPE.Ulas Kirazci2013-04-031-0/+4
| | | | | | | | | | | | | | | | Change-Id: I7429015b3c5f7f38b7be01eb2d4927f7a9999c80
| * | | am 51aab877: am 5d1db8b4: Merge "Allow proto builds to pass in java proto ↵Ying Wang2013-07-251-0/+1
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | params." * commit '51aab8775ab86990abef411d00f5686e41022eee': Allow proto builds to pass in java proto params.
| * | | Revert "Allow proto builds to pass in java proto params."Ben Murdoch2013-07-251-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 28b46fc16c026365378909f1cc88fad0d3b2395c. Speculative fix for master builds. I cannot repro the break the bots are seeing locally, but it seems related to building protobufs and this CL was in the first broken build.
| * | | am 6a5fc54f: am a825aa13: Merge "Allow proto builds to pass in java proto ↵Ulas Kirazci2013-07-251-0/+1
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | params." * commit '6a5fc54fe9904214a7df1d34c9d48ad0310d867e': Allow proto builds to pass in java proto params.
| * | | | Install to TARGET_OUT_APPS_PRIVILEGED if LOCAL_PRIVILEGED_MODULE is trueYing Wang2013-05-081-14/+18
| | | | | | | | | | | | | | | | | | | | Change-Id: I268b8652f18034aa3fdd3126ebf6196f78c4bbb2
* | | | | Remove the hacks needed to support ash and mksh concurrently.Elliott Hughes2013-11-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We no longer have ash, and we'd rather not have unnecessary symbolic links on the system. Change-Id: Icfb1a51f1baaf1861c203f6ed93843b094deb65d
* | | | | Remove shell_ash; ash is but ashes.Elliott Hughes2013-11-051-1/+1
| |_|/ / |/| | | | | | | | | | | Change-Id: I88040e39c51986b14e3a764e7bb9e2c8c05ed86b
* | | | Allow proto builds to pass in java proto params.Ulas Kirazci2013-07-251-0/+1
| | | | | | | | | | | | | | | | Change-Id: I65fe0cd96f818f59267da6159e6bd2ad28f07a11
* | | | Revert "Allow proto builds to pass in java proto params."Ulas Kirazci2013-07-251-1/+0
| |/ / |/| | | | | | | | | | | | | | This reverts commit 28b46fc16c026365378909f1cc88fad0d3b2395c. Change-Id: Iaca9fa749c6f460911cc46e08e6b3ae2555b8bcc
* | | Allow proto builds to pass in java proto params.Ulas Kirazci2013-07-241-0/+1
|/ / | | | | | | | | | | | | | | | | Also source files which have dependencies need to be bundled together (at least the way the build system is set up now). Move --proto_path=$(TOP) to the end so that it does not take precedence over user-supplied --proto_path flags. Change-Id: Ia532647fe8811d39230a23ba3671685b0388cbe0
* | am b1578404: Merge "Fix /system/app/.odex not updated issue"Ying Wang2013-04-171-1/+1
|\ \ | | | | | | | | | | | | * commit 'b1578404624f2369bb92a1e69c02f2ef15372002': Fix /system/app/$app.odex not updated issue
| * | Fix /system/app/$app.odex not updated issueChih-Wei Huang2013-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $(built_odex) depends on $(LOCAL_BUILT_MODULE) but doesn't have any build recipe. It is built by the rules of $(LOCAL_BUILT_MODULE) that results in a subtle bug: $(built_odex) is always newer than $(LOCAL_BUILT_MODULE) if $(LOCAL_BUILT_MODULE) rebuilt. Therefore 'make' thinks the targets (/system/app/$app.odex) depending on $(built_odex) don't need to be updated. It seems an allegedly optimization bug of 'make'. The simple fix is to explicitly add $(LOCAL_BUILT_MODULE) as a dependency of $(installed_odex).
* | | am 0262d0f7: Merge "Add a "nano" option to LOCAL_PROTOC_OPTIMIZE_TYPE."Wink Saville2013-04-011-0/+4
|\ \ \ | |/ / | | / | |/ |/| * commit '0262d0f74725f8a165b20eeac323cdd8ca31df03': Add a "nano" option to LOCAL_PROTOC_OPTIMIZE_TYPE.
| * Add a "nano" option to LOCAL_PROTOC_OPTIMIZE_TYPE.Ulas Kirazci2013-03-281-0/+4
| | | | | | | | Change-Id: I7429015b3c5f7f38b7be01eb2d4927f7a9999c80
* | am ca983c08: am 97c280ec: Merge "We have to use := instead of +="Ying Wang2013-03-221-1/+1
|\ \ | |/ | | | | | | * commit 'ca983c08fbc49b36eb0d71476842a86afbdcb8ed': We have to use := instead of +=
| * We have to use := instead of +=Ying Wang2013-03-221-1/+1
| | | | | | | | | | | | | | | | If we use +=, the right side may be deferred to evaluate, if that target-specific variable is not defined yet. That's a mistke. Change-Id: I1635ee4791473f407866e010d612948c02cdebf6
| * Don't install all host modules by default.Ying Wang2013-03-061-11/+0
| | | | | | | | | | | | | | | | | | Instead we should explicitly set up the dependency, if the module will be used in the build process; Use LOCAL_MODULE_TAGS with eng, debug or tests if the module is for testing; or add to PRODUCT_PACKAGES if it's required by a product. Change-Id: Ic26319c26c1166bc1062dfbcfb4e006af185249a
* | Add LOCAL_APK_LIBRARIES argument.Dianne Hackborn2013-03-121-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Add LOCAL_POST_INSTALL_CMDYing Wang2013-02-061-0/+2
| | | | | | | | | | | | | | | | | | With this support, you can piggy-back some symlinks when a module gets installed. This is especially helpful if the target of the symlink doesn't exist on the build machine. Change-Id: I48af7a90ce67475bc49b72f94a8753b94da98edd
* | Check build even if a module it's built against SDK.Ying Wang2013-01-301-5/+2
| | | | | | | | Change-Id: I2466620e52541bb938721772ce9f63c12bc212db
* | Refactor calculation LOCAL_CHECKED_MODULEYing Wang2013-01-301-10/+12
| | | | | | | | | | | | | | To remove dup code; Also added two more umbrella targets: host, target. Change-Id: Ia6deed2940a26a31ad823fe54816840861f3fb72
* | Revert "Refactor calculation LOCAL_CHECKED_MODULE"Ying Wang2013-01-301-17/+13
| | | | | | | | | | | | This reverts commit ba99e69424b72ac95581da50c8eea131d398d790 Change-Id: I3c42dea56376d26a5bb77b4944ae17a6875aadbb
* | Refactor calculation LOCAL_CHECKED_MODULEYing Wang2013-01-301-13/+17
| | | | | | | | | | | | | | To remove dup code; Also added two more umbrella targets: host, target. Change-Id: Ic82db571435cdbd10fd9e70e6c4195f4ca9ecd99