1 // Collect target specific code generation libraries 2 MCLD_ARM_LIBS = [ 3 "libmcldARMTarget", 4 "libmcldARMInfo", 5 ] 6 MCLD_AARCH64_LIBS = [ 7 "libmcldAArch64Target", 8 "libmcldAArch64Info", 9 ] 10 MCLD_MIPS_LIBS = [ 11 "libmcldMipsTarget", 12 "libmcldMipsInfo", 13 ] 14 MCLD_X86_LIBS = [ 15 "libmcldX86Target", 16 "libmcldX86Info", 17 ] 18 19 // Build Options.inc from Options.td 20 llvm_tblgen { 21 name: "mcld-gen-options", 22 in: "Options.td", 23 outs: ["Options.inc"], 24 } 25 26 cc_binary { 27 name: "ld.mc", 28 defaults: ["mcld-defaults"], 29 host_supported: true, 30 generated_headers: ["mcld-gen-options"], 31 32 srcs: ["Main.cpp"], 33 34 // arch-specific static libraries depend on libmcldTarget. 35 // Can be removed once soong supports transitive static library dependencies 36 group_static_libs: true, 37 static_libs: [ 38 "libmcldADT", 39 "libmcldCore", 40 "libmcldFragment", 41 "libmcldLD", 42 "libmcldLDVariant", 43 "libmcldMC", 44 "libmcldObject", 45 "libmcldScript", 46 "libmcldSupport", 47 "libmcldTarget", 48 ], 49 50 shared_libs: [ 51 "libLLVM_android", 52 "libz", 53 ], 54 55 target: { 56 host: { 57 static_libs: MCLD_ARM_LIBS + MCLD_AARCH64_LIBS + 58 MCLD_MIPS_LIBS + MCLD_X86_LIBS, 59 }, 60 61 // Add target specific code generation libraries 62 android_arm: { 63 static_libs: MCLD_ARM_LIBS, 64 }, 65 android_arm64: { 66 // Include ARM libs to enable 32-bit linking on AARCH64 targets 67 static_libs: MCLD_ARM_LIBS + MCLD_AARCH64_LIBS, 68 }, 69 android_mips: { 70 static_libs: MCLD_MIPS_LIBS, 71 }, 72 android_mips64: { 73 static_libs: MCLD_MIPS_LIBS, 74 }, 75 android_x86: { 76 static_libs: MCLD_X86_LIBS, 77 }, 78 android_x86_64: { 79 static_libs: MCLD_X86_LIBS, 80 }, 81 arm_on_x86: { 82 static_libs: MCLD_ARM_LIBS + MCLD_AARCH64_LIBS, 83 }, 84 arm_on_x86_64: { 85 static_libs: MCLD_ARM_LIBS + MCLD_AARCH64_LIBS, 86 }, 87 }, 88 } 89