1f51f20fa34654da75d15a9e2a1a0cd2fc0d8603dDaniel Dunbar##===- tools/libclang/Makefile -----------------------------*- Makefile -*-===##
2d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek# 
3d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek#                     The LLVM Compiler Infrastructure
4d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek#
5d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek# This file is distributed under the University of Illinois Open Source
6d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek# License. See LICENSE.TXT for details.
7d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek# 
8d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek##===----------------------------------------------------------------------===##
9d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
10afed099bd2e759efd4bb63fdc525d3445f94cc13Daniel DunbarCLANG_LEVEL := ../..
11f51f20fa34654da75d15a9e2a1a0cd2fc0d8603dDaniel DunbarLIBRARYNAME = clang
12d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
13f51f20fa34654da75d15a9e2a1a0cd2fc0d8603dDaniel DunbarEXPORTED_SYMBOL_FILE = $(PROJ_SRC_DIR)/libclang.exports
14e42e9872f82d8e969593b3143cf9e0fdc294e711Dan Gohman
15d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted KremenekLINK_LIBS_IN_SHARED = 1
16d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted KremenekSHARED_LIBRARY = 1
17d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
18fa1d30ddb1bbb16d8c268f79890ac39101915b5cChad Rosierinclude $(CLANG_LEVEL)/../../Makefile.config
19a4de17562d13d7a8188108243c4cfbd52f33229aPirama Arumuga NainarLINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter core \
20a4de17562d13d7a8188108243c4cfbd52f33229aPirama Arumuga Nainar                   instrumentation ipo mc mcparser objcarcopts option support \
21a4de17562d13d7a8188108243c4cfbd52f33229aPirama Arumuga Nainar                   object
22651f13cea278ec967336033dd032faef0e9fc2ecStephen HinesUSEDLIBS = clangIndex.a clangARCMigrate.a \
23651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	   clangRewriteFrontend.a \
24651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	   clangFormat.a \
25176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines	   clangTooling.a clangToolingCore.a \
26a4de17562d13d7a8188108243c4cfbd52f33229aPirama Arumuga Nainar	   clangFrontend.a clangCodeGen.a clangDriver.a \
27305c613af6cfc40e519c75d9d2c84c6fa9a841c0Ted Kremenek	   clangSerialization.a \
286a0ff179799c0dcbbd76b311923162e3be343f4bNAKAMURA Takumi	   clangParse.a clangSema.a \
29651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	   clangStaticAnalyzerCheckers.a clangStaticAnalyzerCore.a \
30176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines	   clangRewrite.a \
316a0ff179799c0dcbbd76b311923162e3be343f4bNAKAMURA Takumi	   clangAnalysis.a clangEdit.a \
32651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	   clangASTMatchers.a \
33a4de17562d13d7a8188108243c4cfbd52f33229aPirama Arumuga Nainar	   clangAST.a clangLex.a clangBasic.a
34d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
35afed099bd2e759efd4bb63fdc525d3445f94cc13Daniel Dunbarinclude $(CLANG_LEVEL)/Makefile
36d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
370740a25e9be2dd98f44a73f58cade13b1f068c6eSylvestre Ledru# Add soname to the library.
38fcd0aa1ae9068f6762661b7e954e7c558eafe613Sylvestre Ledruifeq ($(HOST_OS), $(filter $(HOST_OS), Linux FreeBSD GNU GNU/kFreeBSD))
39fa3d81ca3cfe064bbbcae9be93a215bc8f5ba906Sylvestre Ledru        LLVMLibsOptions += -Wl,-soname,lib$(LIBRARYNAME)$(SHLIBEXT)
400740a25e9be2dd98f44a73f58cade13b1f068c6eSylvestre Ledruendif
410740a25e9be2dd98f44a73f58cade13b1f068c6eSylvestre Ledru
42176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesifeq ($(ENABLE_CLANG_ARCMT),1)
43176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines  CXX.Flags += -DCLANG_ENABLE_ARCMT
44176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesendif
45176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines
46d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek##===----------------------------------------------------------------------===##
47d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek# FIXME: This is copied from the 'lto' makefile.  Should we share this?
48d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek##===----------------------------------------------------------------------===##
49d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek
50d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenekifeq ($(HOST_OS),Darwin)
5157b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar    LLVMLibsOptions += -Wl,-compatibility_version,1
5257b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar
5357b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar    # Set dylib internal version number to submission number.
54d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek    ifdef LLVM_SUBMIT_VERSION
5557b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar        LLVMLibsOptions += -Wl,-current_version \
5657b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar                           -Wl,$(LLVM_SUBMIT_VERSION).$(LLVM_SUBMIT_SUBVERSION)
57d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenek    endif
5857b5b4aee9f8e0bc20e142250a3109ed2e057b45Daniel Dunbar
59731a26202db4251ce9f98e64bed8ee257c46eb61Bill Wendling    # If we're doing an Apple-style build, add the LTO object path.
60778749aa7c2ed73ffeb60065dc015ed62127c8e1Bill Wendling    ifeq ($(RC_XBS),YES)
61d34eca2a5b54d36c196b4f663f397fc6ea583b9bBill Wendling       TempFile        := $(shell mkdir -p ${OBJROOT}/dSYMs ; mktemp ${OBJROOT}/dSYMs/clang-lto.XXXXXX)
621880039e2b9faece69d64bab8b57dbeaf09cf643Bill Wendling       LLVMLibsOptions += -Wl,-object_path_lto -Wl,$(TempFile)
63731a26202db4251ce9f98e64bed8ee257c46eb61Bill Wendling    endif
64d2fa56687f8bd5ac6ebf9d9468d0efd714986a54Ted Kremenekendif
65