15a7fb69ac21028bc829181d9d93cd7fe4c941440Devang Patel##===- tools/lto/Makefile ----------------------------------*- Makefile -*-===##
277595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik# 
377595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik#                     The LLVM Compiler Infrastructure
477595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik#
577595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik# This file is distributed under the University of Illinois Open Source
677595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik# License. See LICENSE.TXT for details.
777595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik# 
877595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik##===----------------------------------------------------------------------===##
977595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
108c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarLEVEL := ../..
118c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarLIBRARYNAME := LTO
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen HinesLINK_COMPONENTS := all-targets core lto mc mcdisassembler support
138c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarLINK_LIBS_IN_SHARED := 1
148c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarSHARED_LIBRARY := 1
1577595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
167c52f2ee06c8b22287d658fc30d00525f8d4db42Dan GohmanEXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/lto.exports
17b16b53b181939fa6112498a00005d1df40d6de86Dan Gohman
1877595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzikinclude $(LEVEL)/Makefile.common
1977595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
20e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton Korobeynikovifeq ($(HOST_OS),Darwin)
2148bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    # Special hack to allow libLTO to have an offset version number.
2248bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    ifdef LLVM_LTO_VERSION_OFFSET
2348bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar        LTO_LIBRARY_VERSION := $(shell expr $(LLVM_SUBMIT_VERSION) + \
2448bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar                                            $(LLVM_LTO_VERSION_OFFSET))
2548bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    else
2648bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar        LTO_LIBRARY_VERSION := $(LLVM_SUBMIT_VERSION)
2748bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    endif
2848bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar
2977595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    # set dylib internal version number to llvmCore submission number
3077595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    ifdef LLVM_SUBMIT_VERSION
3177595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik        LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \
3248bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar                        -Wl,$(LTO_LIBRARY_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
334ed55ceeaf075a988bf5642cd33bc88450b5254eNick Kledzik                        -Wl,-compatibility_version -Wl,1
3477595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    endif
3510181ae49c25e22267ea3d539dd53e07d5e45528Bill Wendling
3610181ae49c25e22267ea3d539dd53e07d5e45528Bill Wendling    # If we're doing an Apple-style build, add the LTO object path.
37ee740ddf9d8248e39032567dc22766b0f8b45cd6Bill Wendling    ifeq ($(RC_XBS),YES)
38c33b9304dada40806f875b482d003b5c7b8f9c22Bill Wendling       TempFile        := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/llvm-lto.XXXXXX)
39c33b9304dada40806f875b482d003b5c7b8f9c22Bill Wendling       LLVMLibsOptions := $(LLVMLibsOptions) \
4053f1b19c6e0b0b2fe2dfccd543738a20241c8e78Bill Wendling                          -Wl,-object_path_lto -Wl,$(TempFile)
4110181ae49c25e22267ea3d539dd53e07d5e45528Bill Wendling    endif
4277595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzikendif
43