Commit Graph

69 Commits

Author SHA1 Message Date
Al Sutton 1199f7388c Fix building on modern versions of Xcode and OS X.
Add the build options to support the most recent versions of XCode and
add 10.9 to the list of OS X SDKs which the AOSP code can be built with.

Based on patch from https://groups.google.com/d/msg/android-building/kePgJmYBUdM/0C_d1OZflvcJ

Change-Id: I97ffe45d3c54a095952a4ac6accb938623b8fa1e
Signed-off-by: Al Sutton <al@funkyandroid.com>
2014-11-10 14:42:30 +00:00
Stephen Hines 781094fa43 Remove unnecessary 10.8-specific build rules
We no longer need gcc for host builds, since those all run through clang. This
header include, however, triggers errors about SSE intrinsics by replacing
the more relevant include dirs that we should be using.

Change-Id: I26a949f0109de8e6e2d1f09cb8127be927549cc4
2014-10-17 17:36:42 -07:00
Ying Wang 5e2ebcbe26 Use hermetic host toolchains.
Change-Id: I6bb72b5728d1075be9645f8473dcf3db759fa66a
2014-07-28 15:14:51 -07:00
Ying Wang ef773d22ca Fix the missing 2nd arch prefix.
Bug: 13751317
Change-Id: Ie5a323a0a89245576dbc91271d3178574942627d
2014-05-16 16:22:32 -07:00
Ying Wang 6feb6d5607 Support host multilib build
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
2014-05-14 16:55:04 -07:00
Tim Murray d318ba66f9 Update build system for better Clang behavior on Mac.
Change-Id: I1813954681b670807d7e3faaf6d5f5a769cc5f2e
2014-04-22 09:26:22 -07:00
Tim Murray 02cefc93a8 Make Clang host builds hermetic on Linux.
This lays the groundwork for making builds hermetic on Darwin as well.
That will be fixed in a future patch.

bug 13435344

Change-Id: Iae82d0b9efad0598d682ff5fd4daa737aa607866
2014-03-24 19:38:47 -07:00
Ian Rogers aa54033b46 Define __STDC_CONSTANT_MACROS globally to work around host build differences.
Change-Id: I945128b3087b28f62467c7123b759e3514027574
2014-03-10 16:49:41 -07:00
Ian Rogers c61a9425cd Revert "Define __STDC_LIMIT_MACROS globally to work around host build differences."
This reverts commit 668427c941.

Change-Id: I3694aad84e7499e4c6839db0bd06acf5166e4802
2014-03-10 23:27:01 +00:00
Ian Rogers 668427c941 Define __STDC_LIMIT_MACROS globally to work around host build differences.
Change-Id: I571fc5a4b35c830ca8de4dc3117aef258dffa1bd
2014-03-10 15:30:39 -07:00
C. Sean Young b47c863ec7 Strip all symbols on x86
Strip all of the non-dynamic symbols on x86 targets,
instead of just the debug symbols.

Change-Id: Id799a6a8c8b0e8bf70977328e42e5efa23762f25
2014-02-19 12:53:43 -08:00
Ian Rogers 61e5059ef7 Fix the host inttypes.h problem globally.
Bug: 12708004
Change-Id: I2c75647bac304b82e150c540b9e6c5568997596d
2014-01-29 16:29:11 -08:00
Torne (Richard Coles) 71f8b245ce Don't try to group static libraries on mac.
Mac's linker doesn't support --start-group and --end-group; it scans
libraries repeatedly even without these options, so it's not necessary.

Change-Id: If22527e75470f7fa9452dc33efe4d40a60d0919a
2013-03-11 14:59:42 +00:00
Ying Wang eb98e08893 am 865d851a: Merge "Remove the obsolete comments and change the misleading var name."
* commit '865d851a8012e13c35d573d98770b7187d32b7f7':
  Remove the obsolete comments and change the misleading var name.
2012-11-12 14:45:59 -08:00
Ying Wang 85e8cda340 Remove the obsolete comments and change the misleading var name.
Change-Id: Ib19099cbce0133f5c7df44fa0fd80215809a1ad8
2012-11-12 14:31:20 -08:00
Andrew Hsieh abfb25226a resolved conflicts for merge of 8b3ce5a3 to stage-aosp-master
Change-Id: I588a055812ddc8f4531c9d02994beb366f9aab3e
2012-11-12 12:50:03 -08:00
Andrew Hsieh e2e28f6d02 Use prebuilt gcc for MacOSX
1. Use prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1
   See https://android-review.googlesource.com/#/c/46223/
2. Rewrite logic dealing with mac_sdk_version to support all
   MacOSX SDK 10.6, 10.7 and 10.8.  Note that since
   ad2342375963c2468849c1f83a97158383db6511 emulator no longer
   depends on 10.6 to build.  Since the lowest SDK among intersection
   of the "available" and the "supported" SDKs is picked, add a
   new variable MAC_SDK_VERSION for developer really want to overwrite
   it.  MAC_SDK_VERSION still has to be one of the supported, though.
3. Improve mac_sdk_path detection to deal with case where Xcode
   *dmg is mounted only, not installed at /Applications.
4. Now we can retire BUILD_MAC_SDK_EXPERIMENTAL

Change-Id: I83e463556a857d527710f766de0e19e1b576151f
2012-11-12 10:44:52 -08:00
Ian Rogers 76a6dc3a19 Fix common typo in comments, warning and error messages.
s/can not/cannot/g

Change-Id: I1bac31157732666deb46f6f20389ff539977ffb9
2012-10-01 16:36:23 -07:00
Ying Wang 5bdf305bbe Move AndroidConfig.h from system/core to the build project.
So unbundled branches don't need to include the system/core project.

Change-Id: Ic4ef62ee6df069b9b2dd123aed95a3e7fcdfc146
2012-09-20 10:33:20 -07:00
Jean-Baptiste Queru cd9668edd4 am e3479ea5: am 15012c11: Merge "Build on Mac OS X : add experimental SDK versions"
* commit 'e3479ea5033e2ede36f6f771dd3a6ea315505efd':
  Build on Mac OS X : add experimental SDK versions
2012-08-22 09:57:30 -07:00
Jean-Baptiste Queru 15012c115d Merge "Build on Mac OS X : add experimental SDK versions" 2012-08-22 09:44:48 -07:00
SangWook Han 691e0243ca Build on Mac OS X : add experimental SDK versions
Change-Id: Ifc67d1745e72fc048cd6e8c8ef0521ab92468086
2012-08-22 02:59:58 +09:00
Andrew Hsieh 31ef1037bf Added BUILD_HOST_static to build statically linked executable/shared-lib
Statically linked executable/shared-lib (eg. SDK tools) are useful
in sandboxed environment.

In BUILD_HOST_static zipalign needs -lpthread indirectly:
zipalign->libutils.a->liblog.a->logd_write.c->pthread

Change-Id: I615f574e918c83ed1ab82db2453b69d0420cb59c
2012-08-21 14:40:16 +08:00
Ying Wang da4bf42514 Don't include system/core/include/arch/<arch>/Android.mk for apps-only build.
Bug: 6994483
Change-Id: I76c4d96264cf94a79d59fdeb52bb37c07a9458dd
2012-08-16 16:45:01 -07:00
Ying Wang dfb5818027 am d512fda4: am e42ed0ba: Merge "Move the llvm-gcc warning from HOST_darwin-x86.mk to main.mk"
* commit 'd512fda4ae7cc56cc9b83fcb6e7a9e0d0f02c259':
  Move the llvm-gcc warning from HOST_darwin-x86.mk to main.mk
2012-06-29 20:22:20 -07:00
Ying Wang d512fda4ae am e42ed0ba: Merge "Move the llvm-gcc warning from HOST_darwin-x86.mk to main.mk"
* commit 'e42ed0ba1571f20866609710ba7c73fd138c0405':
  Move the llvm-gcc warning from HOST_darwin-x86.mk to main.mk
2012-06-29 20:19:50 -07:00
Ying Wang 478ba5e3f0 Move the llvm-gcc warning from HOST_darwin-x86.mk to main.mk
Bug: 6754632
So the warning won't show up when you run lunch.
Now the warning only shows when you do a clean build.

Change-Id: I7876da783f059d390f0072df37d3ab0291589eb7
2012-06-28 16:02:19 -07:00
Ying Wang e556005331 resolved conflicts for merge of 5c0ee702 to master
Change-Id: I6bdcc87482c45988d410a4c4d0abc43a1416277e
2012-06-08 09:37:54 -07:00
Ying Wang 5c0ee702d6 am 79d39a30: am 874563f9: Merge "Fix generic build on Max OS X 10.7 Lion"
* commit '79d39a303e036dc70eccf2e2e7489fa0bbfd3a4b':
  Fix generic build on Max OS X 10.7 Lion
2012-06-08 09:27:08 -07:00
SangWook Han 02eb37c267 Fix generic build on Max OS X 10.7 Lion
Recover variable build_mac_version which is removed on
    commit 644dc16 and added on commit 9ce06f1.

    Without this, ranlib libSDL.a is executed on Lion which
    causes build fail of emulator-arm.

Change-Id: I06144a288921f8f968ef457999398c1b9152d4aa
2012-06-08 14:55:05 +09:00
Ying Wang 10f775379d Tweak cflags for building with SDK 10.6.
Change-Id: I4db9949577591ef6756812769f04cfaddd876faf
2012-06-07 17:10:53 -07:00
Ying Wang fcc2a604af am f1e424a6: am 3da13457: am 4b030617: Merge "XCode 4.3+ compatibility check-in"
* commit 'f1e424a63658eb15ba61ca2eb8f0df38733188fe':
  XCode 4.3+ compatibility check-in
2012-06-07 12:03:46 -07:00
Ying Wang f1e424a636 am 3da13457: am 4b030617: Merge "XCode 4.3+ compatibility check-in"
* commit '3da13457cfa46cf7d46b57c00f387c7c310b2dba':
  XCode 4.3+ compatibility check-in
2012-06-07 12:02:06 -07:00
Al Sutton 51f9bb02da XCode 4.3+ compatibility check-in
XCode 4.3 and later use a different location for SDKs. This check in
ensures the build checks for the new location as well as the old one.

Change-Id: I97884e5009f229f8b42e57a8feeb702b3a40a241
Signed-off-by: Al Sutton <al@funkyandroid.com>
2012-06-07 19:10:13 +01:00
Ying Wang 130ae6adcb resolved conflicts for merge of 9f4d00b9 to master
Change-Id: I1818896ae714aa54ad980bfbf7648652369497e5
2012-06-05 15:44:21 -07:00
Ying Wang 9f4d00b94b am e534e2eb: am 47450542: Merge "Use Mac OS X SDK 10.6."
* commit 'e534e2eb2b5e79facf24c31eb2f60b8a0ee1f5b7':
  Use Mac OS X SDK 10.6.
2012-06-05 15:25:39 -07:00
Ying Wang 644dc164cc Use Mac OS X SDK 10.6.
Change-Id: I8ca16db2fb93d350829e14f4339e7ece75a2fb54
2012-06-05 14:23:22 -07:00
Ying Wang abf72cf3f4 Use Mac OS X SDK 10.6.
Change-Id: I8ca16db2fb93d350829e14f4339e7ece75a2fb54
2012-05-30 18:16:10 -07:00
Ying Wang 9d50defb8b Revert "Use Mac OS X SDK 10.6."
This reverts commit 4c1b310b9b
2012-05-25 18:55:52 -07:00
Ying Wang 4c1b310b9b Use Mac OS X SDK 10.6.
Change-Id: Ie36914ab1763c5606111f7501c97ed97517e7187
2012-05-25 15:43:38 -07:00
Elliott Hughes 468d6a584f Compile Mac OS binaries with unwind tables for libcorkscrew.
Change-Id: I9755d8d39913830180da2ce32bcdd357309ff792
2012-05-23 17:32:32 -07:00
Jean-Baptiste Queru 92fadc6fbf am 269a40d1: am b031afab: am bf3d3287: Merge "Use the same compilation flags on OS X 10.8 as 10.7"
* commit '269a40d140753aee1e579f8179b132ffe3415150':
  Use the same compilation flags on OS X 10.8 as 10.7
2012-05-08 11:32:54 -07:00
Jean-Baptiste Queru 269a40d140 am b031afab: am bf3d3287: Merge "Use the same compilation flags on OS X 10.8 as 10.7"
* commit 'b031afab543d8bf9bb236ff4c297f5ced70f8943':
  Use the same compilation flags on OS X 10.8 as 10.7
2012-05-07 13:59:56 -07:00
Al Sutton 35bb6422bc Use the same compilation flags on OS X 10.8 as 10.7
Added Mountain Lion to the list of versions which don't need ranlib
and don't need the pre-Lion linker flags

Change-Id: I0c785f0c66e324af9a209520c5a5b3c9bf7df0d5
Signed-off-by: Al Sutton <al@funkyandroid.com>
2012-05-07 09:44:28 +01:00
Shih-wei Liao eaa0f82295 Merge "Members in LOCAL_WHOLE_STATIC_LIBRARIES should be force_loaded." 2012-05-03 15:40:27 -07:00
Shih-wei Liao b2680757a0 Members in LOCAL_WHOLE_STATIC_LIBRARIES should be force_loaded.
For Mac build, force_load the LOCAL_WHOLE_STATIC_LIBRARIES.

Mac has its custom linker. However, its linking rule for generating
shared libraries doesn’t take the LOCAL_WHOLE_STATIC_LIBRARIES
into consideration.

Change-Id: Ia6858bf6e2ebb334db8f3d0bdc71d7ecc0ef11c1
2012-05-03 15:38:17 -07:00
Jean-Baptiste Queru cd742a991e am 9bdc2907: am 8571ee47: am f562adc8: Merge "Force use of compatibility compilers on Apple\'s command line tools"
* commit '9bdc290792f8c5c4e4beb40e6b7f335759b6d6d5':
  Force use of compatibility compilers on Apple's command line tools
2012-05-02 14:21:06 -07:00
Jean-Baptiste Queru 9bdc290792 am 8571ee47: am f562adc8: Merge "Force use of compatibility compilers on Apple\'s command line tools"
* commit '8571ee478ee352827ec37460d23e6e0dbb1e96db':
  Force use of compatibility compilers on Apple's command line tools
2012-05-02 14:18:28 -07:00
Al Sutton 0d07c732c7 Force use of compatibility compilers on Apple's command line tools
The cc and c++ compilers included in Apple's command line tools show some
unusual behaviour which causes the build to fail in several projects under
Xcode 4.3

This patch uses the gnu compatibility gcc and g++ compilers on OS X instead
to reduce problems, and generates an error when an llvm based compiler is
detected because they currently do not generate usable emulator executables
due to them not honouring global register variables.

Change-Id: I506c22dad3dcbd41df3c7672802a675d3655e262
Signed-off-by: Al Sutton <al@funkyandroid.com>
2012-05-02 07:11:27 -07:00
Andrew Hsieh f9613a4f73 Added BUILD_HOST_static to build statically linked executable/shared-lib
Statically linked executable/shared-lib (eg. SDK tools) are useful
in sandboxed environment.

In BUILD_HOST_static zipalign needs -lpthread indirectly:
zipalign->libutils.a->liblog.a->logd_write.c->pthread

Change-Id: I8fa91a937b728ccdf942c4ba199efb1e2e49da3d
2012-04-28 00:53:55 +08:00