Makefile revision a89cfd23c45708e87bfd3bb1d345a058a4d93a9b
13ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar##===- tools/lto/Makefile ----------------------------------*- Makefile -*-===##
23ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# 
33ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#                     The LLVM Compiler Infrastructure
43ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar#
53ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# This file is distributed under the University of Illinois Open Source
63ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# License. See LICENSE.TXT for details.
73ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# 
83ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar##===----------------------------------------------------------------------===##
93ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
101eb4e64eed08837b85a375d6a953503daa844f07Daniel DunbarLEVEL = ../..
111eb4e64eed08837b85a375d6a953503daa844f07Daniel DunbarLIBRARYNAME = LTO
123ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
133ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel DunbarEXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/lto.exports
143ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
153ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# Include this here so we can get the configuration of the targets
163ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar# that have been configured for construction. We have to do this 
172c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbar# early so we can set up LINK_COMPONENTS before including Makefile.rules
182c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbarinclude $(LEVEL)/Makefile.config
192c6f6f3c170502c5b810102cf85f05732a2aa9d0Daniel Dunbar
20510d73200ec48496a2b10703385fe99b51e31fa5Daniel DunbarLINK_LIBS_IN_SHARED = 1
213ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel DunbarSHARED_LIBRARY = 1
22dd98e2cad165ca73c769e4f105a4e47c2216387aDaniel Dunbar
238f25c79e59d88df41c5a3cabba1c58035d384a6eDaniel DunbarLINK_COMPONENTS := $(TARGETS_TO_BUILD) ipo scalaropts linker bitreader \
248f25c79e59d88df41c5a3cabba1c58035d384a6eDaniel Dunbar	bitwriter mcdisassembler
254ad4b3ebbe5769143389dccfcfadb666a4ba5940Daniel Dunbar
26365c02f65be026f90e67a8e00e7b827cee60e228Daniel Dunbarinclude $(LEVEL)/Makefile.common
273ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbar
284ad4b3ebbe5769143389dccfcfadb666a4ba5940Daniel Dunbarifdef LLVM_VERSION_INFO
291b3bb6efc59a21f794b534078f9ae7e95393f510Daniel DunbarCXX.Flags += -DLLVM_VERSION_INFO='"$(LLVM_VERSION_INFO)"'
303ede8d0a7d1813f678ccc6011a99a0834b1b6116Daniel Dunbarendif
31510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar
32510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbarifeq ($(HOST_OS),Darwin)
33510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    # Special hack to allow libLTO to have an offset version number.
34510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    ifdef LLVM_LTO_VERSION_OFFSET
35510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar        LTO_LIBRARY_VERSION := $(shell expr $(LLVM_SUBMIT_VERSION) + \
36510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                                            $(LLVM_LTO_VERSION_OFFSET))
37510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    else
38510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar        LTO_LIBRARY_VERSION := $(LLVM_SUBMIT_VERSION)
39510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    endif
40510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar
41510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    # set dylib internal version number to llvmCore submission number
42510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    ifdef LLVM_SUBMIT_VERSION
43510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar        LLVMLibsOptions := $(LLVMLibsOptions) -Wl,-current_version \
44510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                        -Wl,$(LTO_LIBRARY_VERSION).$(LLVM_SUBMIT_SUBVERSION) \
45510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                        -Wl,-compatibility_version -Wl,1
46510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    endif
47510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    # extra options to override libtool defaults 
48510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    LLVMLibsOptions    := $(LLVMLibsOptions)  \
49510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                         -Wl,-dead_strip \
50510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                         -Wl,-seg1addr -Wl,0xE0000000 
51510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar
52510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    # Mac OS X 10.4 and earlier tools do not allow a second -install_name on command line
53510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    DARWIN_VERS := $(shell echo $(TARGET_TRIPLE) | sed 's/.*darwin\([0-9]*\).*/\1/')
54510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    ifneq ($(DARWIN_VERS),8)
55510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar       LLVMLibsOptions    := $(LLVMLibsOptions)  \
56510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                            -Wl,-install_name \
57510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar                            -Wl,"@executable_path/../lib/lib$(LIBRARYNAME)$(SHLIBEXT)"
58510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar    endif
59510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbarendif
60510d73200ec48496a2b10703385fe99b51e31fa5Daniel Dunbar