summaryrefslogtreecommitdiffstats
path: root/core/shared_library.mk
Commit message (Collapse)AuthorAgeFilesLines
* Clarify multiarch warningsDmitriy Ivanov2014-05-211-7/+10
| | | | | | * Show multiarch related warnings only if my_module_multilib is both Change-Id: If0c467c1d9b953bd3f40949ab4b97d9329ec021f
* 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
* add support for LOCAL_MULTILIBColin Cross2014-03-261-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Include $(BUILD_COPY_HEADERS) in upper-level makefilesYing Wang2014-02-201-0/+5
| | | | | | | This makes sure copy_headers.mk only be included onces, no matter it's for the 1st arch or the 2nd arch. Change-Id: I80a558fbdb52861f176bd27a21c302069a5cc3ce
* add support for module supported or unsupported target architecturesColin Cross2014-02-121-5/+13
| | | | | | | | | | | | | | | | | | | | | | 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
* 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
* warn on LOCAL_MODULE_PATH in multiarch shared librariesColin Cross2014-01-271-0/+12
| | | | | | | | Using LOCAL_MODULE_PATH in a shared library module while building a multiarch target will cause build rules for both architectures to install into the same path. Warn and suggest LOCAL_MODULE_RELATIVE_PATH. Change-Id: I16208ccada6d43a26a342af35096f49d8df26e81
* Support to build executables for TARGET_2ND_ARCHYing Wang2014-01-241-2/+8
| | | | | | | | | | | By default, an executable is built for TARGET_ARCH. To build it for TARGET_2ND_ARCH in a 64bit product, use: LOCAL_32BIT_ONLY := true To skip a module for TARGET_2ND_ARCH, use: LOCAL_NO_2ND_ARCH := true Bug: 11654773 Change-Id: Ieb293d25b21024bfe1b554044df338e064ac7b46
* Set up rules to build shared libraries for TARGET_2ND_ARCHYing Wang2014-01-241-70/+12
| | | | | | | | | | | | The rules for the 2nd arch are set up in the second inclusion of shared_library_internal.mk. Intermediate fils of libfoo of the 2nd arch will be built into $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/SHARED_LIBRARIES/libfoo_intermediates/ and the built libfoo.so will be in $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/lib. Bug: 11654773 Change-Id: I58bbe5a05a65f63bce6279131552f3792000716e
* Remove aprof support from the build system.Ying Wang2014-01-141-12/+0
| | | | | | This reverts the commit 70dc3e1d. Change-Id: I480b005579805d2608d05dac41e32bb44642e813
* Allow clang to build host binaries.Logan Chien2014-01-071-0/+4
| | | | Change-Id: I7e4f9dc6f69a97cfefdfa2ed55c5d7b8ad496da7
* Support to switch between prebuilt and buiding from sourceYing Wang2013-01-151-0/+13
| | | | | | For target shared library and executable. Change-Id: I40a4e4e0c971811ac60e9bd04206f2422387d3d0
* Fix common typo in comments, warning and error messages.Ian Rogers2012-10-011-1/+1
| | | | | | s/can not/cannot/g Change-Id: I1bac31157732666deb46f6f20389ff539977ffb9
* Retire LOCAL_NDK_VERSION.Ying Wang2012-08-141-1/+1
| | | | | | | | | | 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
* am 6e587f53: Merge "Profiling use aprof, enable by LOCAL_ENABLE_APROF or ↵Jean-Baptiste Queru2012-06-221-0/+13
|\ | | | | | | | | | | | | LOCAL_ENABLE_APROF_JNI" * commit '6e587f53152127370c6b45204f6529dd7b0ce32a': Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNI
| * Profiling use aprof, enable by LOCAL_ENABLE_APROF or LOCAL_ENABLE_APROF_JNIKito Cheng2012-06-151-0/+13
| | | | | | | | Change-Id: Ia95dc7318e17c0804867b22e239edccc5cbec0af
* | Build system support to export include pathsYing Wang2011-11-171-0/+3
|/ | | | | | | | | | | | | Bug: 5573756 With this change, we can set LOCAL_EXPORT_C_INCLUDE_DIRS in the module definition to export include dir paths. Paths in LOCAL_EXPORT_C_INCLUDE_DIRS should be relative to the top dir of the source tree. If a library (shared or static) exports some include paths, any module using it will import the include paths and add them to the compiler command line. Change-Id: I49aabc589d2cf214044d13ccd5532ef68209adf0
* Put the NDK library paths ahead of TARGET_GLOBAL_LD_DIRSYing Wang2011-07-201-2/+6
| | | | | | | | | | To avoid race condition: Say a module with LOCAL_NDK_VERSION built in the full source tree, Before this change it may be linked against TARGET_GLOBAL_LD_DIRS/libc.so that's being partially written out by the linker, because there is no dependency between the module and TARGET_GLOBAL_LD_DIRS/libc.so. Change-Id: If6e4921d226fee133b53e4d819a07b48f4fca016
* build: remove prelinker build build systemIliyan Malchev2011-03-121-3/+0
| | | | | | | | | | | | | | | | | | | | This patch removes support for prelinking from the build system. By now, the prelinker has outlived its usefulness for several reasons. Firstly, the speedup that it afforded in the early days of Android is now nullified by the speed of hardware, as well as by the presence of Zygote. Secondly, the space savings that come with prelinking (measued at 17MB on a recent honeycomb stingray build) are no longer important either. Thirdly, prelinking reduces the effectiveness of Address-Space-Layout Randomization. Finally, since it is not part of the gcc suite, the prelinker needs to be maintained separately. The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source tree. It also removes the prelink map. LOCAL_PRELINK_MODULE becomes a no-op. Individual Android.mk will get cleaned separately. Support for prelinking will have to be removed from the recovery code and from the dynamic loader as well. Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
* Add NDK crtbegin_so.o and crtend_so.o if they exist.Ying Wang2011-03-041-5/+2
| | | | Change-Id: I3d49d5a2d0e1b6bf26a0e1df0df2d6d7e026f85a
* Support stl variants when LOCAL_NDK_VERSION is set.Ying Wang2011-03-041-1/+3
| | | | | | | LOCAL_NDK_STL_VARIANT can be set to system, stlport_static, stlport_shared or gnustl_static. It defaults to system. Change-Id: I2840d30ff732a00bc0ea70eab8a8179aea0abbdf
* Support to build native libraries with prebuilt NDKYing Wang2010-07-131-1/+23
| | | | | Bug: http://b/issue?id=2811253 Change-Id: Iabd4ab8b3d7236dffe89f1939e1142e882944026
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+32
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-32/+0
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-1/+3
|
* Initial ContributionThe Android Open Source Project2008-10-211-0/+30