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
128c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarLINK_COMPONENTS := all-targets ipo scalaropts linker bitreader bitwriter \
13de5e5ec3045a73a06b1054417f9ac6c02929e9ceHal Finkel                   mcdisassembler vectorize
148c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarLINK_LIBS_IN_SHARED := 1
158c39c9647da4f375e4f89bd417d86f5c3ff6dfa5Daniel DunbarSHARED_LIBRARY := 1
1677595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
177c52f2ee06c8b22287d658fc30d00525f8d4db42Dan GohmanEXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/lto.exports
18b16b53b181939fa6112498a00005d1df40d6de86Dan Gohman
1977595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzikinclude $(LEVEL)/Makefile.common
2077595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
218535403ee0e6bd3f1e56236e3dc5d007c5c9c02bDaniel Dunbarifdef LLVM_VERSION_INFO
228535403ee0e6bd3f1e56236e3dc5d007c5c9c02bDaniel DunbarCXX.Flags += -DLLVM_VERSION_INFO='"$(LLVM_VERSION_INFO)"'
238535403ee0e6bd3f1e56236e3dc5d007c5c9c02bDaniel Dunbarendif
248535403ee0e6bd3f1e56236e3dc5d007c5c9c02bDaniel Dunbar
25e55db741523b51f3f754b6dd62c5e0f52bb83b98Anton Korobeynikovifeq ($(HOST_OS),Darwin)
2648bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    # Special hack to allow libLTO to have an offset version number.
2748bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    ifdef LLVM_LTO_VERSION_OFFSET
2848bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar        LTO_LIBRARY_VERSION := $(shell expr $(LLVM_SUBMIT_VERSION) + \
2948bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar                                            $(LLVM_LTO_VERSION_OFFSET))
3048bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    else
3148bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar        LTO_LIBRARY_VERSION := $(LLVM_SUBMIT_VERSION)
3248bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar    endif
3348bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar
3477595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    # set dylib internal version number to llvmCore submission number
3577595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    ifdef LLVM_SUBMIT_VERSION
3677595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik        LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \
3748bf8f0c3ade7f55dedb6d0c2142f1e064a95668Daniel Dunbar                        -Wl,$(LTO_LIBRARY_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
384ed55ceeaf075a988bf5642cd33bc88450b5254eNick Kledzik                        -Wl,-compatibility_version -Wl,1
3977595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    endif
4077595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    # extra options to override libtool defaults 
4177595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik    LLVMLibsOptions    := $(LLVMLibsOptions)  \
42873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik                         -Wl,-dead_strip \
43873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik                         -Wl,-seg1addr -Wl,0xE0000000 
4477595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzik
45873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
46873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik    DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
47873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik    ifneq ($(DARWIN_VERS),8)
48873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik       LLVMLibsOptions    := $(LLVMLibsOptions)  \
49b259c01376b176f17fccf57bff28148590f7d744Daniel Dunbar                            -Wl,-install_name \
50873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
51873570e0ef68bce8cd18d040b15e0bb77724a82aNick Kledzik    endif
5277595fc35642f990bfc5ad05b8e68d4056695ecaNick Kledzikendif
53