| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-- 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:
LOCAL_SHARED_LIBRARIES_arch
LOCAL_STATIC_LIBRARIES_arch
LOCAL_WHOLE_STATIC_LIBRARIES_arch
LOCAL_GENERATED_SOURCES_arch
LOCAL_REQUIRED_MODULES_arch
Change-Id: Iad91702e140d8dba7dcaee13f236c77b1e626a34
|
|
|
|
|
|
|
| |
Renaming 32-bit executables to *_32 breaks PRODUCT_PACKAGES
dependencies.
Change-Id: I53d89991633ef4af03c4e618c463769937a70e38
|
|\
| |
| |
| |
| |
| |
| | |
* changes:
add new gen/ directory for generated sources
warn on LOCAL_MODULE_PATH in multiarch shared libraries
Support LOCAL_MODULE_RELATIVE_PATH
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
Change-Id: Id70d48c1d7abf02139925bcb3208515ea1a082b9
|
|
|
|
|
|
|
|
|
|
| |
Print the name of the module that is providing an unhandled install
path.
Change-Id: I0e8b02f01de1dde715f0985034ad943f793218ba
Conflicts:
core/base_rules.mk
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I24d0d7b2a23a769f5d69bd4dc14be22e1475b759
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|\
| |
| |
| | |
Change-Id: I4bf7d32d65e19dfa1f0533fdd3b2295c50b13005
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\
| | |
| | |
| | |
| | | |
* commit 'b6da30c3724cc2a452be2c1ae425eff4f7d55944':
Allow module to specify LOCAL_INSTALLED_MODULE_STEM
|
| | |\
| | | |
| | | |
| | | |
| | | | |
* commit '2408479cf9cf9cfe87e464e9b5d2f36143818d37':
Allow module to specify LOCAL_INSTALLED_MODULE_STEM
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I609a27e2b35b08962243b6516c6c525c0c938d3c
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ia04158c11381b6b1687b9d5c699a9ea8ae3cb317
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
Java libraries.
* commit '29695daa9734a8dfb516b7ff2e35b2b263e6b37b':
Treat LOCAL_APK_LIBRARIES like shared Java libraries.
|
| | |\ \
| | | |/
| | | |
| | | |
| | | | |
* commit '653a037d70d770d2fc03d4f205a9c626af5f5c76':
Treat LOCAL_APK_LIBRARIES like shared Java libraries.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fix proguard build.
Bug: 10307372
Change-Id: Id99d6e903077b4bacdea2e68cbb78e46a4a6afb8
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
and optimization.
* commit 'ec3c15e5c7c11cf3a831898f286c7eb7c216e50f':
Make it easier to enable obfuscation and optimization.
|
| | |\ \
| | | |/
| | | |
| | | |
| | | | |
* commit '04c4d34d4fdb56c824abf39239d2c87806706b7e':
Make it easier to enable obfuscation and optimization.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I7429015b3c5f7f38b7be01eb2d4927f7a9999c80
|
| |\ \ \
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
params."
* commit '51aab8775ab86990abef411d00f5686e41022eee':
Allow proto builds to pass in java proto params.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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.
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
params."
* commit '6a5fc54fe9904214a7df1d34c9d48ad0310d867e':
Allow proto builds to pass in java proto params.
|
| | | | |
| | | | |
| | | | |
| | | | | |
Change-Id: I268b8652f18034aa3fdd3126ebf6196f78c4bbb2
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We no longer have ash, and we'd rather not have unnecessary symbolic links
on the system.
Change-Id: Icfb1a51f1baaf1861c203f6ed93843b094deb65d
|
| |_|/ /
|/| | |
| | | |
| | | | |
Change-Id: I88040e39c51986b14e3a764e7bb9e2c8c05ed86b
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I65fe0cd96f818f59267da6159e6bd2ad28f07a11
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
This reverts commit 28b46fc16c026365378909f1cc88fad0d3b2395c.
Change-Id: Iaca9fa749c6f460911cc46e08e6b3ae2555b8bcc
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | |
| | | |
* commit 'b1578404624f2369bb92a1e69c02f2ef15372002':
Fix /system/app/$app.odex not updated issue
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
$(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).
|
|\ \ \
| |/ /
| | /
| |/
|/| |
* commit '0262d0f74725f8a165b20eeac323cdd8ca31df03':
Add a "nano" option to LOCAL_PROTOC_OPTIMIZE_TYPE.
|
| |
| |
| |
| | |
Change-Id: I7429015b3c5f7f38b7be01eb2d4927f7a9999c80
|
|\ \
| |/
| |
| |
| | |
* commit 'ca983c08fbc49b36eb0d71476842a86afbdcb8ed':
We have to use := instead of +=
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Change-Id: I2466620e52541bb938721772ce9f63c12bc212db
|
| |
| |
| |
| |
| |
| |
| | |
To remove dup code;
Also added two more umbrella targets: host, target.
Change-Id: Ia6deed2940a26a31ad823fe54816840861f3fb72
|
| |
| |
| |
| |
| |
| | |
This reverts commit ba99e69424b72ac95581da50c8eea131d398d790
Change-Id: I3c42dea56376d26a5bb77b4944ae17a6875aadbb
|
| |
| |
| |
| |
| |
| |
| | |
To remove dup code;
Also added two more umbrella targets: host, target.
Change-Id: Ic82db571435cdbd10fd9e70e6c4195f4ca9ecd99
|